diff --git a/addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.gd b/addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.gd index b26245b5..68a05682 100644 --- a/addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.gd +++ b/addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.gd @@ -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) diff --git a/addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.tscn b/addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.tscn index c0b8cd14..59ce61e2 100644 --- a/addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.tscn +++ b/addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.tscn @@ -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="."] diff --git a/asset/art/gif/c00_通用动作/c00_头套小婵_idle/0.png b/asset/art/gif/c00_通用动作/c00_头套小婵_idle/0.png new file mode 100644 index 00000000..959ee994 Binary files /dev/null and b/asset/art/gif/c00_通用动作/c00_头套小婵_idle/0.png differ diff --git a/asset/art/gif/c02_公寓过道/头套小蝉呼吸/0.png.import b/asset/art/gif/c00_通用动作/c00_头套小婵_idle/0.png.import similarity index 70% rename from asset/art/gif/c02_公寓过道/头套小蝉呼吸/0.png.import rename to asset/art/gif/c00_通用动作/c00_头套小婵_idle/0.png.import index 0c3a3d89..da324e8f 100644 --- a/asset/art/gif/c02_公寓过道/头套小蝉呼吸/0.png.import +++ b/asset/art/gif/c00_通用动作/c00_头套小婵_idle/0.png.import @@ -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] diff --git a/asset/art/gif/c00_通用动作/c00_头套小婵_idle/1.png b/asset/art/gif/c00_通用动作/c00_头套小婵_idle/1.png new file mode 100644 index 00000000..782211a0 Binary files /dev/null and b/asset/art/gif/c00_通用动作/c00_头套小婵_idle/1.png differ diff --git a/asset/art/gif/c02_公寓过道/头套小蝉呼吸/1.png.import b/asset/art/gif/c00_通用动作/c00_头套小婵_idle/1.png.import similarity index 70% rename from asset/art/gif/c02_公寓过道/头套小蝉呼吸/1.png.import rename to asset/art/gif/c00_通用动作/c00_头套小婵_idle/1.png.import index 0e6a94f0..cb595ff3 100644 --- a/asset/art/gif/c02_公寓过道/头套小蝉呼吸/1.png.import +++ b/asset/art/gif/c00_通用动作/c00_头套小婵_idle/1.png.import @@ -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] diff --git a/asset/art/gif/c00_通用动作/c00_通用动作_frames.tres b/asset/art/gif/c00_通用动作/c00_通用动作_frames.tres index 14d8664a..5a807d48 100644 --- a/asset/art/gif/c00_通用动作/c00_通用动作_frames.tres +++ b/asset/art/gif/c00_通用动作/c00_通用动作_frames.tres @@ -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") }, { diff --git a/asset/art/gif/c02_公寓过道/c02_公寓过道_frames.tres b/asset/art/gif/c02_公寓过道/c02_公寓过道_frames.tres index fe9750a0..442a4486 100644 --- a/asset/art/gif/c02_公寓过道/c02_公寓过道_frames.tres +++ b/asset/art/gif/c02_公寓过道/c02_公寓过道_frames.tres @@ -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") }, { diff --git a/asset/art/gif/c02_公寓过道/头套小蝉呼吸.gif b/asset/art/gif/c02_公寓过道/头套小蝉呼吸.gif deleted file mode 100644 index 92073b0f..00000000 Binary files a/asset/art/gif/c02_公寓过道/头套小蝉呼吸.gif and /dev/null differ diff --git a/asset/art/gif/c02_公寓过道/头套小蝉呼吸.gif.import b/asset/art/gif/c02_公寓过道/头套小蝉呼吸.gif.import deleted file mode 100644 index 2b6fd062..00000000 --- a/asset/art/gif/c02_公寓过道/头套小蝉呼吸.gif.import +++ /dev/null @@ -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] - diff --git a/asset/art/gif/c02_公寓过道/头套小蝉呼吸/0.png b/asset/art/gif/c02_公寓过道/头套小蝉呼吸/0.png deleted file mode 100644 index 9c79101e..00000000 Binary files a/asset/art/gif/c02_公寓过道/头套小蝉呼吸/0.png and /dev/null differ diff --git a/asset/art/gif/c02_公寓过道/头套小蝉呼吸/1.png b/asset/art/gif/c02_公寓过道/头套小蝉呼吸/1.png deleted file mode 100644 index ea6d2ef8..00000000 Binary files a/asset/art/gif/c02_公寓过道/头套小蝉呼吸/1.png and /dev/null differ diff --git a/asset/art/prop/c02/眼镜盒.png b/asset/art/prop/c02/眼镜盒.png new file mode 100644 index 00000000..1ec2302b Binary files /dev/null and b/asset/art/prop/c02/眼镜盒.png differ diff --git a/asset/art/ui/note/线索笔记内容-34.png.import b/asset/art/prop/c02/眼镜盒.png.import similarity index 65% rename from asset/art/ui/note/线索笔记内容-34.png.import rename to asset/art/prop/c02/眼镜盒.png.import index bbea4d2e..d34e8d9c 100644 --- a/asset/art/ui/note/线索笔记内容-34.png.import +++ b/asset/art/prop/c02/眼镜盒.png.import @@ -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] diff --git a/asset/art/ui/note/aseprite_slice_to_atlas.gd b/asset/art/ui/note/aseprite_slice_to_atlas.gd index 0be81c68..a27a7315 100644 --- a/asset/art/ui/note/aseprite_slice_to_atlas.gd +++ b/asset/art/ui/note/aseprite_slice_to_atlas.gd @@ -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 diff --git a/asset/art/ui/note/aseprite_slice_to_atlas.tscn b/asset/art/ui/note/aseprite_slice_to_atlas.tscn index 990ed13c..c86134da 100644 --- a/asset/art/ui/note/aseprite_slice_to_atlas.tscn +++ b/asset/art/ui/note/aseprite_slice_to_atlas.tscn @@ -8,3 +8,5 @@ script = ExtResource("1_74cad") json = ExtResource("2_rv6as") texture = ExtResource("3_5ej8b") + +[node name="Demo" type="Node2D" parent="."] diff --git a/asset/art/ui/note/c02_slices.ase b/asset/art/ui/note/c02_slices.ase new file mode 100644 index 00000000..fed438a6 Binary files /dev/null and b/asset/art/ui/note/c02_slices.ase differ diff --git a/asset/art/ui/note/c02_slices.json b/asset/art/ui/note/c02_slices.json index 987d4a2b..178a9965 100644 --- a/asset/art/ui/note/c02_slices.json +++ b/asset/art/ui/note/c02_slices.json @@ -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 - } - } - ] - } - ] - } -} \ No newline at end of file +{ "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 } }] } + ] + } +} diff --git a/asset/art/ui/note/c02_slices.png b/asset/art/ui/note/c02_slices.png index ece154e3..58b0a0e5 100644 Binary files a/asset/art/ui/note/c02_slices.png and b/asset/art/ui/note/c02_slices.png differ diff --git a/asset/art/ui/note/c02_slices/c02_blotOut.tres b/asset/art/ui/note/c02_slices/c02_blotOut.tres index c11376bc..0e9c7327 100644 --- a/asset/art/ui/note/c02_slices/c02_blotOut.tres +++ b/asset/art/ui/note/c02_slices/c02_blotOut.tres @@ -4,5 +4,5 @@ [resource] atlas = ExtResource("1_yfw6c") -region = Rect2(378, 931, 97, 74) +region = Rect2(603, 1521, 274, 211) filter_clip = true diff --git a/asset/art/ui/note/c02_slices/c02_gate_chain.tres b/asset/art/ui/note/c02_slices/c02_gate_chain.tres index c306573a..c4ad9b16 100644 --- a/asset/art/ui/note/c02_slices/c02_gate_chain.tres +++ b/asset/art/ui/note/c02_slices/c02_gate_chain.tres @@ -4,5 +4,5 @@ [resource] atlas = ExtResource("1_r8xbd") -region = Rect2(426, 333, 89, 70) +region = Rect2(656, 580, 323, 239) filter_clip = true diff --git a/asset/art/ui/note/c02_slices/c02_hand_exchange.tres b/asset/art/ui/note/c02_slices/c02_hand_exchange.tres index 7a3d2456..6124308e 100644 --- a/asset/art/ui/note/c02_slices/c02_hand_exchange.tres +++ b/asset/art/ui/note/c02_slices/c02_hand_exchange.tres @@ -4,5 +4,5 @@ [resource] atlas = ExtResource("1_036bj") -region = Rect2(49, 184, 163, 116) +region = Rect2(76, 308, 415, 280) filter_clip = true diff --git a/asset/art/ui/note/c02_slices/c02_hand_requireCoin.tres b/asset/art/ui/note/c02_slices/c02_hand_requireCoin.tres index b2bbcf0e..8caccd9b 100644 --- a/asset/art/ui/note/c02_slices/c02_hand_requireCoin.tres +++ b/asset/art/ui/note/c02_slices/c02_hand_requireCoin.tres @@ -4,5 +4,5 @@ [resource] atlas = ExtResource("1_bal72") -region = Rect2(1185, 867, 112, 75) +region = Rect2(1084, 558, 271, 181) filter_clip = true diff --git a/asset/art/ui/note/c02_slices/c02_list_namesAndGoal.tres b/asset/art/ui/note/c02_slices/c02_list_namesAndGoal.tres index 3bfa60eb..060a2a65 100644 --- a/asset/art/ui/note/c02_slices/c02_list_namesAndGoal.tres +++ b/asset/art/ui/note/c02_slices/c02_list_namesAndGoal.tres @@ -4,5 +4,5 @@ [resource] atlas = ExtResource("1_4di5c") -region = Rect2(55, 548, 615, 283) +region = Rect2(1017, 1281, 1063, 517) filter_clip = true diff --git a/asset/art/ui/note/c02_slices/c02_map_1Left.tres b/asset/art/ui/note/c02_slices/c02_map_1Left.tres index 21a54cdb..a01f8a4f 100644 --- a/asset/art/ui/note/c02_slices/c02_map_1Left.tres +++ b/asset/art/ui/note/c02_slices/c02_map_1Left.tres @@ -4,5 +4,5 @@ [resource] atlas = ExtResource("1_xc11y") -region = Rect2(872, 88, 517, 383) +region = Rect2(1456, 140, 857, 645) filter_clip = true diff --git a/asset/art/ui/note/c02_slices/c02_map_1Right.tres b/asset/art/ui/note/c02_slices/c02_map_1Right.tres index b6d80aa4..eefa3e78 100644 --- a/asset/art/ui/note/c02_slices/c02_map_1Right.tres +++ b/asset/art/ui/note/c02_slices/c02_map_1Right.tres @@ -4,5 +4,5 @@ [resource] atlas = ExtResource("1_lupqk") -region = Rect2(1440, 278, 283, 195) +region = Rect2(2404, 436, 465, 369) filter_clip = true diff --git a/asset/art/ui/note/c02_slices/c02_map_2.tres b/asset/art/ui/note/c02_slices/c02_map_2.tres index ab43a979..b69e59ba 100644 --- a/asset/art/ui/note/c02_slices/c02_map_2.tres +++ b/asset/art/ui/note/c02_slices/c02_map_2.tres @@ -4,5 +4,5 @@ [resource] atlas = ExtResource("1_m0mgu") -region = Rect2(1324, 714, 437, 371) +region = Rect2(2181, 1191, 748, 619) filter_clip = true diff --git a/asset/art/ui/note/c02_slices/c02_meat_knockDoor.tres b/asset/art/ui/note/c02_slices/c02_meat_knockDoor.tres index 1662c6a7..b580cf7d 100644 --- a/asset/art/ui/note/c02_slices/c02_meat_knockDoor.tres +++ b/asset/art/ui/note/c02_slices/c02_meat_knockDoor.tres @@ -4,5 +4,5 @@ [resource] atlas = ExtResource("1_5rkoq") -region = Rect2(226, 253, 101, 53) +region = Rect2(246, 120, 298, 138) filter_clip = true diff --git a/asset/art/ui/note/c02_slices/c02_meat_stopMouse.tres b/asset/art/ui/note/c02_slices/c02_meat_stopMouse.tres index 656f7a33..309dcdbe 100644 --- a/asset/art/ui/note/c02_slices/c02_meat_stopMouse.tres +++ b/asset/art/ui/note/c02_slices/c02_meat_stopMouse.tres @@ -4,5 +4,5 @@ [resource] atlas = ExtResource("1_4wotv") -region = Rect2(364, 77, 108, 59) +region = Rect2(654, 108, 289, 167) filter_clip = true diff --git a/asset/art/ui/note/c02_slices/c02_musicbox_needPuppet.tres b/asset/art/ui/note/c02_slices/c02_musicbox_needPuppet.tres index 93f2fa5d..f8383547 100644 --- a/asset/art/ui/note/c02_slices/c02_musicbox_needPuppet.tres +++ b/asset/art/ui/note/c02_slices/c02_musicbox_needPuppet.tres @@ -4,5 +4,5 @@ [resource] atlas = ExtResource("1_01jll") -region = Rect2(86, 317, 102, 58) +region = Rect2(186, 652, 263, 155) filter_clip = true diff --git a/asset/art/ui/note/c02_slices/c02_road_address.tres b/asset/art/ui/note/c02_slices/c02_road_address.tres index d98a8569..c65211a7 100644 --- a/asset/art/ui/note/c02_slices/c02_road_address.tres +++ b/asset/art/ui/note/c02_slices/c02_road_address.tres @@ -4,5 +4,5 @@ [resource] atlas = ExtResource("1_hneqy") -region = Rect2(1381, 563, 391, 97) +region = Rect2(2286, 921, 667, 181) filter_clip = true diff --git a/asset/art/ui/note/c02_slices/c02_shoe_giveToMouce.tres b/asset/art/ui/note/c02_slices/c02_shoe_giveToMouce.tres index e5f58abb..268c6e5c 100644 --- a/asset/art/ui/note/c02_slices/c02_shoe_giveToMouce.tres +++ b/asset/art/ui/note/c02_slices/c02_shoe_giveToMouce.tres @@ -4,5 +4,5 @@ [resource] atlas = ExtResource("1_hjq36") -region = Rect2(1186, 780, 121, 79) +region = Rect2(1072, 96, 317, 195) filter_clip = true diff --git a/asset/art/ui/note/c02_slices/c02_split_illusionSpace.tres b/asset/art/ui/note/c02_slices/c02_split_illusionSpace.tres index effb87d9..4e513816 100644 --- a/asset/art/ui/note/c02_slices/c02_split_illusionSpace.tres +++ b/asset/art/ui/note/c02_slices/c02_split_illusionSpace.tres @@ -4,5 +4,5 @@ [resource] atlas = ExtResource("1_cu3l7") -region = Rect2(482, 170, 199, 89) +region = Rect2(612, 322, 525, 221) filter_clip = true diff --git a/asset/art/ui/note/c02_slices/c02_xchan_giveHerPuppet.tres b/asset/art/ui/note/c02_slices/c02_xchan_giveHerPuppet.tres index 61afbac7..0ead4412 100644 --- a/asset/art/ui/note/c02_slices/c02_xchan_giveHerPuppet.tres +++ b/asset/art/ui/note/c02_slices/c02_xchan_giveHerPuppet.tres @@ -4,5 +4,5 @@ [resource] atlas = ExtResource("1_7ebxh") -region = Rect2(1466, 166, 168, 49) +region = Rect2(996, 824, 371, 177) filter_clip = true diff --git a/asset/art/ui/note/c02_slices/c02_xchan_isSheGhost.tres b/asset/art/ui/note/c02_slices/c02_xchan_isSheGhost.tres index 62b3cc1b..2c121c1a 100644 --- a/asset/art/ui/note/c02_slices/c02_xchan_isSheGhost.tres +++ b/asset/art/ui/note/c02_slices/c02_xchan_isSheGhost.tres @@ -4,5 +4,5 @@ [resource] atlas = ExtResource("1_jin8p") -region = Rect2(93, 916, 200, 127) +region = Rect2(147, 1515, 349, 241) filter_clip = true diff --git a/asset/art/ui/note/c02_slices/c02_xchan_sheKnowsMe.tres b/asset/art/ui/note/c02_slices/c02_xchan_sheKnowsMe.tres index eb568682..3da07b85 100644 --- a/asset/art/ui/note/c02_slices/c02_xchan_sheKnowsMe.tres +++ b/asset/art/ui/note/c02_slices/c02_xchan_sheKnowsMe.tres @@ -4,5 +4,5 @@ [resource] atlas = ExtResource("1_a3qry") -region = Rect2(882, 571, 462, 93) +region = Rect2(1461, 927, 748, 205) filter_clip = true diff --git a/asset/art/ui/note/笔记线索_第一章.json b/asset/art/ui/note/笔记线索_第一章.json deleted file mode 100644 index 09cd58e4..00000000 --- a/asset/art/ui/note/笔记线索_第一章.json +++ /dev/null @@ -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 } }] } - ] - } -} diff --git a/asset/art/ui/note/笔记线索_第一章.png b/asset/art/ui/note/笔记线索_第一章.png deleted file mode 100644 index ece154e3..00000000 Binary files a/asset/art/ui/note/笔记线索_第一章.png and /dev/null differ diff --git a/asset/art/ui/note/笔记线索_第一章.png.import b/asset/art/ui/note/笔记线索_第一章.png.import deleted file mode 100644 index 38457e6f..00000000 --- a/asset/art/ui/note/笔记线索_第一章.png.import +++ /dev/null @@ -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 diff --git a/asset/art/ui/note/线索笔记内容-29.png b/asset/art/ui/note/线索笔记内容-29.png deleted file mode 100644 index 209362f2..00000000 Binary files a/asset/art/ui/note/线索笔记内容-29.png and /dev/null differ diff --git a/asset/art/ui/note/线索笔记内容-29.png.import b/asset/art/ui/note/线索笔记内容-29.png.import deleted file mode 100644 index afb325dd..00000000 --- a/asset/art/ui/note/线索笔记内容-29.png.import +++ /dev/null @@ -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 diff --git a/asset/art/ui/note/线索笔记内容-30.png b/asset/art/ui/note/线索笔记内容-30.png deleted file mode 100644 index 28d6bfa2..00000000 Binary files a/asset/art/ui/note/线索笔记内容-30.png and /dev/null differ diff --git a/asset/art/ui/note/线索笔记内容-30.png.import b/asset/art/ui/note/线索笔记内容-30.png.import deleted file mode 100644 index e491cb3d..00000000 --- a/asset/art/ui/note/线索笔记内容-30.png.import +++ /dev/null @@ -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 diff --git a/asset/art/ui/note/线索笔记内容-31.png b/asset/art/ui/note/线索笔记内容-31.png deleted file mode 100644 index f229d8cb..00000000 Binary files a/asset/art/ui/note/线索笔记内容-31.png and /dev/null differ diff --git a/asset/art/ui/note/线索笔记内容-31.png.import b/asset/art/ui/note/线索笔记内容-31.png.import deleted file mode 100644 index debf8b1d..00000000 --- a/asset/art/ui/note/线索笔记内容-31.png.import +++ /dev/null @@ -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 diff --git a/asset/art/ui/note/线索笔记内容-32.png b/asset/art/ui/note/线索笔记内容-32.png deleted file mode 100644 index f340c9d9..00000000 Binary files a/asset/art/ui/note/线索笔记内容-32.png and /dev/null differ diff --git a/asset/art/ui/note/线索笔记内容-32.png.import b/asset/art/ui/note/线索笔记内容-32.png.import deleted file mode 100644 index c43b479f..00000000 --- a/asset/art/ui/note/线索笔记内容-32.png.import +++ /dev/null @@ -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 diff --git a/asset/art/ui/note/线索笔记内容-34.png b/asset/art/ui/note/线索笔记内容-34.png deleted file mode 100644 index ece2f668..00000000 Binary files a/asset/art/ui/note/线索笔记内容-34.png and /dev/null differ diff --git a/asset/dialogue/item_description.csv b/asset/dialogue/item_description.csv index 65f8e876..040506ef 100644 --- a/asset/dialogue/item_description.csv +++ b/asset/dialogue/item_description.csv @@ -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_眼镜_说明,这副眼镜对我很重要。
记得小时候在浦育院的日子,我经常会在半夜时听到奇怪的说话声,还时不时能看见其他小孩子看不见的东西。
院长不知从哪儿找来了这样一副眼镜,戴上它后那些怪事就很少发生。
随着年龄增长,我几乎已用不到这副眼镜。现在它对我来说似乎有了新的意义。,,,,, 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_院长的信_说明,小萍:
你现下境况如何?
你虽离开浦育院已久,但我始终没有忘记为你祈祷。
愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。
你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。
若有闲暇,欢迎你回浦育院看看。
院长童玉君
民国二十一年十月十五日
公寓地址 芦昌路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_船票_说明,民国十九年十月十七日
上海-南京-济南-北平-林西-满洲里
三等舱 3-23 号铺位
船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。
我的亲生父母是谁?当初他们为何要把我送到浦育院?,,,,, 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_院长的信_说明,小萍:
你现下境况如何?
你虽离开浦育院已久,但我始终没有忘记为你祈祷。
愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。
你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。
若有闲暇,欢迎你回浦育院看看。
院长童玉君
民国二十一年十月十五日
公寓地址 芦昌路26弄3号,,,,, +prop_船票,船票,,,[#texture=c02/船票.png],, +prop_船票_说明,民国十九年十月十七日
上海-南京-济南-北平-林西-满洲里
三等舱 3-23 号铺位
船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。
我的亲生父母是谁?当初他们为何要把我送到浦育院?,,,,, +prop_眼镜盒,眼镜盒,,,[#texture=c02/眼镜盒.png],, +prop_眼镜盒_说明,这副眼镜对我很重要。
记得小时候在浦育院的日子,我经常会在半夜时听到奇怪的说话声,还时不时能看见其他小孩子看不见的东西。
院长不知从哪儿找来了这样一副眼镜,戴上它后那些怪事就很少发生。
随着年龄增长,我几乎已用不到这副眼镜。现在它对我来说似乎有了新的意义。,,,,, +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_保卫科老鼠精,鼠歌

天地小如喉,
红轮自吞吐。< c02_小手还能换什么,...还有什么东西能跟它交换呢?,,,,, c02_小手出现摔倒,?!,,,,, c02_小手是什么鬼,这是什么鬼东西,它是在讨要什么,,,,, -c02_小手再次出现,又来一个!,,,,, +c02_小手再次出现,又来一个!
这地方到底是怎么回事?,,,,, c02_一楼楼道被挡住,被挡住了,,,,, c02_一楼戏台,盖着布的木头架子...用来做什么的呢,,,,, c02_描述垃圾通道,桶是空的,飘着一股血气,又酸又腥。,,,,, @@ -171,6 +179,7 @@ c02_敲门_肉掉落,楼道有东西掉下来了?,,,,, c02_敲门_老鼠叼肉,刚刚这里有块肉不见了?,,,,, c02_锡箔换小鞋子,另一只小鞋子。,,,,, c02_二楼楼梯杂物堆,去三楼的路被堵住了,要不先看看别的地方吧。,,,,, +c02_二楼小蝉跑掉,这个小女孩神出鬼没的,她说不定知道上楼的路。,,,,, c02_二楼水盆,盆里的水很清澈,看上去像是刚盛的。,,,,, c02_二楼老鼠洞,到处都是老鼠洞,怕不是整栋楼都被老鼠打通了。,,,,, c02_二楼血脚印,又是这种小小尖尖的血脚印...,,,,, diff --git a/asset/dialogue/item_description.dialogue b/asset/dialogue/item_description.dialogue index 4f1759d1..4c367f3e 100644 --- a/asset/dialogue/item_description.dialogue +++ b/asset/dialogue/item_description.dialogue @@ -75,10 +75,6 @@ 银元 [#texture=c01/银元.png] [ID:prop_银元] 一枚“袁大头”银元,中华民国十年造。 [ID:prop_银元_说明] -# 重要物品 -院长的信 [#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png] [ID:prop_院长的信] -小萍:
你现下境况如何?
你虽离开浦育院已久,但我始终没有忘记为你祈祷。
愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。
你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。
若有闲暇,欢迎你回浦育院看看。
院长童玉君
民国二十一年十月十五日
公寓地址 芦昌路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_船票] -民国十九年十月十七日
上海-南京-济南-北平-林西-满洲里
三等舱 3-23 号铺位
船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。
我的亲生父母是谁?当初他们为何要把我送到浦育院? [ID:prop_船票_说明] - # 未使用 一把香 [#texture=c02/一把香.png] [ID:prop_一把香] @@ -132,6 +124,21 @@ => END +~ ImportantPropItems +# c01 +院长的信 [#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png] [ID:prop_院长的信] +小萍:
你现下境况如何?
你虽离开浦育院已久,但我始终没有忘记为你祈祷。
愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。
你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。
若有闲暇,欢迎你回浦育院看看。
院长童玉君
民国二十一年十月十五日
公寓地址 芦昌路26弄3号 [ID:prop_院长的信_说明] +# c02 +船票 [#texture=c02/船票.png] [ID:prop_船票] +民国十九年十月十七日
上海-南京-济南-北平-林西-满洲里
三等舱 3-23 号铺位
船票早已订好,我本已不抱任何希望,直到院长给我回信。若今晚没能找到真相,我将带着这张通往未知的船票,在浪涛中打捞被时光吞噬的答案。
我的亲生父母是谁?当初他们为何要把我送到浦育院? [ID:prop_船票_说明] +眼镜盒 [#texture=c02/眼镜盒.png] [ID:prop_眼镜盒] +这副眼镜对我很重要。
记得小时候在浦育院的日子,我经常会在半夜时听到奇怪的说话声,还时不时能看见其他小孩子看不见的东西。
院长不知从哪儿找来了这样一副眼镜,戴上它后那些怪事就很少发生。
随着年龄增长,我几乎已用不到这副眼镜。现在它对我来说似乎有了新的意义。[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_小手再次出现] +又来一个!
这地方到底是怎么回事? [ID:c02_小手再次出现] #内侧楼道 被挡住了 [ID:c02_一楼楼道被挡住] 盖着布的木头架子...用来做什么的呢 [ID:c02_一楼戏台] @@ -233,6 +241,7 @@ #二楼 另一只小鞋子。 [ID:c02_锡箔换小鞋子] 去三楼的路被堵住了,要不先看看别的地方吧。 [ID:c02_二楼楼梯杂物堆] +这个小女孩神出鬼没的,她说不定知道上楼的路。 [ID:c02_二楼小蝉跑掉] 盆里的水很清澈,看上去像是刚盛的。 [ID:c02_二楼水盆] 到处都是老鼠洞,怕不是整栋楼都被老鼠打通了。 [ID:c02_二楼老鼠洞] 又是这种小小尖尖的血脚印... [ID:c02_二楼血脚印] diff --git a/scene/entity/ambush.gd b/scene/entity/ambush.gd index 6daa56f1..bfd88112 100644 --- a/scene/entity/ambush.gd +++ b/scene/entity/ambush.gd @@ -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() diff --git a/scene/entity/inspectable.gd b/scene/entity/inspectable.gd index fa67a154..09ec62b0 100644 --- a/scene/entity/inspectable.gd +++ b/scene/entity/inspectable.gd @@ -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() diff --git a/scene/entity/interactable.gd b/scene/entity/interactable.gd index 76d24524..b0420c2f 100644 --- a/scene/entity/interactable.gd +++ b/scene/entity/interactable.gd @@ -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) ) diff --git a/scene/entity/note.gd b/scene/entity/note.gd index 7196eef1..d425565f 100644 --- a/scene/entity/note.gd +++ b/scene/entity/note.gd @@ -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: diff --git a/scene/entity/npc.gd b/scene/entity/npc.gd index 13cd065f..4ccdbbe6 100644 --- a/scene/entity/npc.gd +++ b/scene/entity/npc.gd @@ -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 diff --git a/scene/entity/pickable.gd b/scene/entity/pickable.gd index e0bbe92e..3c45e351 100644 --- a/scene/entity/pickable.gd +++ b/scene/entity/pickable.gd @@ -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", diff --git a/scene/ground/scene/animation_root.gd b/scene/ground/scene/animation_root.gd index 099b947e..2337dfcc 100644 --- a/scene/ground/scene/animation_root.gd +++ b/scene/ground/scene/animation_root.gd @@ -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 diff --git a/scene/ground/scene/c02/s01_公寓门口.gd b/scene/ground/scene/c02/s01_公寓门口.gd index 78f78047..6505cc05 100644 --- a/scene/ground/scene/c02/s01_公寓门口.gd +++ b/scene/ground/scene/c02/s01_公寓门口.gd @@ -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) diff --git a/scene/ground/scene/c02/s02_过道.gd b/scene/ground/scene/c02/s02_过道.gd index b42f12c3..a643cb25 100644 --- a/scene/ground/scene/c02/s02_过道.gd +++ b/scene/ground/scene/c02/s02_过道.gd @@ -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 diff --git a/scene/ground/scene/c02/s02_过道.tscn b/scene/ground/scene/c02/s02_过道.tscn index f40d7241..5fde6e4e 100644 --- a/scene/ground/scene/c02/s02_过道.tscn +++ b/scene/ground/scene/c02/s02_过道.tscn @@ -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) diff --git a/scene/ground/scene/c02/s03_院子.tscn b/scene/ground/scene/c02/s03_院子.tscn index 21c68a5b..70dbdc5f 100644 --- a/scene/ground/scene/c02/s03_院子.tscn +++ b/scene/ground/scene/c02/s03_院子.tscn @@ -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_柜子可放置区域" diff --git a/scene/ground/scene/c02/s04_保卫科.gd b/scene/ground/scene/c02/s04_保卫科.gd index 780557eb..f0579f0e 100644 --- a/scene/ground/scene/c02/s04_保卫科.gd +++ b/scene/ground/scene/c02/s04_保卫科.gd @@ -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) diff --git a/scene/ground/scene/c02/s04_保卫科.tscn b/scene/ground/scene/c02/s04_保卫科.tscn index e46d6629..ebbd82b1 100644 --- a/scene/ground/scene/c02/s04_保卫科.tscn +++ b/scene/ground/scene/c02/s04_保卫科.tscn @@ -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"] diff --git a/scene/ground/scene/c02/s05_一楼内侧楼道.gd b/scene/ground/scene/c02/s05_一楼内侧楼道.gd index 7370a2b9..f907d575 100644 --- a/scene/ground/scene/c02/s05_一楼内侧楼道.gd +++ b/scene/ground/scene/c02/s05_一楼内侧楼道.gd @@ -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 diff --git a/scene/ground/scene/c02/s05_一楼内侧楼道.tscn b/scene/ground/scene/c02/s05_一楼内侧楼道.tscn index 244dcf5b..00965140 100644 --- a/scene/ground/scene/c02/s05_一楼内侧楼道.tscn +++ b/scene/ground/scene/c02/s05_一楼内侧楼道.tscn @@ -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_一楼死老鼠" diff --git a/scene/ground/scene/c02/s06_二楼.gd b/scene/ground/scene/c02/s06_二楼.gd index b676d794..214ef07f 100644 --- a/scene/ground/scene/c02/s06_二楼.gd +++ b/scene/ground/scene/c02/s06_二楼.gd @@ -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) + EventManager.set_stage_if_greater(&"handnote_c02_shoe_giveToMouce", 1) \ No newline at end of file diff --git a/scene/ground/scene/c02/s06_二楼.tscn b/scene/ground/scene/c02/s06_二楼.tscn index 33c6c525..e8fd4aef 100644 --- a/scene/ground/scene/c02/s06_二楼.tscn +++ b/scene/ground/scene/c02/s06_二楼.tscn @@ -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 diff --git a/scene/ground/scene/c02/s10_空房间.gd b/scene/ground/scene/c02/s10_空房间.gd index 35b1e71a..bdb51f40 100644 --- a/scene/ground/scene/c02/s10_空房间.gd +++ b/scene/ground/scene/c02/s10_空房间.gd @@ -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进入隧道询问" diff --git a/scene/ground/scene/c02/s10_空房间.tscn b/scene/ground/scene/c02/s10_空房间.tscn index 168ee91e..07b50094 100644 --- a/scene/ground/scene/c02/s10_空房间.tscn +++ b/scene/ground/scene/c02/s10_空房间.tscn @@ -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) diff --git a/scene/ground/script/c02/event_2d_xchan_run_after_got_pliers.gd b/scene/ground/script/c02/event_2d_xchan_run_after_got_pliers.gd new file mode 100644 index 00000000..0530425a --- /dev/null +++ b/scene/ground/script/c02/event_2d_xchan_run_after_got_pliers.gd @@ -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) + ) diff --git a/scene/ground/script/c02/event_2d_xchan_run_after_got_pliers.gd.uid b/scene/ground/script/c02/event_2d_xchan_run_after_got_pliers.gd.uid new file mode 100644 index 00000000..d28ec252 --- /dev/null +++ b/scene/ground/script/c02/event_2d_xchan_run_after_got_pliers.gd.uid @@ -0,0 +1 @@ +uid://3p6e8f385kow diff --git a/scene/ground/script/c02/event_2d_xchan_run_away.gd b/scene/ground/script/c02/event_2d_xchan_run_away.gd new file mode 100644 index 00000000..280c5cd0 --- /dev/null +++ b/scene/ground/script/c02/event_2d_xchan_run_away.gd @@ -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) + ) + diff --git a/scene/ground/script/c02/event_2d_xchan_run_away.gd.uid b/scene/ground/script/c02/event_2d_xchan_run_away.gd.uid new file mode 100644 index 00000000..17e59eaf --- /dev/null +++ b/scene/ground/script/c02/event_2d_xchan_run_away.gd.uid @@ -0,0 +1 @@ +uid://bnm8wuspfx303 diff --git a/scene/ground/script/c02/小手讨东西.gd b/scene/ground/script/c02/小手讨东西.gd index 9bf26209..5fe8a763 100644 --- a/scene/ground/script/c02/小手讨东西.gd +++ b/scene/ground/script/c02/小手讨东西.gd @@ -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 diff --git a/scene/ux/bag/prop_bag_button.tscn b/scene/ux/bag/prop_bag_button.tscn index 5005b1f2..82f61d1c 100644 --- a/scene/ux/bag/prop_bag_button.tscn +++ b/scene/ux/bag/prop_bag_button.tscn @@ -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") diff --git a/scene/ux/note/ux_note.tscn b/scene/ux/note/ux_note.tscn index 93944c65..e29d66aa 100644 --- a/scene/ux/note/ux_note.tscn +++ b/scene/ux/note/ux_note.tscn @@ -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"] diff --git a/scene/ux/prop_hud.gd b/scene/ux/prop_hud.gd index bc514ff6..6a4cda0f 100644 --- a/scene/ux/prop_hud.gd +++ b/scene/ux/prop_hud.gd @@ -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"):