From 8c91477f2118b57ed15fb9309910239710b07cf4 Mon Sep 17 00:00:00 2001 From: cakipaul Date: Tue, 15 Jul 2025 12:56:11 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9E=8E=E5=AD=90=E7=90=86=E5=8F=91=E5=BA=97?= =?UTF-8?q?=EF=BC=9A=E7=99=9E=E5=AD=90=E5=89=AA=E8=BE=AB=E5=AD=90=E7=89=B9?= =?UTF-8?q?=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pro_animated_sprite.gd | 16 ++- asset/art/gif/c03_二楼/c03_二楼_frames.tres | 42 +++--- .../癞子特写/1大头.png | Bin .../癞子特写/1大头.png.import | 6 +- .../癞子特写/1大头带纸钱.png | Bin .../癞子特写/1大头带纸钱.png.import | 6 +- .../癞子特写/1辫子散开.png | Bin .../癞子特写/1辫子散开.png.import | 6 +- .../癞子特写/1辫子没剪开.png | Bin .../癞子特写/1辫子没剪开.png.import | 6 +- .../c03/s03_瞎子理发店/癞子特写/l_辫子.png | Bin 0 -> 1716 bytes .../s03_瞎子理发店/癞子特写/l_辫子.png.import | 34 +++++ .../癞子特写/伤口.png} | Bin .../癞子特写/伤口.png.import} | 6 +- .../1伤口.png => s03_瞎子理发店/癞子特写/伤口_头.png} | Bin .../癞子特写/伤口_头.png.import} | 6 +- .../癞子特写/头 啥也没有.png | Bin .../癞子特写/头 啥也没有.png.import | 6 +- .../癞子特写/暗角.png | Bin .../癞子特写/暗角.png.import | 6 +- .../c03/s03_瞎子理发店/癞子特写/纸钱1.png | Bin 0 -> 7438 bytes .../s03_瞎子理发店/癞子特写/纸钱1.png.import | 34 +++++ .../c03/s03_瞎子理发店/癞子特写/纸钱2.png | Bin 0 -> 6948 bytes .../癞子特写/纸钱2.png.import} | 6 +- .../癞子特写/背景.png | Bin .../癞子特写/背景.png.import | 6 +- .../癞子特写/衣服.png | Bin .../癞子特写/衣服.png.import | 6 +- .../癞子特写/辫子.png | Bin .../癞子特写/辫子.png.import | 6 +- .../癞子特写/辫子散了.png | Bin .../癞子特写/辫子散了.png.import | 6 +- .../scene/c03/s04_李癞房间/癞子特写/纸钱.png | Bin 14818 -> 0 bytes asset/dialogue/event_stage.dialogue | 3 +- asset/dialogue/item_description.csv | 7 + asset/dialogue/item_description.dialogue | 1 + manager/event_manager/event_binder.gd | 14 +- manager/event_manager/event_manager.gd | 9 +- manager/scene/global_functor.gd | 23 +++- scene/entity/ux/hover_light_click_area.gd | 2 +- scene/ground/scene/c02/s06_二楼.gd | 10 +- scene/ground/scene/c02/s06_二楼.tscn | 91 ++++++++++--- scene/ground/scene/c03/s02_瞎子新卧室.tscn | 30 ++-- scene/ground/scene/c03/s03_瞎子理发店.gd | 21 ++- scene/ground/scene/c03/s03_瞎子理发店.tscn | 4 +- scene/ground/scene/c03/s04_李癞房间.tscn | 10 +- .../ground/script/c02/s06_event_2d疯子跑开.gd | 51 +++++++ .../script/c02/s06_event_2d疯子跑开.gd.uid | 1 + .../ground/script/c03/s03_closeup癞子纸人.gd | 66 ++++++++- .../script/c03/s03_closeup癞子纸人.tscn | 128 +++++++++++++++++- .../ground/script/c03/s03_刮海报_理发店.tscn | 62 +++++---- .../ground/script/c03/s04_closeup李氏纸人.gd | 9 ++ .../script/c03/s04_closeup李氏纸人.gd.uid | 1 + .../script/c03/s04_closeup李氏纸人.tscn | 83 ++++++++++++ scene/ground/script/c03/鬼母子游戏.gd | 4 +- scene/little_game/general/draggable.gd | 2 + scene/ux/prop_inspector.gd | 4 + scene/ux/prop_inspector.tscn | 11 ++ 58 files changed, 683 insertions(+), 168 deletions(-) rename asset/art/scene/c03/{s04_李癞房间 => s03_瞎子理发店}/癞子特写/1大头.png (100%) rename asset/art/scene/c03/{s04_李癞房间 => s03_瞎子理发店}/癞子特写/1大头.png.import (68%) rename asset/art/scene/c03/{s04_李癞房间 => s03_瞎子理发店}/癞子特写/1大头带纸钱.png (100%) rename asset/art/scene/c03/{s04_李癞房间 => s03_瞎子理发店}/癞子特写/1大头带纸钱.png.import (66%) rename asset/art/scene/c03/{s04_李癞房间 => s03_瞎子理发店}/癞子特写/1辫子散开.png (100%) rename asset/art/scene/c03/{s04_李癞房间 => s03_瞎子理发店}/癞子特写/1辫子散开.png.import (67%) rename asset/art/scene/c03/{s04_李癞房间 => s03_瞎子理发店}/癞子特写/1辫子没剪开.png (100%) rename asset/art/scene/c03/{s04_李癞房间 => s03_瞎子理发店}/癞子特写/1辫子没剪开.png.import (66%) create mode 100644 asset/art/scene/c03/s03_瞎子理发店/癞子特写/l_辫子.png create mode 100644 asset/art/scene/c03/s03_瞎子理发店/癞子特写/l_辫子.png.import rename asset/art/scene/c03/{s04_李癞房间/癞子特写/伤口 拷贝.png => s03_瞎子理发店/癞子特写/伤口.png} (100%) rename asset/art/scene/c03/{s04_李癞房间/癞子特写/伤口 拷贝.png.import => s03_瞎子理发店/癞子特写/伤口.png.import} (67%) rename asset/art/scene/c03/{s04_李癞房间/癞子特写/1伤口.png => s03_瞎子理发店/癞子特写/伤口_头.png} (100%) rename asset/art/scene/c03/{s04_李癞房间/癞子特写/1伤口.png.import => s03_瞎子理发店/癞子特写/伤口_头.png.import} (68%) rename asset/art/scene/c03/{s04_李癞房间 => s03_瞎子理发店}/癞子特写/头 啥也没有.png (100%) rename asset/art/scene/c03/{s04_李癞房间 => s03_瞎子理发店}/癞子特写/头 啥也没有.png.import (66%) rename asset/art/scene/c03/{s04_李癞房间 => s03_瞎子理发店}/癞子特写/暗角.png (100%) rename asset/art/scene/c03/{s04_李癞房间 => s03_瞎子理发店}/癞子特写/暗角.png.import (69%) create mode 100644 asset/art/scene/c03/s03_瞎子理发店/癞子特写/纸钱1.png create mode 100644 asset/art/scene/c03/s03_瞎子理发店/癞子特写/纸钱1.png.import create mode 100644 asset/art/scene/c03/s03_瞎子理发店/癞子特写/纸钱2.png rename asset/art/scene/c03/{s04_李癞房间/癞子特写/纸钱.png.import => s03_瞎子理发店/癞子特写/纸钱2.png.import} (68%) rename asset/art/scene/c03/{s04_李癞房间 => s03_瞎子理发店}/癞子特写/背景.png (100%) rename asset/art/scene/c03/{s04_李癞房间 => s03_瞎子理发店}/癞子特写/背景.png.import (69%) rename asset/art/scene/c03/{s04_李癞房间 => s03_瞎子理发店}/癞子特写/衣服.png (100%) rename asset/art/scene/c03/{s04_李癞房间 => s03_瞎子理发店}/癞子特写/衣服.png.import (69%) rename asset/art/scene/c03/{s04_李癞房间 => s03_瞎子理发店}/癞子特写/辫子.png (100%) rename asset/art/scene/c03/{s04_李癞房间 => s03_瞎子理发店}/癞子特写/辫子.png.import (69%) rename asset/art/scene/c03/{s04_李癞房间 => s03_瞎子理发店}/癞子特写/辫子散了.png (100%) rename asset/art/scene/c03/{s04_李癞房间 => s03_瞎子理发店}/癞子特写/辫子散了.png.import (67%) delete mode 100644 asset/art/scene/c03/s04_李癞房间/癞子特写/纸钱.png create mode 100644 scene/ground/script/c02/s06_event_2d疯子跑开.gd create mode 100644 scene/ground/script/c02/s06_event_2d疯子跑开.gd.uid create mode 100644 scene/ground/script/c03/s04_closeup李氏纸人.gd create mode 100644 scene/ground/script/c03/s04_closeup李氏纸人.gd.uid create mode 100644 scene/ground/script/c03/s04_closeup李氏纸人.tscn 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 417b3af2..cd633332 100644 --- a/addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.gd +++ b/addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.gd @@ -1,6 +1,8 @@ @tool class_name ProAnimatedSprite2D extends AnimatedSprite2D +signal position_updated(global_pos: Vector2) + @export var autostart := true @export var action_configs: Array[Dictionary] = [] @export var move_configs: Array[Dictionary] = [] @@ -92,7 +94,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 - ) + ) * sign(mov_config.velocity.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: @@ -190,12 +192,12 @@ func _physics_process(delta: float) -> void: "切换 animation:", mov_x_next_animation, " accumulated_mov_x=", accumulated_mov_x ) play(mov_x_next_animation) - if not velocity.y: - return - if flip_v: - position.y -= velocity.y * delta - else: - position.y += velocity.y * delta + if velocity.y: + if flip_v: + position.y -= velocity.y * delta + else: + position.y += velocity.y * delta + position_updated.emit(global_position) # temporary set velocity diff --git a/asset/art/gif/c03_二楼/c03_二楼_frames.tres b/asset/art/gif/c03_二楼/c03_二楼_frames.tres index 9897bc81..d0bc124a 100644 --- a/asset/art/gif/c03_二楼/c03_二楼_frames.tres +++ b/asset/art/gif/c03_二楼/c03_二楼_frames.tres @@ -1,31 +1,31 @@ [gd_resource type="SpriteFrames" load_steps=19 format=3 uid="uid://cee76qwjhw268"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_二楼/疯子_偷听呼吸/0.png" id="1_hl1q0"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_二楼/疯子_慌张跑开/0.png" id="1_lfyu7"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_二楼/疯子_慌张跑开/1.png" id="2_53eth"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_二楼/疯子_偷听呼吸/1.png" id="2_g7758"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_二楼/疯子_慌张跑开/2.png" id="3_ednhc"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_二楼/疯子_慌张跑开/3.png" id="4_4e7e3"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_二楼/疯子_慌张跑开/4.png" id="5_omgqx"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_二楼/疯子_慌张跑开/5.png" id="6_gjyqo"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_二楼/疯子_慌张跑开/6.png" id="7_mwxuw"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_二楼/疯子_慌张跑开/7.png" id="8_2tm2e"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_二楼/疯子_慌张转身/0.png" id="11_mdlpw"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_二楼/疯子_慌张转身/1.png" id="12_matei"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_二楼/疯子_慌张转身/2.png" id="13_iu8u1"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_二楼/疯子_慌张转身/3.png" id="14_pjp2a"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_二楼/疯子_慌张转身/4.png" id="15_s740e"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_二楼/疯子_慌张转身/5.png" id="16_nij6e"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_二楼/疯子_慌张转身/6.png" id="17_rgha8"] -[ext_resource type="Texture2D" path="res://asset/art/gif/c03_二楼/疯子_慌张转身/7.png" id="18_7aqib"] +[ext_resource type="Texture2D" uid="uid://04c3avsip8pq" path="res://asset/art/gif/c03_二楼/疯子_偷听呼吸/0.png" id="1_hl1q0"] +[ext_resource type="Texture2D" uid="uid://cvjlhycvn8jwy" path="res://asset/art/gif/c03_二楼/疯子_慌张跑开/0.png" id="1_lfyu7"] +[ext_resource type="Texture2D" uid="uid://dhdeexnsttj48" path="res://asset/art/gif/c03_二楼/疯子_慌张跑开/1.png" id="2_53eth"] +[ext_resource type="Texture2D" uid="uid://c7760r5k4mr8" path="res://asset/art/gif/c03_二楼/疯子_偷听呼吸/1.png" id="2_g7758"] +[ext_resource type="Texture2D" uid="uid://dka38neh5tv6e" path="res://asset/art/gif/c03_二楼/疯子_慌张跑开/2.png" id="3_ednhc"] +[ext_resource type="Texture2D" uid="uid://d23y4gduqm30m" path="res://asset/art/gif/c03_二楼/疯子_慌张跑开/3.png" id="4_4e7e3"] +[ext_resource type="Texture2D" uid="uid://dti2lkk20j32p" path="res://asset/art/gif/c03_二楼/疯子_慌张跑开/4.png" id="5_omgqx"] +[ext_resource type="Texture2D" uid="uid://cppfk3uoblr38" path="res://asset/art/gif/c03_二楼/疯子_慌张跑开/5.png" id="6_gjyqo"] +[ext_resource type="Texture2D" uid="uid://hw6ltmxjnker" path="res://asset/art/gif/c03_二楼/疯子_慌张跑开/6.png" id="7_mwxuw"] +[ext_resource type="Texture2D" uid="uid://boipydm7o1c3l" path="res://asset/art/gif/c03_二楼/疯子_慌张跑开/7.png" id="8_2tm2e"] +[ext_resource type="Texture2D" uid="uid://dj6hlax6dhe2u" path="res://asset/art/gif/c03_二楼/疯子_慌张转身/0.png" id="11_mdlpw"] +[ext_resource type="Texture2D" uid="uid://dw8g3eop55vtp" path="res://asset/art/gif/c03_二楼/疯子_慌张转身/1.png" id="12_matei"] +[ext_resource type="Texture2D" uid="uid://b20v56d2cijjc" path="res://asset/art/gif/c03_二楼/疯子_慌张转身/2.png" id="13_iu8u1"] +[ext_resource type="Texture2D" uid="uid://dfd7od52nh3mm" path="res://asset/art/gif/c03_二楼/疯子_慌张转身/3.png" id="14_pjp2a"] +[ext_resource type="Texture2D" uid="uid://x7qlausaja31" path="res://asset/art/gif/c03_二楼/疯子_慌张转身/4.png" id="15_s740e"] +[ext_resource type="Texture2D" uid="uid://tq0a7n85gt7k" path="res://asset/art/gif/c03_二楼/疯子_慌张转身/5.png" id="16_nij6e"] +[ext_resource type="Texture2D" uid="uid://ddmjdhfcjefvt" path="res://asset/art/gif/c03_二楼/疯子_慌张转身/6.png" id="17_rgha8"] +[ext_resource type="Texture2D" uid="uid://b14h0rdu2ucjh" path="res://asset/art/gif/c03_二楼/疯子_慌张转身/7.png" id="18_7aqib"] [resource] animations = [{ "frames": [{ -"duration": 30.0, +"duration": 18.0, "texture": ExtResource("1_hl1q0") }, { -"duration": 30.0, +"duration": 18.0, "texture": ExtResource("2_g7758") }], "loop": true, @@ -86,7 +86,7 @@ animations = [{ "duration": 6.0, "texture": ExtResource("18_7aqib") }], -"loop": true, +"loop": false, "name": &"疯子_慌张转身", "speed": 30.0 }] diff --git a/asset/art/scene/c03/s04_李癞房间/癞子特写/1大头.png b/asset/art/scene/c03/s03_瞎子理发店/癞子特写/1大头.png similarity index 100% rename from asset/art/scene/c03/s04_李癞房间/癞子特写/1大头.png rename to asset/art/scene/c03/s03_瞎子理发店/癞子特写/1大头.png diff --git a/asset/art/scene/c03/s04_李癞房间/癞子特写/1大头.png.import b/asset/art/scene/c03/s03_瞎子理发店/癞子特写/1大头.png.import similarity index 68% rename from asset/art/scene/c03/s04_李癞房间/癞子特写/1大头.png.import rename to asset/art/scene/c03/s03_瞎子理发店/癞子特写/1大头.png.import index f0cfebd2..583d1a0c 100644 --- a/asset/art/scene/c03/s04_李癞房间/癞子特写/1大头.png.import +++ b/asset/art/scene/c03/s03_瞎子理发店/癞子特写/1大头.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://c12xhretrdxs6" -path="res://.godot/imported/1大头.png-9bf48f22cf97b3de8c6ad2db9604d1b8.ctex" +path="res://.godot/imported/1大头.png-f46c28640f53536755bc177bb0394203.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/scene/c03/s04_李癞房间/癞子特写/1大头.png" -dest_files=["res://.godot/imported/1大头.png-9bf48f22cf97b3de8c6ad2db9604d1b8.ctex"] +source_file="res://asset/art/scene/c03/s03_瞎子理发店/癞子特写/1大头.png" +dest_files=["res://.godot/imported/1大头.png-f46c28640f53536755bc177bb0394203.ctex"] [params] diff --git a/asset/art/scene/c03/s04_李癞房间/癞子特写/1大头带纸钱.png b/asset/art/scene/c03/s03_瞎子理发店/癞子特写/1大头带纸钱.png similarity index 100% rename from asset/art/scene/c03/s04_李癞房间/癞子特写/1大头带纸钱.png rename to asset/art/scene/c03/s03_瞎子理发店/癞子特写/1大头带纸钱.png diff --git a/asset/art/scene/c03/s04_李癞房间/癞子特写/1大头带纸钱.png.import b/asset/art/scene/c03/s03_瞎子理发店/癞子特写/1大头带纸钱.png.import similarity index 66% rename from asset/art/scene/c03/s04_李癞房间/癞子特写/1大头带纸钱.png.import rename to asset/art/scene/c03/s03_瞎子理发店/癞子特写/1大头带纸钱.png.import index 0953b802..82c884c9 100644 --- a/asset/art/scene/c03/s04_李癞房间/癞子特写/1大头带纸钱.png.import +++ b/asset/art/scene/c03/s03_瞎子理发店/癞子特写/1大头带纸钱.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://bmsm01xyej06f" -path="res://.godot/imported/1大头带纸钱.png-4e41de5a5e7a11b813287a2cd2f93a03.ctex" +path="res://.godot/imported/1大头带纸钱.png-a7b998297a8e3123c9eacc5da81786f8.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/scene/c03/s04_李癞房间/癞子特写/1大头带纸钱.png" -dest_files=["res://.godot/imported/1大头带纸钱.png-4e41de5a5e7a11b813287a2cd2f93a03.ctex"] +source_file="res://asset/art/scene/c03/s03_瞎子理发店/癞子特写/1大头带纸钱.png" +dest_files=["res://.godot/imported/1大头带纸钱.png-a7b998297a8e3123c9eacc5da81786f8.ctex"] [params] diff --git a/asset/art/scene/c03/s04_李癞房间/癞子特写/1辫子散开.png b/asset/art/scene/c03/s03_瞎子理发店/癞子特写/1辫子散开.png similarity index 100% rename from asset/art/scene/c03/s04_李癞房间/癞子特写/1辫子散开.png rename to asset/art/scene/c03/s03_瞎子理发店/癞子特写/1辫子散开.png diff --git a/asset/art/scene/c03/s04_李癞房间/癞子特写/1辫子散开.png.import b/asset/art/scene/c03/s03_瞎子理发店/癞子特写/1辫子散开.png.import similarity index 67% rename from asset/art/scene/c03/s04_李癞房间/癞子特写/1辫子散开.png.import rename to asset/art/scene/c03/s03_瞎子理发店/癞子特写/1辫子散开.png.import index 0d31be8c..6bcebbe9 100644 --- a/asset/art/scene/c03/s04_李癞房间/癞子特写/1辫子散开.png.import +++ b/asset/art/scene/c03/s03_瞎子理发店/癞子特写/1辫子散开.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://cpri1f3b2blfw" -path="res://.godot/imported/1辫子散开.png-6b5a42c136b25c3d1764773b682def1e.ctex" +path="res://.godot/imported/1辫子散开.png-c1151ab4a1a7cec13310afb9577d8f3e.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/scene/c03/s04_李癞房间/癞子特写/1辫子散开.png" -dest_files=["res://.godot/imported/1辫子散开.png-6b5a42c136b25c3d1764773b682def1e.ctex"] +source_file="res://asset/art/scene/c03/s03_瞎子理发店/癞子特写/1辫子散开.png" +dest_files=["res://.godot/imported/1辫子散开.png-c1151ab4a1a7cec13310afb9577d8f3e.ctex"] [params] diff --git a/asset/art/scene/c03/s04_李癞房间/癞子特写/1辫子没剪开.png b/asset/art/scene/c03/s03_瞎子理发店/癞子特写/1辫子没剪开.png similarity index 100% rename from asset/art/scene/c03/s04_李癞房间/癞子特写/1辫子没剪开.png rename to asset/art/scene/c03/s03_瞎子理发店/癞子特写/1辫子没剪开.png diff --git a/asset/art/scene/c03/s04_李癞房间/癞子特写/1辫子没剪开.png.import b/asset/art/scene/c03/s03_瞎子理发店/癞子特写/1辫子没剪开.png.import similarity index 66% rename from asset/art/scene/c03/s04_李癞房间/癞子特写/1辫子没剪开.png.import rename to asset/art/scene/c03/s03_瞎子理发店/癞子特写/1辫子没剪开.png.import index dea62243..fdde9319 100644 --- a/asset/art/scene/c03/s04_李癞房间/癞子特写/1辫子没剪开.png.import +++ b/asset/art/scene/c03/s03_瞎子理发店/癞子特写/1辫子没剪开.png.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://cxlwpf82sqc8p" -path="res://.godot/imported/1辫子没剪开.png-5f8c9bf6b06eecdbb61a9ac086051a20.ctex" +path="res://.godot/imported/1辫子没剪开.png-ccf05d92a94d8f170f5d28c6ede9a232.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://asset/art/scene/c03/s04_李癞房间/癞子特写/1辫子没剪开.png" -dest_files=["res://.godot/imported/1辫子没剪开.png-5f8c9bf6b06eecdbb61a9ac086051a20.ctex"] +source_file="res://asset/art/scene/c03/s03_瞎子理发店/癞子特写/1辫子没剪开.png" +dest_files=["res://.godot/imported/1辫子没剪开.png-ccf05d92a94d8f170f5d28c6ede9a232.ctex"] [params] diff --git a/asset/art/scene/c03/s03_瞎子理发店/癞子特写/l_辫子.png b/asset/art/scene/c03/s03_瞎子理发店/癞子特写/l_辫子.png new file mode 100644 index 0000000000000000000000000000000000000000..a1ab47612d5cf48aa1813a9106b54b3026601df6 GIT binary patch literal 1716 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 M07*qoM6N<$f(Ni|%m4rY literal 0 HcmV?d00001 diff --git a/asset/art/scene/c03/s03_瞎子理发店/癞子特写/纸钱1.png.import b/asset/art/scene/c03/s03_瞎子理发店/癞子特写/纸钱1.png.import new file mode 100644 index 00000000..75a570a5 --- /dev/null +++ b/asset/art/scene/c03/s03_瞎子理发店/癞子特写/纸钱1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://vyuf0wekr1lq" +path="res://.godot/imported/纸钱1.png-6d34bbdbd0d1aed397602346c93f6eee.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://asset/art/scene/c03/s03_瞎子理发店/癞子特写/纸钱1.png" +dest_files=["res://.godot/imported/纸钱1.png-6d34bbdbd0d1aed397602346c93f6eee.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/scene/c03/s03_瞎子理发店/癞子特写/纸钱2.png b/asset/art/scene/c03/s03_瞎子理发店/癞子特写/纸钱2.png new file mode 100644 index 0000000000000000000000000000000000000000..49b2d6282d72e71d9a8e73343443ddc5949a206d GIT binary patch literal 6948 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 END diff --git a/asset/dialogue/item_description.csv b/asset/dialogue/item_description.csv index 0cd28dbe..f612ca7a 100644 --- a/asset/dialogue/item_description.csv +++ b/asset/dialogue/item_description.csv @@ -33,6 +33,7 @@ ui_notify_mem_update,回忆已更新,,,,,Memories updated ui_center_notify_press_e_to_interact,按 E 可与场景互动,,,,,Press E to interact ui_center_notify_press_q_to_exit,按 Q 可退出,,,,,Press Q to exit ui_center_notify_use_prop,按 E 使用道具,,,,,Press E to use item +ui_center_notify_lack_of_prop,缺少道具,,,,, ui_center_notify_check_note,按 N 查看线索笔记,,,,,Press N to check clue notes ui_center_notify_check_bag,按 B 查看重要物品,,,,,Press B to check important items ui_center_notify_right_click_prop,右键点击可检阅道具,,,,,Right-click to examine item @@ -117,6 +118,12 @@ prop_药包,药包,,,[#texture=c03/药包.png][#inspect=c03/ux_药包.png],, prop_药包_说明,说明,,,,, prop_菜刀,菜刀,,,[#texture=c03/菜刀.png][#inspect=c03/ux_菜刀.png],, prop_菜刀_说明,说明,,,,, +prop_1015钥匙,1015钥匙,,,[#texture=c03/1015钥匙.png],, +prop_1015钥匙_说明,说明,,,,, +prop_2013钥匙,2013钥匙,,,[#texture=c03/2013钥匙.png],, +prop_2013钥匙_说明,说明,,,,, +prop_胖子的钥匙,胖子的钥匙,,,[#texture=c03/胖子的钥匙.png],, +prop_胖子的钥匙_说明,说明,,,,, prop_院长的信,院长的信,,,[#texture=c01/院长的信物品.png][#inspect=c01/院长的信.png],,Director's Letter prop_院长的信_说明,小萍:{br}你现下境况如何?{br}你虽离开浦育院已久,但我始终没有忘记为你祈祷。{br}愿上帝保佑你走向真正光明的道路。我相信这也是当年你父亲将你托付给我时的殷切愿景。{br}你既已成人,无论你的父母出于何种理由选择与你分离,你都应当拥有知晓真相的权利,所以我将公寓地址附在了信后,除此之外,我亦知之甚少。{br}若有闲暇,欢迎你回浦育院看看。{br}院长童玉君{br}民国二十一年十月十五日{br}公寓地址 芦昌路26弄3号,,,,,"Xiao Ping:{br}How are you faring now?{br}Though you left Puyu Orphanage long ago, I have never forgotten to pray for you.{br}May God bless you to walk the path of true enlightenment. I believe this was also your father's earnest wish when he entrusted you to my care.{br}Now that you are grown, regardless of whatever reasons your parents had for separating from you, you deserve the right to know the truth. I have attached the apartment address to this letter, though I know little beyond this.{br}If you have time, you are welcome to visit Puyu Orphanage.{br}Director Tong Yujun{br}October 15th, Year 21 of the Republic{br}Apartment Address: No. 3, Lane 26, Luchang Road" prop_船票,船票,,,[#texture=c02/船票.png],,Boat Ticket diff --git a/asset/dialogue/item_description.dialogue b/asset/dialogue/item_description.dialogue index 06445740..95f0ad85 100644 --- a/asset/dialogue/item_description.dialogue +++ b/asset/dialogue/item_description.dialogue @@ -41,6 +41,7 @@ 按 E 可与场景互动 [ID:ui_center_notify_press_e_to_interact] 按 Q 可退出 [ID:ui_center_notify_press_q_to_exit] 按 E 使用道具 [ID:ui_center_notify_use_prop] +缺少道具 [ID:ui_center_notify_lack_of_prop] 按 N 查看线索笔记 [ID:ui_center_notify_check_note] 按 B 查看重要物品 [ID:ui_center_notify_check_bag] 右键点击可检阅道具 [ID:ui_center_notify_right_click_prop] diff --git a/manager/event_manager/event_binder.gd b/manager/event_manager/event_binder.gd index b3ab2bb8..091af96b 100644 --- a/manager/event_manager/event_binder.gd +++ b/manager/event_manager/event_binder.gd @@ -45,7 +45,7 @@ class_name EventBinder extends Node if is_node_ready() and Engine.is_editor_hint(): _auto_memo() @export_tool_button("AutoDetectMode") var trigger_auto_detect_mode := _auto_detect_mode -@export_enum("none", "interacted", "triggered", "played") var trigger_mode := "none": +@export_enum("none", "interacted", "triggered", "picked", "played") var trigger_mode := "none": set(val): if trigger_mode != val: trigger_mode = val @@ -83,15 +83,11 @@ func _ready() -> void: EventManager.stage_updated.connect(_on_global_stage_updated) if not trigger_event.is_empty(): # connect trigger_mode signal - if trigger_mode == "interacted": - parent.interacted.connect(_on_happened) - elif trigger_mode == "triggered": - parent.triggered.connect(_on_happened) - elif trigger_mode == "played": - parent.played.connect(_on_happened) + if trigger_mode != "none": + parent.connect(trigger_mode, _on_happened) -func _on_happened() -> void: +func _on_happened(_arg = null) -> void: if trigger_set_stage_if_greater: var updated = EventManager.set_stage_if_greater(trigger_event, trigger_stage) if not updated: @@ -156,6 +152,8 @@ func _auto_detect_mode(): trigger_mode = "interacted" elif parent.has_signal("triggered"): trigger_mode = "triggered" + elif parent.has_signal("picked"): + trigger_mode = "picked" elif parent.has_signal("played"): trigger_mode = "played" else: diff --git a/manager/event_manager/event_manager.gd b/manager/event_manager/event_manager.gd index 13aaee96..01dcdab7 100644 --- a/manager/event_manager/event_manager.gd +++ b/manager/event_manager/event_manager.gd @@ -52,10 +52,13 @@ func set_stage_if_greater(event_name: StringName, stage := 1) -> bool: # stage 最大 99999 -func next_staged(event_name: StringName, stage_max := 99999) -> void: +func next_stage(event_name: StringName, stage_max := 99999) -> int: var current_stage = get_stage(event_name) if current_stage < stage_max: - set_stage(event_name, current_stage + 1) + var stage = current_stage + 1 + set_stage(event_name, stage) + return stage + return stage_max ##### 其他事件 ##### @@ -89,7 +92,7 @@ func get_event_stage_map_array(event_name: StringName) -> PackedStringArray: var e_name = line.character if line_text.begins_with("#"): continue - #c03_invite_xchan_supper: 0:未开始 1:已偷听,需邀请 2:已完成邀请 + #xxxx: 0:未开始 1:已偷听,需邀请 2:已完成邀请 var parts = line_text.split(" ") var stages = PackedStringArray() for id in range(0, len(parts)): diff --git a/manager/scene/global_functor.gd b/manager/scene/global_functor.gd index e2ed6695..7b468390 100644 --- a/manager/scene/global_functor.gd +++ b/manager/scene/global_functor.gd @@ -59,7 +59,9 @@ func _on_c02_fire_count_down_timeout(): SceneManager.pop_debug_dialog_info("音效", "【重开】霸凌救小蝉倒计时") c02_fire_count_down_timer.stop() AudioManager.stop_bgm_music("霸凌救小蝉倒计时") - DialogueManager.show_dialogue_balloon(dialogue_c02, "c02_未完成拯救小蝉的游戏", [GlobalConfig.DIALOG_IGNORE_INPUT]) + DialogueManager.show_dialogue_balloon( + dialogue_c02, "c02_未完成拯救小蝉的游戏", [GlobalConfig.DIALOG_IGNORE_INPUT] + ) await Util.wait(1.0) SceneManager.show_black_hand(true, 0.5) await Util.wait(3) @@ -78,3 +80,22 @@ func c02_fire_count_down_stop(): c02_fire_count_down_timer.stop() # 停止音效 AudioManager.stop_bgm_music("霸凌救小蝉倒计时") + + +# 获得三张纸钱,在理发店癞子纸人身上获得两张,药车李氏纸人一张 +func c03_get_paper_coin(_node = null) -> bool: + var stage = EventManager.next_stage("c03_paper_coin") + if stage == 1: + SceneManager.enable_prop_item("prop_纸铜钱1") + return true + elif stage == 2: + SceneManager.disable_prop_item("prop_纸铜钱1") + SceneManager.enable_prop_item("prop_2个纸铜钱") + return true + elif stage == 3: + SceneManager.disable_prop_item("prop_2个纸铜钱") + SceneManager.enable_prop_item("prop_3个纸铜钱") + return true + else: + printerr("c03_get_paper_coin: stage should not be greater than 3, but got %d" % stage) + return false diff --git a/scene/entity/ux/hover_light_click_area.gd b/scene/entity/ux/hover_light_click_area.gd index c9872369..07c02416 100644 --- a/scene/entity/ux/hover_light_click_area.gd +++ b/scene/entity/ux/hover_light_click_area.gd @@ -83,8 +83,8 @@ func _input(event: InputEvent) -> void: return if event is InputEventMouseButton: if event.button_index == MOUSE_BUTTON_LEFT and event.pressed: - # get_viewport().set_input_as_handled() if is_focused(): + get_viewport().set_input_as_handled() interacted.emit() diff --git a/scene/ground/scene/c02/s06_二楼.gd b/scene/ground/scene/c02/s06_二楼.gd index b42495b8..b41603f3 100644 --- a/scene/ground/scene/c02/s06_二楼.gd +++ b/scene/ground/scene/c02/s06_二楼.gd @@ -59,11 +59,13 @@ func _on_ground_ready() -> void: if ArchiveManager.get_global_value(&"c02_the_blind_room_unlocked") and EventManager.get_chapter_stage() < 3: the_blind_bedroom_portal.status = "opened" - if EventManager.get_chapter_stage() >= 3: - # 第二章,不通往瞎子新卧室,而是先去理发店 + #c03_invite_xchan_supper: 0:初始化 1:已偷听_需邀请 2:完成邀请 + if EventManager.get_stage("c03_invite_xchan_supper") >= 1: + # 第二章,通往瞎子新卧室 & 理发店 $"../DeployLayer/portal_2".enabled = true - the_blind_bedroom_portal.enabled = false - the_blind_bedroom_portal.target_scene = "c02_s06" + the_blind_bedroom_portal.enabled = true + the_blind_bedroom_portal.status = "opened" + the_blind_bedroom_portal.target_scene = "c03_s02" the_blind_bedroom_portal.target_portal = "1" diff --git a/scene/ground/scene/c02/s06_二楼.tscn b/scene/ground/scene/c02/s06_二楼.tscn index c05c8850..2ddde5af 100644 --- a/scene/ground/scene/c02/s06_二楼.tscn +++ b/scene/ground/scene/c02/s06_二楼.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=65 format=3 uid="uid://cootarwb44vvh"] +[gd_scene load_steps=68 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"] @@ -20,9 +20,12 @@ [ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="10_h3h1a"] [ext_resource type="SpriteFrames" uid="uid://c8dl7c68f1yb0" path="res://asset/art/gif/c02_二楼/c02_二楼_frames.tres" id="10_och2w"] [ext_resource type="PackedScene" uid="uid://b50n0hvs4yh75" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.tscn" id="10_p6da7"] +[ext_resource type="Script" uid="uid://cu4h3b6w2duwe" path="res://scene/ground/script/c02/s06_event_2d疯子跑开.gd" id="10_qoe83"] +[ext_resource type="Texture2D" uid="uid://bxmc7pas3b6wa" path="res://asset/art/scene/c03/引导纸人/指引纸人4.png" id="10_sqio2"] [ext_resource type="Texture2D" uid="uid://cylsq5cvhlp18" path="res://asset/art/tool/point_light.png" id="11_2rktm"] [ext_resource type="PackedScene" uid="uid://dqkxiqbq83cmq" path="res://scene/entity/closeup.tscn" id="11_owxx3"] [ext_resource type="PackedScene" uid="uid://cjx7o685ox8c1" path="res://scene/little_game/弹珠游戏/弹珠游戏.tscn" id="12_intre"] +[ext_resource type="SpriteFrames" uid="uid://cee76qwjhw268" path="res://asset/art/gif/c03_二楼/c03_二楼_frames.tres" id="12_sqio2"] [ext_resource type="SpriteFrames" uid="uid://c218xrr85jdc7" path="res://asset/art/gif/c03_小小小蝶上楼道/c03_小小小蝶上楼道_frames.tres" id="13_6iuix"] [ext_resource type="Script" uid="uid://wapo47a1oddf" path="res://scene/entity/audio/sfx2d.gd" id="14_7x2h6"] [ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="14_k01ve"] @@ -887,6 +890,7 @@ fill_to = Vector2(1, 1) [node name="S06" type="Node2D"] metadata/_edit_horizontal_guides_ = [-12.0] +metadata/_edit_vertical_guides_ = [24.0] [node name="Ground" parent="." instance=ExtResource("1_qkymk")] scene_name = "c02_s06" @@ -967,7 +971,56 @@ portal_name = "4" target_scene = "c03_s01" target_portal = "right" -[node name="楼梯蜡烛" type="Node2D" parent="Ground/DeployLayer" index="6"] +[node name="左侧纸人" type="Sprite2D" parent="Ground/DeployLayer" index="6"] +visible = false +position = Vector2(36, 35) +texture = ExtResource("10_sqio2") + +[node name="Event2D疯子跑开" type="Node2D" parent="Ground/DeployLayer" index="7"] +script = ExtResource("10_qoe83") +event_name = &"c03_f2_madman_runaway" +event_mode = "hide" +event_stages = Array[int]([1]) +pre_event_name = &"c03_invite_xchan_supper" +pre_event_mode = "hide" +pre_event_stages = Array[int]([0]) +event_memo = "当前置事件[c03_invite_xchan_supper!=0:初始化] +并且当事件[c03_f2_madman_runaway!=1]时显示该节点" +metadata/_custom_type_script = "uid://bkkiyk5jkdw4d" + +[node name="小蜡烛PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/Event2D疯子跑开"] +position = Vector2(69, 45) +color = Color(0.999971, 0.912551, 0.842208, 1) +blend_mode = 2 +texture = ExtResource("11_2rktm") +texture_scale = 0.6 + +[node name="小蜡烛" type="AnimatedSprite2D" parent="Ground/DeployLayer/Event2D疯子跑开/小蜡烛PointLight2D"] +self_modulate = Color(0.611765, 0.611765, 0.611765, 1) +position = Vector2(0, 12.8172) +sprite_frames = SubResource("SpriteFrames_lipxo") +autoplay = "default" + +[node name="Pro疯子慌张跑开" parent="Ground/DeployLayer/Event2D疯子跑开" instance=ExtResource("10_p6da7")] +position = Vector2(102, 22) +sprite_frames = ExtResource("12_sqio2") +animation = &"疯子_偷听呼吸" +autoplay = "疯子_偷听呼吸" +action_configs = Array[Dictionary]([{ +"animation_intro": "疯子_慌张转身", +&"animation_next": "疯子_慌张跑开" +}]) +move_configs = Array[Dictionary]([{ +"animation": "疯子_慌张跑开", +"movement_x": 500.0, +"velocity": Vector2(-100, 0) +}]) +debug_mov_animation = "疯子_慌张跑开" + +[node name="Ambush疯子慌张跑开" parent="Ground/DeployLayer/Event2D疯子跑开" instance=ExtResource("14_k01ve")] +position = Vector2(254, 36) + +[node name="楼梯蜡烛" type="Node2D" parent="Ground/DeployLayer" index="8"] [node name="小蜡烛PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/楼梯蜡烛"] position = Vector2(777.8, -48.2) @@ -1025,7 +1078,7 @@ position = Vector2(0, 12.8172) sprite_frames = SubResource("SpriteFrames_lipxo") autoplay = "default" -[node name="Pro小小蝶上楼" parent="Ground/DeployLayer" index="7" instance=ExtResource("10_p6da7")] +[node name="Pro小小蝶上楼" parent="Ground/DeployLayer" index="9" instance=ExtResource("10_p6da7")] position = Vector2(953, 30) sprite_frames = ExtResource("13_6iuix") animation = &"小小小蝶动画(跑)" @@ -1049,7 +1102,7 @@ bus = &"game_sfx" script = ExtResource("14_7x2h6") metadata/_custom_type_script = "uid://wapo47a1oddf" -[node name="Note楼梯杂物堆" parent="Ground/DeployLayer" index="8" instance=ExtResource("10_h3h1a")] +[node name="Note楼梯杂物堆" parent="Ground/DeployLayer" index="10" instance=ExtResource("10_h3h1a")] position = Vector2(801, -77) texture = ExtResource("7_v3hjg") sign_mark_offset = Vector2(0, 1.47) @@ -1062,7 +1115,7 @@ sign_mark_offset = Vector2(0, 1.47) [node name="CollisionShape2D" parent="Ground/DeployLayer/Note楼梯杂物堆/Area2D" index="0"] shape = SubResource("RectangleShape2D_2rktm") -[node name="煤油灯" parent="Ground/DeployLayer" index="9" instance=ExtResource("5_3p5ta")] +[node name="煤油灯" parent="Ground/DeployLayer" index="11" instance=ExtResource("5_3p5ta")] position = Vector2(616, -14) ground_light_texture = ExtResource("8_7x2h6") ground_height_offset = 15.0 @@ -1074,7 +1127,7 @@ shape = SubResource("RectangleShape2D_lh55k") position = Vector2(0, 15) texture = ExtResource("8_7x2h6") -[node name="煤油灯2" type="Sprite2D" parent="Ground/DeployLayer" index="10"] +[node name="煤油灯2" type="Sprite2D" parent="Ground/DeployLayer" index="12"] position = Vector2(321, 1) texture = ExtResource("16_osg51") @@ -1099,7 +1152,7 @@ blend_mode = 2 range_item_cull_mask = 4 texture = ExtResource("21_2rktm") -[node name="Interactable老鼠洞" parent="Ground/DeployLayer" index="11" instance=ExtResource("7_0d746")] +[node name="Interactable老鼠洞" parent="Ground/DeployLayer" index="13" instance=ExtResource("7_0d746")] position = Vector2(618, 50) enabled = false collision_width_and_x = Vector2(60, 0) @@ -1115,19 +1168,19 @@ shape = SubResource("RectangleShape2D_7kxvk") radius = 20.0 walk_to_edge = true -[node name="小老鼠拖鞋子" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="12"] +[node name="小老鼠拖鞋子" type="AnimatedSprite2D" parent="Ground/DeployLayer" index="14"] visible = false position = Vector2(608, -15) sprite_frames = ExtResource("8_nh8we") animation = &"老鼠托小鞋子" speed_scale = -1.0 -[node name="自动跟随的老鼠" parent="Ground/DeployLayer" index="13" instance=ExtResource("9_58d45")] +[node name="自动跟随的老鼠" parent="Ground/DeployLayer" index="15" instance=ExtResource("9_58d45")] position = Vector2(4, 73) action_area = Vector2(920, 40) distance_to_player_range = Vector2(20, 150) -[node name="疯子撞墙" parent="Ground/DeployLayer" index="14" instance=ExtResource("10_p6da7")] +[node name="疯子撞墙" parent="Ground/DeployLayer" index="16" instance=ExtResource("10_p6da7")] visible = false position = Vector2(221, 4) sprite_frames = ExtResource("10_och2w") @@ -1152,7 +1205,7 @@ loop = true loop_round_time = 0.8 metadata/_custom_type_script = "uid://wapo47a1oddf" -[node name="Ambush三男孩" parent="Ground/DeployLayer" index="15" instance=ExtResource("14_k01ve")] +[node name="Ambush三男孩" parent="Ground/DeployLayer" index="17" instance=ExtResource("14_k01ve")] visible = false position = Vector2(167, 38) enabled = false @@ -1169,23 +1222,23 @@ autoplay = "f3" frame = 6 frame_progress = 0.121203 -[node name="Closeup弹珠游戏" parent="Ground/DeployLayer" index="16" instance=ExtResource("11_owxx3")] +[node name="Closeup弹珠游戏" parent="Ground/DeployLayer" index="18" instance=ExtResource("11_owxx3")] position = Vector2(322, -269) packed_scene = ExtResource("12_intre") quit_closeup_on_cancel = false -[node name="Closeup水盆" parent="Ground/DeployLayer" index="17" instance=ExtResource("11_owxx3")] +[node name="Closeup水盆" parent="Ground/DeployLayer" index="19" instance=ExtResource("11_owxx3")] position = Vector2(289, 16) packed_scene = ExtResource("16_p6da7") first_interact_os_key = "c02_二楼水盆" -[node name="Closeup谢幕演出" parent="Ground/DeployLayer" index="18" instance=ExtResource("11_owxx3")] +[node name="Closeup谢幕演出" parent="Ground/DeployLayer" index="20" instance=ExtResource("11_owxx3")] position = Vector2(518, -272) packed_scene = ExtResource("25_m28ab") quit_closeup_on_cancel = false action_key = 3 -[node name="c02_final" type="Node2D" parent="Ground/DeployLayer" index="19"] +[node name="c02_final" type="Node2D" parent="Ground/DeployLayer" index="21"] visible = false [node name="胖子" parent="Ground/DeployLayer/c02_final" instance=ExtResource("10_p6da7")] @@ -1287,13 +1340,13 @@ color = Color(0.895506, 0.638359, 0.208885, 1) energy = 0.0 texture = SubResource("GradientTexture2D_0k27j") -[node name="Ambush小蝉偷看" parent="Ground/DeployLayer" index="20" instance=ExtResource("14_k01ve")] +[node name="Ambush小蝉偷看" parent="Ground/DeployLayer" index="22" instance=ExtResource("14_k01ve")] position = Vector2(553, -5) texture = ExtResource("37_osg51") collision_width_and_x = Vector2(150, 0) hook_method = "glimpse_hide_out" -[node name="Event_小猫纸条" type="Node2D" parent="Ground/DeployLayer" index="21"] +[node name="Event_小猫纸条" type="Node2D" parent="Ground/DeployLayer" index="23"] position = Vector2(164, 42) script = ExtResource("35_h3h1a") pre_event_name = &"c02_ball_game_stage" @@ -1314,11 +1367,11 @@ content_centered = true texture_cover = ExtResource("37_rjlld") content_key = "c02_小猫纸条" -[node name="Ambush解锁二楼地图" parent="Ground/DeployLayer" index="22" instance=ExtResource("14_k01ve")] +[node name="Ambush解锁二楼地图" parent="Ground/DeployLayer" index="24" instance=ExtResource("14_k01ve")] position = Vector2(748, 47) hook_method = "unlock_2floor_map" -[node name="Event2D_xchan_run_away" type="Node2D" parent="Ground/DeployLayer" index="23"] +[node name="Event2D_xchan_run_away" type="Node2D" parent="Ground/DeployLayer" index="25"] position = Vector2(9, -4) script = ExtResource("39_t5e0j") event_name = &"c02_2f_xchan_run_away" diff --git a/scene/ground/scene/c03/s02_瞎子新卧室.tscn b/scene/ground/scene/c03/s02_瞎子新卧室.tscn index 690ba9d8..8bb86a3c 100644 --- a/scene/ground/scene/c03/s02_瞎子新卧室.tscn +++ b/scene/ground/scene/c03/s02_瞎子新卧室.tscn @@ -200,25 +200,13 @@ position = Vector2(-2, 17) sprite_frames = ExtResource("24_omt0s") animation = &"叼纸小猫坐着呼吸" -[node name="Pickable李癞钥匙" parent="Ground" instance=ExtResource("13_v3seo")] -unique_name_in_owner = true -visible = false -position = Vector2(511, 71) -prop_key = "prop_1015钥匙" - -[node name="Sprite2D" type="Sprite2D" parent="Ground/Pickable李癞钥匙"] -position = Vector2(-2, 6) -rotation = -0.875318 -scale = Vector2(0.1, 0.1) -texture = ExtResource("24_ac6iq") - -[node name="MainPlayer" parent="Ground" index="6"] +[node name="MainPlayer" parent="Ground" index="5"] position = Vector2(63, 95) catty_light_energy = 0.5 player_movement_rect = Rect2(17, -158, 492, 316) facing_direction = Vector2(1, 0) -[node name="CameraFocusMarker" parent="Ground" index="7"] +[node name="CameraFocusMarker" parent="Ground" index="6"] limit_left = 0 limit_top = -158 limit_right = 564 @@ -235,9 +223,21 @@ scale = Vector2(1.1, 1.1) [node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"] points = PackedVector2Array(17, 150, 509, 150) -[node name="DirectionalLight2D" parent="Ground" index="9"] +[node name="DirectionalLight2D" parent="Ground" index="8"] visible = false energy = 0.8 blend_mode = 1 +[node name="Pickable李癞钥匙" parent="Ground" instance=ExtResource("13_v3seo")] +unique_name_in_owner = true +visible = false +position = Vector2(511, 71) +prop_key = "prop_1015钥匙" + +[node name="Sprite2D" type="Sprite2D" parent="Ground/Pickable李癞钥匙"] +position = Vector2(-2, 6) +rotation = -0.875318 +scale = Vector2(0.1, 0.1) +texture = ExtResource("24_ac6iq") + [editable path="Ground"] diff --git a/scene/ground/scene/c03/s03_瞎子理发店.gd b/scene/ground/scene/c03/s03_瞎子理发店.gd index 73dffbcf..bc4a83bf 100644 --- a/scene/ground/scene/c03/s03_瞎子理发店.gd +++ b/scene/ground/scene/c03/s03_瞎子理发店.gd @@ -14,24 +14,33 @@ func _ready() -> void: #region node_reference -var Closeup刮海报_鬼母子: Closeup2D +var closeup癞子纸人: Closeup2D +var closeup刮海报_鬼母子: Closeup2D var closeup镜子特写: Closeup2D #endregion # 读取设置变量名 func _setup_node_reference() -> void: - Closeup刮海报_鬼母子 = $"../DeployLayer/Closeup刮海报_鬼母子" + closeup癞子纸人 = $"../DeployLayer/Closeup癞子纸人" + closeup刮海报_鬼母子 = $"../DeployLayer/Closeup刮海报_鬼母子" closeup镜子特写 = $"../DeployLayer/Closeup镜子特写" func _on_ground_ready() -> void: - Closeup刮海报_鬼母子.exit.connect(_check_if_flyer_shaven) + closeup刮海报_鬼母子.exit.connect(_check_if_flyer_shaven) _check_if_flyer_shaven() + closeup癞子纸人.exit.connect(_on_laizi_exit) -func _check_if_flyer_shaven(_arg = false): - if ArchiveManager.get_global_value("刮海报_理发店"): - Closeup刮海报_鬼母子.texture = null +func _check_if_flyer_shaven(_arg = false) -> void: + if ArchiveManager.get_global_value("c03_barber_shave_flyer"): + closeup刮海报_鬼母子.texture = null if _arg: SceneManager.pop_os_with_str("c03_s03_获得剪刀纸舌头") + + +func _on_laizi_exit(_arg = false) -> void: + if _arg: + # TODO + SceneManager.pop_debug_dialog_info("美术&音效", "剪辫子演出") diff --git a/scene/ground/scene/c03/s03_瞎子理发店.tscn b/scene/ground/scene/c03/s03_瞎子理发店.tscn index 159d2e2e..f30b33e3 100644 --- a/scene/ground/scene/c03/s03_瞎子理发店.tscn +++ b/scene/ground/scene/c03/s03_瞎子理发店.tscn @@ -64,11 +64,11 @@ packed_scene = ExtResource("8_xtr6o") [node name="Closeup癞子纸人" parent="Ground/DeployLayer" index="4" instance=ExtResource("5_d40x1")] unique_name_in_owner = true -position = Vector2(236, 11) +position = Vector2(343, 29) packed_scene = ExtResource("9_4imwu") [node name="癞子纸人" type="Sprite2D" parent="Ground/DeployLayer" index="5"] -position = Vector2(343, 48) +position = Vector2(343, 49) texture = ExtResource("9_bdtls") [node name="癞子纸人头套" type="Sprite2D" parent="Ground/DeployLayer/癞子纸人"] diff --git a/scene/ground/scene/c03/s04_李癞房间.tscn b/scene/ground/scene/c03/s04_李癞房间.tscn index cd2a756e..0280af29 100644 --- a/scene/ground/scene/c03/s04_李癞房间.tscn +++ b/scene/ground/scene/c03/s04_李癞房间.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=12 format=3 uid="uid://c7c88hg2cl1j7"] +[gd_scene load_steps=13 format=3 uid="uid://c7c88hg2cl1j7"] [ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_byh4s"] [ext_resource type="Script" uid="uid://byw2swgt783oa" path="res://scene/ground/scene/c03/s04_李癞房间.gd" id="2_vjibx"] @@ -10,6 +10,7 @@ [ext_resource type="PackedScene" uid="uid://n75766ui6udi" path="res://scene/ground/script/c03/s04_closeup整理麻将游戏.tscn" id="7_jmyby"] [ext_resource type="PackedScene" uid="uid://cua3uqy4btxqn" path="res://scene/ground/script/c03/s04_closeup麻将出千游戏.tscn" id="8_jmyby"] [ext_resource type="PackedScene" uid="uid://dsa6frlw6e6gg" path="res://scene/entity/pickable.tscn" id="9_m8bf2"] +[ext_resource type="PackedScene" uid="uid://t61o0vpm0e11" path="res://scene/ground/script/c03/s04_closeup李氏纸人.tscn" id="10_o2w5q"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_k01ve"] @@ -66,6 +67,13 @@ enabled = false position = Vector2(537, 55) prop_key = "prop_胖子的钥匙" +[node name="Closeup李氏纸人" parent="Ground/DeployLayer" index="6" instance=ExtResource("6_dbkw8")] +unique_name_in_owner = true +position = Vector2(373, 47) +packed_scene = ExtResource("10_o2w5q") +quit_closeup_on_cancel = false +enabled = false + [node name="MainPlayer" parent="Ground" index="5"] position = Vector2(63, 100) catty_light_energy = 0.5 diff --git a/scene/ground/script/c02/s06_event_2d疯子跑开.gd b/scene/ground/script/c02/s06_event_2d疯子跑开.gd new file mode 100644 index 00000000..eab82871 --- /dev/null +++ b/scene/ground/script/c02/s06_event_2d疯子跑开.gd @@ -0,0 +1,51 @@ +@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): + var ambush = $"Ambush疯子慌张跑开" + # 如果已经跑开过,直接显示纸人 + if ambush.played: + $"../左侧纸人".visible = true + else: + ambush.triggered.connect(_on_ambush_triggered) + + +func _on_ambush_triggered() -> void: + SceneManager.lock_player() + var pro_sprite = $"Pro疯子慌张跑开" + pro_sprite.play("疯子_慌张转身") + pro_sprite.position_updated.connect(_on_pro_sprite_position_updated) + await Util.wait(4.0) + EventManager.set_stage(event_name, 1) + SceneManager.unlock_player() + # $"../左侧纸人".visible = true + + +var paperman_x = 24 + + +func _on_pro_sprite_position_updated(g_position: Vector2) -> void: + if g_position.x <= paperman_x: + $"../左侧纸人".visible = true + + +func _on_pre_stage_updated(): + pass + + +func _on_stage_updated(): + pass diff --git a/scene/ground/script/c02/s06_event_2d疯子跑开.gd.uid b/scene/ground/script/c02/s06_event_2d疯子跑开.gd.uid new file mode 100644 index 00000000..d9918bb3 --- /dev/null +++ b/scene/ground/script/c02/s06_event_2d疯子跑开.gd.uid @@ -0,0 +1 @@ +uid://cu4h3b6w2duwe diff --git a/scene/ground/script/c03/s03_closeup癞子纸人.gd b/scene/ground/script/c03/s03_closeup癞子纸人.gd index 8a529b03..dadfc0f3 100644 --- a/scene/ground/script/c03/s03_closeup癞子纸人.gd +++ b/scene/ground/script/c03/s03_closeup癞子纸人.gd @@ -2,16 +2,70 @@ extends CanvasLayer @onready var bg = $BG as TextureRect +signal exit(success: bool) + func _ready() -> void: layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME - if SceneManager.has_prop("prop_剪刀"): - SceneManager.pop_center_notification("ui_center_notify_use_prop") + # 两张纸钱点击事件 + %"Draggable纸钱1".picked.connect(_on_paper_coin_picked, CONNECT_ONE_SHOT) + %"Draggable纸钱2".picked.connect(_on_paper_coin_picked, CONNECT_ONE_SHOT) + %"HoverBraid".interacted.connect(_on_braid_interacted, CONNECT_ONE_SHOT) + + _check_if_notify_to_use_prop() + # 如果用过剪刀,则直接展示后脑勺 + # 0:初始化 1:已使用剪刀 2:已剪下 + if EventManager.get_stage("c03_laizi_braid") > 0: + $"头".hide() + $"头受伤".hide() + $"后脑勺".show() + +func _on_paper_coin_picked(_node = null) -> void: + if GlobalFunctor.c03_get_paper_coin(): + await SceneManager.get_inspector().quit_and_hidden + _check_if_notify_to_use_prop() + +func _on_braid_interacted() -> void: + SceneManager.enable_prop_item("prop_剪下的辫子") + await SceneManager.get_inspector().quit_and_hidden + # 退出,播放剪辫子演出 + exit.emit(true) + + +func _check_if_notify_to_use_prop() -> void: + if EventManager.get_stage("c03_papercoin1") > 0 and EventManager.get_stage("c03_papercoin2") > 0: + if EventManager.get_stage("c03_laizi_braid") > 0: + return + elif SceneManager.has_prop("prop_剪刀"): + SceneManager.pop_center_notification("ui_center_notify_use_prop") + else: + SceneManager.pop_center_notification("ui_center_notify_lack_of_prop") + func _unhandled_input(event: InputEvent) -> void: if event.is_action_pressed("interact"): get_viewport().set_input_as_handled() - if SceneManager.get_current_prop() == "prop_剪刀": - pass - else: - SceneManager.get_prop_hud().on_toggle_invalid_prop() \ No newline at end of file + _try_interact() + +var using_scissors = false + +# 尝试使用剪刀进行互动 +func _try_interact() -> void: + # 纸钱还没拿完 + if EventManager.get_stage("c03_papercoin1") == 0 or EventManager.get_stage("c03_papercoin2") == 0: + return + if SceneManager.get_current_prop() != "prop_剪刀": + SceneManager.get_prop_hud().on_toggle_invalid_prop() + return + if using_scissors: + return + using_scissors = true + # $"头".hide() + # TODO + SceneManager.pop_debug_dialog_info("音效", "使用剪刀(惊悚)") + $"头".hide() + await Util.wait(1.5) + $"头受伤".hide() + $"后脑勺".show() + SceneManager.disable_prop_item("prop_剪刀") + EventManager.set_stage("c03_laizi_braid", 1) diff --git a/scene/ground/script/c03/s03_closeup癞子纸人.tscn b/scene/ground/script/c03/s03_closeup癞子纸人.tscn index 98377557..8ab5fc89 100644 --- a/scene/ground/script/c03/s03_closeup癞子纸人.tscn +++ b/scene/ground/script/c03/s03_closeup癞子纸人.tscn @@ -1,8 +1,18 @@ -[gd_scene load_steps=4 format=3 uid="uid://d320nw5yrmvjo"] +[gd_scene load_steps=14 format=3 uid="uid://d320nw5yrmvjo"] [ext_resource type="Script" uid="uid://de2smnt2my047" path="res://scene/ground/script/c03/s03_closeup癞子纸人.gd" id="1_6n6qt"] [ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/遮罩/inspect特写通用遮罩.png" id="2_uenj0"] -[ext_resource type="Texture2D" uid="uid://bv5vcrdqwtlm3" path="res://asset/art/scene/c03/s03_瞎子理发店/癞子纸人.png" id="2_xao0c"] +[ext_resource type="Texture2D" uid="uid://e88x3ihvhetd" path="res://asset/art/scene/c03/s03_瞎子理发店/癞子特写/背景.png" id="2_xao0c"] +[ext_resource type="Texture2D" uid="uid://cxlwpf82sqc8p" path="res://asset/art/scene/c03/s03_瞎子理发店/癞子特写/1辫子没剪开.png" id="3_abwb2"] +[ext_resource type="Texture2D" uid="uid://b7s25rgph0111" path="res://asset/art/scene/c03/s03_瞎子理发店/癞子特写/辫子散了.png" id="3_jijuh"] +[ext_resource type="Texture2D" uid="uid://c12xhretrdxs6" path="res://asset/art/scene/c03/s03_瞎子理发店/癞子特写/1大头.png" id="4_8yx5x"] +[ext_resource type="Texture2D" uid="uid://doqxrw48g45iy" path="res://asset/art/scene/c03/s03_瞎子理发店/癞子特写/伤口_头.png" id="4_c581m"] +[ext_resource type="PackedScene" uid="uid://bkk1rxx36ghrl" path="res://scene/entity/ux/hover_light_click_area.tscn" id="4_nc54a"] +[ext_resource type="PackedScene" uid="uid://bg7oictr1wgex" path="res://scene/little_game/general/draggable.tscn" id="4_uenj0"] +[ext_resource type="Texture2D" uid="uid://cqrc7v5lg2cey" path="res://asset/art/scene/c03/s03_瞎子理发店/癞子特写/l_辫子.png" id="5_jijuh"] +[ext_resource type="Texture2D" uid="uid://fspvmlydy3hu" path="res://asset/art/scene/c03/s03_瞎子理发店/癞子特写/纸钱2.png" id="5_kcw8x"] +[ext_resource type="Script" uid="uid://0wjaho6qkg6s" path="res://manager/event_manager/event_binder.gd" id="6_uenj0"] +[ext_resource type="Texture2D" uid="uid://vyuf0wekr1lq" path="res://asset/art/scene/c03/s03_瞎子理发店/癞子特写/纸钱1.png" id="7_kcw8x"] [node name="Closeup癞子纸人" type="CanvasLayer"] script = ExtResource("1_6n6qt") @@ -15,8 +25,122 @@ grow_horizontal = 2 grow_vertical = 2 mouse_filter = 0 texture = ExtResource("2_xao0c") +expand_mode = 1 +stretch_mode = 3 + +[node name="后脑勺_剪辫" type="TextureRect" parent="."] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("3_jijuh") +expand_mode = 1 +stretch_mode = 3 + +[node name="后脑勺" type="TextureRect" parent="."] +visible = false +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("3_abwb2") +expand_mode = 1 +stretch_mode = 3 + +[node name="HoverBraid" parent="后脑勺" instance=ExtResource("4_nc54a")] +unique_name_in_owner = true +position = Vector2(280, 181) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="后脑勺/HoverBraid"] +polygon = PackedVector2Array(22, -110.9, -10, -113.1, -10, -112, -15.6, -112, -21.6, -108, -24.7, -108, -36.7, -98, -38.2, -98, -44.2, -87, -45.9, -87, -46.9, -70, -48.4, -70, -46, -56.6, -46, -51.6, -38, -33.7, -38, -30.3, -21, -9, -20, -7, -20, -3.39999, -12.4, 7.5, -14, 17.8, -14, 25.1, -10, 90.1, -10, 92.8, -13, 129.9, -13, 132.8, 3, 133, 3.4, 132, 5.1, 132, 4, 110.9, 4, 104.1, 8.9, 30, 10.3, 30, 8, 13.7, 8, 10.4, 15, -1.5, 15, -3.10001, 19.7, -7, 21.1, -7, 35.1, -28, 36.4, -28, 45.4, -52, 47, -52, 47, -84.5, 43, -92.5, 43, -94.9, 35, -101.9, 35, -103.3, 22, -109.3) + +[node name="PointLight2D" type="PointLight2D" parent="后脑勺/HoverBraid"] +range_layer_max = 10 +texture = ExtResource("5_jijuh") + +[node name="EventBinder" type="Node" parent="后脑勺/HoverBraid"] +script = ExtResource("6_uenj0") +memo = "[hoverbraid] interacted 时: c03_laizi_braid=2:已剪下(greater)" +trigger_event = &"c03_laizi_braid" +trigger_mode = "interacted" +trigger_stage = 2 +metadata/_custom_type_script = "uid://0wjaho6qkg6s" + +[node name="EventBinder" type="Node" parent="后脑勺"] +script = ExtResource("6_uenj0") +memo = "c03_laizi_braid=[1:已使用剪刀] 时,显示: [后脑勺] +" +updater_event = &"c03_laizi_braid" +updater_mode = "shower" +updater_ease_duration = 0.0 +metadata/_custom_type_script = "uid://0wjaho6qkg6s" + +[node name="头受伤" type="TextureRect" parent="."] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("4_c581m") +expand_mode = 1 +stretch_mode = 3 + +[node name="头" type="TextureRect" parent="."] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("4_8yx5x") +expand_mode = 1 +stretch_mode = 3 + +[node name="Draggable纸钱2" parent="头" instance=ExtResource("4_uenj0")] +unique_name_in_owner = true +position = Vector2(237, 140) +act_as_button = true +texture = ExtResource("5_kcw8x") + +[node name="EventBinder" type="Node" parent="头/Draggable纸钱2"] +script = ExtResource("6_uenj0") +memo = "c03_papercoin2=[0] 时,显示: [纸钱2] +[纸钱2] picked 时: c03_papercoin2=1(greater)" +updater_event = &"c03_papercoin2" +updater_mode = "shower" +updater_ease_duration = 0.0 +updater_stages = Array[int]([0]) +trigger_event = &"c03_papercoin2" +trigger_mode = "picked" +metadata/_custom_type_script = "uid://0wjaho6qkg6s" + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="头/Draggable纸钱2"] +polygon = PackedVector2Array(13, -30, -9.5, -30, -19.5, -25, -22.1, -25, -30, -12.2, -30, 14.1, -25, 21.6, -25, 24.3, -12, 30, 13.7, 30, 21.6, 25, 24.2, 25, 30, 14.5, 30, -11, 26, -17.6, 26, -20, 13, -29) + +[node name="Draggable纸钱1" parent="头" instance=ExtResource("4_uenj0")] +unique_name_in_owner = true +position = Vector2(319, 139) +act_as_button = true +texture = ExtResource("7_kcw8x") + +[node name="EventBinder" type="Node" parent="头/Draggable纸钱1"] +script = ExtResource("6_uenj0") +memo = "c03_papercoin1=[0] 时,显示: [纸钱1] +[纸钱1] picked 时: c03_papercoin1=1(greater)" +updater_event = &"c03_papercoin1" +updater_mode = "shower" +updater_ease_duration = 0.0 +updater_stages = Array[int]([0]) +trigger_event = &"c03_papercoin1" +trigger_mode = "picked" +metadata/_custom_type_script = "uid://0wjaho6qkg6s" + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="头/Draggable纸钱1"] +polygon = PackedVector2Array(13, -30, -9.5, -30, -19.5, -25, -22.1, -25, -30, -12.2, -30, 14.1, -25, 21.6, -25, 24.3, -12, 30, 13.7, 30, 21.6, 25, 24.2, 25, 30, 14.5, 30, -11, 26, -17.6, 26, -20, 13, -29) [node name="遮罩" type="TextureRect" parent="."] +visible = false anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 diff --git a/scene/ground/script/c03/s03_刮海报_理发店.tscn b/scene/ground/script/c03/s03_刮海报_理发店.tscn index 39b8e386..a95c211c 100644 --- a/scene/ground/script/c03/s03_刮海报_理发店.tscn +++ b/scene/ground/script/c03/s03_刮海报_理发店.tscn @@ -50,7 +50,7 @@ data = { [sub_resource type="ImageTexture" id="ImageTexture_puk8y"] image = SubResource("Image_go12c") -[node name="刮海报_理发店" type="CanvasLayer"] +[node name="c03_barber_shave_flyer" type="CanvasLayer"] layer = 5 script = ExtResource("1_pdoaa") exit_on_shaven_fulfilled = false @@ -132,36 +132,8 @@ centered = false [node name="Props" type="Node2D" parent="鬼母子游戏/倒塌"] visible = false -[node name="剪刀" parent="鬼母子游戏/倒塌/Props" instance=ExtResource("15_3uuyc")] -position = Vector2(364, 248) - -[node name="Sprite2D" type="Sprite2D" parent="鬼母子游戏/倒塌/Props/剪刀"] -position = Vector2(-55, -19) -texture = ExtResource("16_go12c") -centered = false - -[node name="PointLight2D" type="PointLight2D" parent="鬼母子游戏/倒塌/Props/剪刀"] -position = Vector2(-1, 1) -range_layer_max = 10 -texture = ExtResource("16_ikyli") - -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="鬼母子游戏/倒塌/Props/剪刀"] -visible = false -polygon = PackedVector2Array(4, -25, -10, -25, -14, -13.4, -14, -8.4, -37.5, 1, -41.6, 1, -50.6, 7, -53, 7, -56, 11, -57.2, 11, -58.3, 13.2, -55, 17.6, -55, 20.3, -38.7, 18, -34.7, 18, -8, 8.4, -5.7, 8, 7.3, 18, 35.6, 18, 44.6, 12, 47.1, 12, 54.1, 1, 56.5, 1, 54, -10.4, 54, -12.8, 43, -23.8, 43, -25, 29.4, -25, 27, -21.8, 1.4, -18, 4, -23.6) - -[node name="EventBinder" type="Node" parent="鬼母子游戏/倒塌/Props/剪刀"] -script = ExtResource("17_dhl8m") -memo = "c03_hariti_scissor=[0] 时,显示: [剪刀] -[剪刀] interacted 时: c03_hariti_scissor=1(greater)" -updater_event = &"c03_hariti_scissor" -updater_mode = "shower" -updater_ease_duration = 0.0 -updater_stages = Array[int]([0]) -trigger_event = &"c03_hariti_scissor" -trigger_mode = "interacted" -metadata/_custom_type_script = "uid://0wjaho6qkg6s" - [node name="纸舌头" parent="鬼母子游戏/倒塌/Props" instance=ExtResource("15_3uuyc")] +unique_name_in_owner = true position = Vector2(255, 248) [node name="Sprite2D" type="Sprite2D" parent="鬼母子游戏/倒塌/Props/纸舌头"] @@ -191,6 +163,36 @@ trigger_event = &"c03_hariti_tongue" trigger_mode = "interacted" metadata/_custom_type_script = "uid://0wjaho6qkg6s" +[node name="剪刀" parent="鬼母子游戏/倒塌/Props" instance=ExtResource("15_3uuyc")] +unique_name_in_owner = true +position = Vector2(364, 248) + +[node name="Sprite2D" type="Sprite2D" parent="鬼母子游戏/倒塌/Props/剪刀"] +position = Vector2(-55, -19) +texture = ExtResource("16_go12c") +centered = false + +[node name="PointLight2D" type="PointLight2D" parent="鬼母子游戏/倒塌/Props/剪刀"] +position = Vector2(-1, 1) +range_layer_max = 10 +texture = ExtResource("16_ikyli") + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="鬼母子游戏/倒塌/Props/剪刀"] +visible = false +polygon = PackedVector2Array(4, -25, -10, -25, -14, -13.4, -14, -8.4, -37.5, 1, -41.6, 1, -50.6, 7, -53, 7, -56, 11, -57.2, 11, -58.3, 13.2, -55, 17.6, -55, 20.3, -38.7, 18, -34.7, 18, -8, 8.4, -5.7, 8, 7.3, 18, 35.6, 18, 44.6, 12, 47.1, 12, 54.1, 1, 56.5, 1, 54, -10.4, 54, -12.8, 43, -23.8, 43, -25, 29.4, -25, 27, -21.8, 1.4, -18, 4, -23.6) + +[node name="EventBinder" type="Node" parent="鬼母子游戏/倒塌/Props/剪刀"] +script = ExtResource("17_dhl8m") +memo = "c03_hariti_scissor=[0] 时,显示: [剪刀] +[剪刀] interacted 时: c03_hariti_scissor=1(greater)" +updater_event = &"c03_hariti_scissor" +updater_mode = "shower" +updater_ease_duration = 0.0 +updater_stages = Array[int]([0]) +trigger_event = &"c03_hariti_scissor" +trigger_mode = "interacted" +metadata/_custom_type_script = "uid://0wjaho6qkg6s" + [node name="遮罩" type="TextureRect" parent="."] anchors_preset = 15 anchor_right = 1.0 diff --git a/scene/ground/script/c03/s04_closeup李氏纸人.gd b/scene/ground/script/c03/s04_closeup李氏纸人.gd new file mode 100644 index 00000000..f475d570 --- /dev/null +++ b/scene/ground/script/c03/s04_closeup李氏纸人.gd @@ -0,0 +1,9 @@ +extends CanvasLayer + +@warning_ignore("unused_signal") +signal exit(arg) + + +func _ready() -> void: + layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME + %"Draggable纸钱3".picked.connect(GlobalFunctor.c03_get_paper_coin, CONNECT_ONE_SHOT) diff --git a/scene/ground/script/c03/s04_closeup李氏纸人.gd.uid b/scene/ground/script/c03/s04_closeup李氏纸人.gd.uid new file mode 100644 index 00000000..7ca354f0 --- /dev/null +++ b/scene/ground/script/c03/s04_closeup李氏纸人.gd.uid @@ -0,0 +1 @@ +uid://dvjh42hafpmg3 diff --git a/scene/ground/script/c03/s04_closeup李氏纸人.tscn b/scene/ground/script/c03/s04_closeup李氏纸人.tscn new file mode 100644 index 00000000..245c3115 --- /dev/null +++ b/scene/ground/script/c03/s04_closeup李氏纸人.tscn @@ -0,0 +1,83 @@ +[gd_scene load_steps=9 format=3 uid="uid://t61o0vpm0e11"] + +[ext_resource type="Script" uid="uid://dvjh42hafpmg3" path="res://scene/ground/script/c03/s04_closeup李氏纸人.gd" id="1_nmxob"] +[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/遮罩/inspect特写通用遮罩.png" id="2_3rwht"] +[ext_resource type="PackedScene" uid="uid://bg7oictr1wgex" path="res://scene/little_game/general/draggable.tscn" id="2_ov1mc"] +[ext_resource type="Texture2D" uid="uid://fspvmlydy3hu" path="res://asset/art/scene/c03/s03_瞎子理发店/癞子特写/纸钱2.png" id="3_on24v"] +[ext_resource type="PackedScene" uid="uid://dmysq4sxx8iqh" path="res://scene/entity/ux/content_inspector.tscn" id="3_ov1mc"] +[ext_resource type="Script" uid="uid://0wjaho6qkg6s" path="res://manager/event_manager/event_binder.gd" id="4_qqxug"] +[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/遮罩/inspect背景遮罩.png" id="5_qqxug"] +[ext_resource type="Script" uid="uid://dpocj5al0rvai" path="res://ui/text_helper.gd" id="6_ncmgt"] + +[node name="Closeup李氏纸人" type="CanvasLayer"] +script = ExtResource("1_nmxob") + +[node name="BG" type="TextureRect" parent="."] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 0 + +[node name="Draggable纸钱3" parent="." instance=ExtResource("2_ov1mc")] +unique_name_in_owner = true +position = Vector2(237, 140) +act_as_button = true +texture = ExtResource("3_on24v") + +[node name="EventBinder" type="Node" parent="Draggable纸钱3"] +script = ExtResource("4_qqxug") +memo = "c03_papercoin3=[0] 时,显示: [纸钱3] +[纸钱3] picked 时: c03_papercoin3=1(greater)" +updater_event = &"c03_papercoin3" +updater_mode = "shower" +updater_ease_duration = 0.0 +updater_stages = Array[int]([0]) +trigger_event = &"c03_papercoin3" +trigger_mode = "picked" +metadata/_custom_type_script = "uid://0wjaho6qkg6s" + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Draggable纸钱3"] +polygon = PackedVector2Array(13, -30, -9.5, -30, -19.5, -25, -22.1, -25, -30, -12.2, -30, 14.1, -25, 21.6, -25, 24.3, -12, 30, 13.7, 30, 21.6, 25, 24.2, 25, 30, 14.5, 30, -11, 26, -17.6, 26, -20, 13, -29) + +[node name="遮罩" type="TextureRect" parent="."] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = ExtResource("2_3rwht") + +[node name="ContentInspector" parent="." instance=ExtResource("3_ov1mc")] +visible = false +mouse_filter = 2 + +[node name="遮罩" type="TextureRect" parent="ContentInspector"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = ExtResource("5_qqxug") + +[node name="Label" type="Label" parent="ContentInspector/遮罩"] +custom_minimum_size = Vector2(180, 0) +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -60.0 +offset_top = -15.5 +offset_right = 60.0 +offset_bottom = 15.5 +grow_horizontal = 2 +grow_vertical = 2 +vertical_alignment = 1 +autowrap_mode = 3 +script = ExtResource("6_ncmgt") diff --git a/scene/ground/script/c03/鬼母子游戏.gd b/scene/ground/script/c03/鬼母子游戏.gd index 9ec5f385..6a17d045 100644 --- a/scene/ground/script/c03/鬼母子游戏.gd +++ b/scene/ground/script/c03/鬼母子游戏.gd @@ -26,11 +26,11 @@ func _ready() -> void: $"倒塌/Props/纸舌头".interacted.connect(SceneManager.enable_prop_item.bind("prop_纸舌头")) $"../刮刮乐".visible = true - var shaven = ArchiveManager.get_global_value("刮海报_理发店") + var shaven = ArchiveManager.get_global_value("c03_barber_shave_flyer") states = ArchiveManager.get_global_value("c03_s03_hariti_states", []) _setup_state() if _check_success(): - get_node("../刮刮乐").queue_free() + # get_node("../刮刮乐").queue_free() $"倒塌".visible = true $"倒塌".frame = 3 $"倒塌/Props".visible = true diff --git a/scene/little_game/general/draggable.gd b/scene/little_game/general/draggable.gd index 5adc63cf..796dd616 100644 --- a/scene/little_game/general/draggable.gd +++ b/scene/little_game/general/draggable.gd @@ -105,8 +105,10 @@ func _input(event: InputEvent) -> void: if event.button_index == MOUSE_BUTTON_LEFT and event.pressed: # Trigger the pick action if touching and not holding: + get_viewport().set_input_as_handled() _try_pick() elif holding: + get_viewport().set_input_as_handled() _drop() elif holding and event is InputEventMouseMotion: _update_pos_to_mouse() diff --git a/scene/ux/prop_inspector.gd b/scene/ux/prop_inspector.gd index 69b3ee6e..91f3a989 100644 --- a/scene/ux/prop_inspector.gd +++ b/scene/ux/prop_inspector.gd @@ -12,6 +12,8 @@ enum { # must be connected to signal quit_and_hidden + +@onready var mouse_mask = %MouseMask as Control @onready var notes_bg = %NotesBG as TextureRect @onready var prop_bg = %PropBG as TextureRect @onready var origin_texture = %OriginPropTexture as TextureRect @@ -122,8 +124,10 @@ var locking = false: if val != locking: locking = val if val: + mouse_mask.mouse_filter = Control.MOUSE_FILTER_STOP SceneManager.lock_player() else: + mouse_mask.mouse_filter = Control.MOUSE_FILTER_IGNORE SceneManager.unlock_player() _lock_mutex.unlock() diff --git a/scene/ux/prop_inspector.tscn b/scene/ux/prop_inspector.tscn index d10fb871..73a611b5 100644 --- a/scene/ux/prop_inspector.tscn +++ b/scene/ux/prop_inspector.tscn @@ -10,6 +10,17 @@ process_mode = 3 layer = 21 script = ExtResource("1_2wpwe") +[node name="MouseMask" type="Control" parent="."] +unique_name_in_owner = true +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 4 +mouse_filter = 2 + [node name="PropBG" type="TextureRect" parent="."] unique_name_in_owner = true visible = false