部署c01与c02场景草稿;完善门的开锁状态转换;
This commit is contained in:
parent
b2fe64c433
commit
4bf519aa1d
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ddcburr57lb75"
|
||||
path="res://.godot/imported/ux_衔接阴影.png-f9d8dfbf375ec0d6a0c01c639e85132c.ctex"
|
||||
path="res://.godot/imported/bg_衔接阴影.png-fd65f8c37c929ec1095b02c4814d8e4c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/art/scene/c02/s12_1014诡异版/ux_衔接阴影.png"
|
||||
dest_files=["res://.godot/imported/ux_衔接阴影.png-f9d8dfbf375ec0d6a0c01c639e85132c.ctex"]
|
||||
source_file="res://asset/art/scene/c02/s12_1014诡异版/bg_衔接阴影.png"
|
||||
dest_files=["res://.godot/imported/bg_衔接阴影.png-fd65f8c37c929ec1095b02c4814d8e4c.ctex"]
|
||||
|
||||
[params]
|
||||
|
@ -42,6 +42,7 @@ input_拼凑信件,按 E 旋转,方向键移动,,,,
|
||||
ui_获得,获得,,,,
|
||||
ui_退出,退出,Exit,,,
|
||||
ui_阅读,阅读,Read,,,
|
||||
ui_检阅,检阅,,,,
|
||||
ui_收起,收起,Hold,,,
|
||||
ui_夜行船1,百岁光阴一梦蝶。,,,,
|
||||
ui_夜行船2,重回⾸往事堪嗟。,,,,
|
||||
@ -76,14 +77,14 @@ c01_倾斜的洋相片,洋相片,,,,
|
||||
c01_摆正的洋相片,是院长的女儿吗,,,,
|
||||
c01_s06_院长房间,这是院长的房间,,,,
|
||||
c01_s06_小朋友房间,这是其他小朋友的房间,,,,
|
||||
c02_绳子剪刀,绳子和剪刀,,,,
|
||||
c02_寻人启事,"似乎是一张寻人启事
|
||||
脸的部分被撕掉了,看不清",,,,
|
||||
c02_玩具缺脑袋,这个玩具缺了个脑袋,,,,
|
||||
c02_卫生宣传画,几张卫生宣传画,,,,
|
||||
c02_老鼠洞,"一个老鼠洞
|
||||
在这种楼里挺常见的",,,,
|
||||
c02_十几年前的报纸,十几年前的报纸,,,,
|
||||
c02_绳子剪刀,绳子和剪刀,,,,
|
||||
c02_玩具缺脑袋,这个玩具缺了个脑袋,,,,
|
||||
c02_又是寻人启示,又是那张寻人启示,,,,
|
||||
c02_墙上的海报被撕掉了,墙上的海报被撕掉了,,,,
|
||||
c02_井臭,井里有一股臭味,,,,
|
||||
|
|
@ -27,8 +27,10 @@
|
||||
获得 [ID:ui_获得]
|
||||
退出 [ID:ui_退出]
|
||||
阅读 [ID:ui_阅读]
|
||||
检阅 [ID:ui_检阅]
|
||||
收起 [ID:ui_收起]
|
||||
|
||||
|
||||
百岁光阴一梦蝶。 [ID:ui_夜行船1]
|
||||
重回⾸往事堪嗟。 [ID:ui_夜行船2]
|
||||
今⽇春来。明朝花谢。 [ID:ui_夜行船3]
|
||||
@ -76,12 +78,15 @@
|
||||
这是其他小朋友的房间 [ID:c01_s06_小朋友房间]
|
||||
|
||||
# c02
|
||||
绳子和剪刀 [ID:c02_绳子剪刀]
|
||||
# c02-s01 街道
|
||||
似乎是一张寻人启事\n脸的部分被撕掉了,看不清 [ID:c02_寻人启事]
|
||||
这个玩具缺了个脑袋 [ID:c02_玩具缺脑袋]
|
||||
# c02-s02 走道
|
||||
几张卫生宣传画 [ID:c02_卫生宣传画]
|
||||
一个老鼠洞\n在这种楼里挺常见的 [ID:c02_老鼠洞]
|
||||
十几年前的报纸 [ID:c02_十几年前的报纸]
|
||||
|
||||
绳子和剪刀 [ID:c02_绳子剪刀]
|
||||
这个玩具缺了个脑袋 [ID:c02_玩具缺脑袋]
|
||||
又是那张寻人启示 [ID:c02_又是寻人启示]
|
||||
墙上的海报被撕掉了 [ID:c02_墙上的海报被撕掉了]
|
||||
井里有一股臭味 [ID:c02_井臭]
|
||||
|
@ -108,7 +108,7 @@
|
||||
[ext_resource type="Texture2D" uid="uid://bjvungu3tb155" path="res://asset/art/scene/c02/s12_1014诡异版/fg_1014前景.png" id="106_2h1ja"]
|
||||
[ext_resource type="Texture2D" uid="uid://dcy3tf4td481s" path="res://asset/art/scene/c02/s12_1014诡异版/ux_恐怖幻境纸条1.png" id="107_lwdop"]
|
||||
[ext_resource type="Texture2D" uid="uid://ctswav7aw2vvb" path="res://asset/art/scene/c02/s12_1014诡异版/ux_恐怖幻境纸条2.png" id="108_1bjaj"]
|
||||
[ext_resource type="Texture2D" uid="uid://ddcburr57lb75" path="res://asset/art/scene/c02/s12_1014诡异版/ux_衔接阴影.png" id="109_xkscu"]
|
||||
[ext_resource type="Texture2D" uid="uid://ddcburr57lb75" path="res://asset/art/scene/c02/s12_1014诡异版/bg_衔接阴影.png" id="109_xkscu"]
|
||||
[ext_resource type="Texture2D" uid="uid://da3v7s68728af" path="res://asset/art/scene/c02/s13_院子诡异版/bg_院子1楼(黑).png" id="110_1h1mj"]
|
||||
[ext_resource type="Texture2D" uid="uid://bgflt8ivx1fmp" path="res://asset/art/scene/c02/s13_院子诡异版/e_1014门锁.png" id="111_tgctv"]
|
||||
[ext_resource type="Texture2D" uid="uid://dec0rudexctcs" path="res://asset/art/scene/c02/s13_院子诡异版/e_掉着小猫的绳子.png" id="112_lw5wp"]
|
||||
|
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=10 format=3 uid="uid://73jm5qjy52vq"]
|
||||
[gd_scene load_steps=10 format=3 uid="uid://cb4s8y1y600og"]
|
||||
|
||||
[ext_resource type="Script" path="res://scene/dialog/balloon.gd" id="1_36de5"]
|
||||
[ext_resource type="PackedScene" uid="uid://ckvgyvclnwggo" path="res://addons/dialogue_manager/dialogue_label.tscn" id="2_a8ve6"]
|
||||
|
@ -64,6 +64,11 @@ var played: bool:
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
# setup default value
|
||||
ground_archive = ArchiveManager.archive.ground_archive()
|
||||
played = ground_archive.get_value(name, "played", false)
|
||||
played_time = 0.0
|
||||
sign_mark.enabled = enabled
|
||||
_check_sign_display()
|
||||
if Engine.is_editor_hint():
|
||||
var animation_player = _get_animation_player()
|
||||
@ -73,23 +78,20 @@ func _ready() -> void:
|
||||
return
|
||||
if played:
|
||||
if GlobalConfig.DEBUG:
|
||||
print("Ambush has played, name=", name)
|
||||
print("Ambush has played, name=", name, " one_shot=", one_shot)
|
||||
if one_shot:
|
||||
return
|
||||
if on_first_enter_tree:
|
||||
_entered(null)
|
||||
sign_mark.interacted.connect(_interacted)
|
||||
area.body_entered.connect(_entered)
|
||||
area.area_entered.connect(_area_entered)
|
||||
sign_mark.enabled = enabled
|
||||
# setup default value
|
||||
ground_archive = ArchiveManager.archive.ground_archive()
|
||||
played = ground_archive.get_value(name, "played", false)
|
||||
played_time = 0.0
|
||||
|
||||
|
||||
func _check_sign_display():
|
||||
sign_mark.display_sign = trigger_mode == "interact" and (not one_shot or not played)
|
||||
|
||||
if one_shot and played:
|
||||
sign_mark.enabled = false
|
||||
|
||||
func _get_animation_player() -> AnimationPlayer:
|
||||
var node = get_parent()
|
||||
|
@ -28,7 +28,8 @@ var content_key: String = ""
|
||||
@onready var content_label = %ContentLabel as Label
|
||||
@onready var tip_label = %TipLabel as Label
|
||||
|
||||
var tip_cover = "Q: " + tr("ui_退出") + " " + "E: " + tr("ui_阅读")
|
||||
var tip_cover_hide_notes = "Q: " + tr("ui_退出") + " " + "E: " + tr("ui_阅读")
|
||||
var tip_cover_without_notes = "Q: " + tr("ui_退出") + " " + "E: " + tr("ui_检阅")
|
||||
var tip_notes = "Q: " + tr("ui_退出") + " " + "E: " + tr("ui_收起")
|
||||
|
||||
static var content_dialogue = (
|
||||
@ -43,7 +44,7 @@ func _ready() -> void:
|
||||
$InspectLayer.layer = GlobalConfig.CANVAS_LAYER_PROP_INSPECTOR
|
||||
container.modulate.a = 0.0
|
||||
content_label.text = _get_tr_content()
|
||||
tip_label.text = tip_cover
|
||||
tip_label.text = tip_cover_hide_notes
|
||||
cover_rect.texture = texture_cover
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
@ -79,7 +80,10 @@ func _on_interacted() -> void:
|
||||
sign_mark.display_sign = false
|
||||
SceneManager.freeze_player(0.0, PlayerAnimationConfig.ACTION_LOOKUP_WALL)
|
||||
cover_rect.texture = texture_cover
|
||||
tip_label.text = tip_cover
|
||||
if content_key == "":
|
||||
tip_label.text = tip_cover_without_notes
|
||||
else:
|
||||
tip_label.text = tip_cover_hide_notes
|
||||
_blink_label(true)
|
||||
start_inspecting.emit()
|
||||
elif status == STATUS_INSPECTING_COVER:
|
||||
@ -90,7 +94,10 @@ func _on_interacted() -> void:
|
||||
elif status == STATUS_INSPECTING_NOTES:
|
||||
sfx.play()
|
||||
status = STATUS_INSPECTING_COVER
|
||||
tip_label.text = tip_cover
|
||||
if content_key == "":
|
||||
tip_label.text = tip_cover_without_notes
|
||||
else:
|
||||
tip_label.text = tip_cover_hide_notes
|
||||
create_tween().tween_property(container, "modulate:a", 0.0, 0.15)
|
||||
|
||||
|
||||
|
@ -21,13 +21,13 @@ curve = SubResource("Curve_sbmii")
|
||||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_44bc2"]
|
||||
particle_flag_disable_z = true
|
||||
emission_shape = 3
|
||||
emission_box_extents = Vector3(-5, 100, 1)
|
||||
direction = Vector3(-50, -2, 0)
|
||||
spread = 35.0
|
||||
initial_velocity_min = 5.0
|
||||
initial_velocity_max = 10.0
|
||||
emission_box_extents = Vector3(-100, 200, 1)
|
||||
direction = Vector3(-100, 0, 0)
|
||||
spread = 10.0
|
||||
initial_velocity_min = 10.0
|
||||
initial_velocity_max = 20.0
|
||||
angular_velocity_min = -10.0
|
||||
angular_velocity_max = 20.0
|
||||
angular_velocity_max = 9.99998
|
||||
angular_velocity_curve = SubResource("CurveTexture_uoprq")
|
||||
gravity = Vector3(0, 0, 0)
|
||||
scale_min = 0.1
|
||||
@ -112,9 +112,10 @@ color_ramp = SubResource("GradientTexture1D_5cty7")
|
||||
amount = 150
|
||||
process_material = SubResource("ParticleProcessMaterial_44bc2")
|
||||
texture = ExtResource("1_lv5jb")
|
||||
lifetime = 100.0
|
||||
preprocess = 50.0
|
||||
visibility_rect = Rect2(0, -130, -1500, 260)
|
||||
lifetime = 200.0
|
||||
preprocess = 100.0
|
||||
speed_scale = 2.0
|
||||
visibility_rect = Rect2(0, -130, -5000, 260)
|
||||
trail_sections = 16
|
||||
metadata/_edit_vertical_guides_ = [-721.0]
|
||||
|
||||
@ -122,18 +123,19 @@ metadata/_edit_vertical_guides_ = [-721.0]
|
||||
amount = 200
|
||||
process_material = SubResource("ParticleProcessMaterial_3xiox")
|
||||
texture = ExtResource("2_wgqpb")
|
||||
lifetime = 100.0
|
||||
preprocess = 51.0
|
||||
speed_scale = 1.2
|
||||
visibility_rect = Rect2(0, -130, -1500, 260)
|
||||
lifetime = 200.0
|
||||
preprocess = 100.0
|
||||
speed_scale = 2.0
|
||||
visibility_rect = Rect2(0, -130, -5000, 260)
|
||||
trail_sections = 16
|
||||
|
||||
[node name="black" type="GPUParticles2D" parent="."]
|
||||
amount = 180
|
||||
process_material = SubResource("ParticleProcessMaterial_wa8gc")
|
||||
texture = ExtResource("3_abc1v")
|
||||
lifetime = 100.0
|
||||
preprocess = 52.0
|
||||
visibility_rect = Rect2(0, -130, -1500, 260)
|
||||
lifetime = 200.0
|
||||
preprocess = 100.0
|
||||
speed_scale = 2.0
|
||||
visibility_rect = Rect2(0, -130, -5000, 260)
|
||||
trail_enabled = true
|
||||
trail_sections = 16
|
||||
|
@ -1,10 +1,11 @@
|
||||
@tool
|
||||
class_name Portal2D extends Sprite2D
|
||||
|
||||
@export_multiline var debug_note: String = ""
|
||||
@export var enabled := true:
|
||||
set(val):
|
||||
enabled = val
|
||||
_check_sign_mark()
|
||||
_check_sign_mark_and_texture()
|
||||
@export var immediately := true
|
||||
@export_enum("left", "right", "1", "2", "3", "4", "5", "6", "7", "8", "9") var portal_name := "left":
|
||||
set(value):
|
||||
@ -18,58 +19,125 @@ class_name Portal2D extends Sprite2D
|
||||
var target_portal := "none":
|
||||
set(value):
|
||||
target_portal = value
|
||||
_check_sign_mark()
|
||||
_check_sign_mark_and_texture()
|
||||
@export_enum("default", "locked", "opened") var status := "default":
|
||||
set(value):
|
||||
status = value
|
||||
# 只在编辑器模式下检查
|
||||
if is_node_ready() and Engine.is_editor_hint():
|
||||
_check_sign_mark_and_texture()
|
||||
@export var default_texture: Texture2D
|
||||
@export var opened_texture: Texture2D
|
||||
@export var opened := false:
|
||||
set(new_val):
|
||||
opened = new_val
|
||||
_checkout_texture()
|
||||
@export var default_sign_texture: Texture2D
|
||||
@export var opened_sign_texture: Texture2D
|
||||
@export var matched_sign_texture: Texture2D
|
||||
@export var closed_sign_texture: Texture2D
|
||||
var prop_key := ""
|
||||
@export var disable_key_after_used := true
|
||||
|
||||
@onready var sfx = %Sfx as Sfx
|
||||
# 穿过通道的音效
|
||||
@onready var sfx_default = %SfxDefault as Sfx
|
||||
# 开锁的音效
|
||||
@onready var sfx_open = %SfxOpen as Sfx
|
||||
# 进门的音效
|
||||
@onready var sfx_enter = %SfxEnter as Sfx
|
||||
# 门被锁定,无法打开的音效
|
||||
@onready var sfx_locked = %SfxLocked as Sfx
|
||||
@onready var sign_mark = %Sign as Sign
|
||||
@onready var area2d = %Area2D as Area2D
|
||||
|
||||
var activated := false
|
||||
var action_times := 0
|
||||
|
||||
static var item_config_res = preload("res://asset/dialogue/item_description.dialogue")
|
||||
var items: PackedStringArray
|
||||
|
||||
var ground_archive: GroundArchive
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
name = "portal_" + portal_name
|
||||
_checkout_texture()
|
||||
_check_sign_mark()
|
||||
if Engine.is_editor_hint():
|
||||
_check_sign_mark_and_texture()
|
||||
_reload_items()
|
||||
return
|
||||
ground_archive = ArchiveManager.archive.ground_archive()
|
||||
status = ground_archive.get_value(name, "status", status)
|
||||
if GlobalConfig.DEBUG:
|
||||
print("Portal read status [", name, "] status=", status)
|
||||
_check_sign_mark_and_texture()
|
||||
area2d.body_entered.connect(_reset)
|
||||
area2d.body_exited.connect(_on_cancel)
|
||||
sign_mark.interacted.connect(_on_interacted)
|
||||
sign_mark.cancel.connect(_on_cancel)
|
||||
# if GlobalConfig.DEBUG:
|
||||
# var label = Label.new()
|
||||
# label.text = portal_name
|
||||
# label.name = "Label"
|
||||
# add_child(label)
|
||||
|
||||
func _checkout_texture():
|
||||
if opened and opened_texture:
|
||||
texture = opened_texture
|
||||
else:
|
||||
texture = default_texture
|
||||
|
||||
func _check_sign_mark():
|
||||
func _reload_items() -> void:
|
||||
items.clear()
|
||||
var id = item_config_res.titles["PropItems"]
|
||||
var current_line = item_config_res.lines[id]
|
||||
while current_line:
|
||||
if current_line.has("translation_key"):
|
||||
items.append(current_line.translation_key)
|
||||
if not current_line.has("next_id") or current_line.next_id == "end":
|
||||
break
|
||||
current_line = item_config_res.lines[current_line.next_id]
|
||||
notify_property_list_changed()
|
||||
|
||||
|
||||
func _check_sign_mark_and_texture():
|
||||
if not is_node_ready():
|
||||
return
|
||||
if status == "opened" and opened_texture:
|
||||
texture = opened_texture
|
||||
elif default_texture:
|
||||
texture = default_texture
|
||||
match status:
|
||||
"locked":
|
||||
sign_mark.sprite2d.texture = closed_sign_texture
|
||||
"opened":
|
||||
sign_mark.sprite2d.texture = opened_sign_texture
|
||||
"default":
|
||||
sign_mark.sprite2d.texture = default_sign_texture
|
||||
if target_portal == "none" or not enabled:
|
||||
sign_mark.enabled = false
|
||||
else:
|
||||
sign_mark.enabled = true
|
||||
|
||||
|
||||
var interact_mutex = Mutex.new()
|
||||
|
||||
|
||||
func _on_interacted() -> void:
|
||||
if target_portal == "none":
|
||||
if target_portal == "none" or not enabled:
|
||||
return
|
||||
interact_mutex.lock()
|
||||
if status == "locked":
|
||||
# 检查是否有钥匙,尝试打开
|
||||
var key = SceneManager.get_current_prop(false)
|
||||
if prop_key and key == prop_key:
|
||||
sfx_open.global_play()
|
||||
status = "opened"
|
||||
ground_archive.set_pair(name, "status", status)
|
||||
if disable_key_after_used:
|
||||
SceneManager.disable_prop_item(key)
|
||||
else:
|
||||
sfx_locked.global_play()
|
||||
sign_mark.invalid_shake()
|
||||
_check_sign_mark_and_texture()
|
||||
interact_mutex.unlock()
|
||||
# 开锁尝试后,哪怕开锁成功,也需要下次操作再进入,而不是立即传送
|
||||
return
|
||||
# 传送,queue free 导致 sfx 无法播放,使用全局声源
|
||||
sfx.global_play()
|
||||
if status == "default":
|
||||
sfx_default.global_play()
|
||||
elif status == "opened":
|
||||
sfx_enter.global_play()
|
||||
else:
|
||||
sfx_locked.global_play()
|
||||
interact_mutex.unlock()
|
||||
return
|
||||
interact_mutex.unlock()
|
||||
if GlobalConfig.DEBUG:
|
||||
print("传送前往", target_scene, target_portal, " immediately=", immediately)
|
||||
var ground_loader = SceneManager.get_ground_loader() as GroundLoader
|
||||
@ -79,12 +147,34 @@ func _on_interacted() -> void:
|
||||
|
||||
func _on_cancel(_body = null):
|
||||
activated = false
|
||||
# disconnect signal
|
||||
var prop_hud = SceneManager.get_prop_hud() as PropHud
|
||||
if prop_hud and prop_hud.current_item_changed.is_connected(_set_sign_texture_to_prop):
|
||||
prop_hud.current_item_changed.disconnect(_set_sign_texture_to_prop)
|
||||
|
||||
|
||||
func _reset(_body):
|
||||
_check_sign_mark_and_texture()
|
||||
activated = true
|
||||
if status == "locked":
|
||||
var key = SceneManager.get_current_prop(false)
|
||||
if key:
|
||||
_set_sign_texture_to_prop(key)
|
||||
var prop_hud = SceneManager.get_prop_hud() as PropHud
|
||||
if not prop_hud.current_item_changed.is_connected(_set_sign_texture_to_prop):
|
||||
prop_hud.current_item_changed.connect(_set_sign_texture_to_prop)
|
||||
|
||||
|
||||
# 根据当前 prop,调整 sign 所显示的 texture
|
||||
func _set_sign_texture_to_prop(key):
|
||||
if not prop_key or prop_key == key:
|
||||
sign_mark.sprite2d.texture = matched_sign_texture
|
||||
else:
|
||||
sign_mark.sprite2d.texture = closed_sign_texture
|
||||
|
||||
|
||||
# 暂时不启用自动传送
|
||||
# var action_times := 0
|
||||
# func _input(event: InputEvent) -> void:
|
||||
# # 长按自动传送
|
||||
# if activated:
|
||||
@ -108,3 +198,27 @@ func _reset(_body):
|
||||
# action_times = 0
|
||||
# %Sfx.play()
|
||||
# _on_interacted()
|
||||
|
||||
|
||||
func _get_property_list() -> Array[Dictionary]:
|
||||
return [
|
||||
{
|
||||
"name": "prop_key",
|
||||
"type": TYPE_STRING,
|
||||
"hint": PROPERTY_HINT_ENUM_SUGGESTION,
|
||||
"hint_string": ",".join(items),
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
func _get(property: StringName) -> Variant:
|
||||
if property == "prop_key":
|
||||
return prop_key
|
||||
return null
|
||||
|
||||
|
||||
func _set(property: StringName, value: Variant) -> bool:
|
||||
if property == "prop_key":
|
||||
prop_key = value
|
||||
return true
|
||||
return false
|
||||
|
@ -1,10 +1,30 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://61pis75a8fdq"]
|
||||
[gd_scene load_steps=15 format=3 uid="uid://61pis75a8fdq"]
|
||||
|
||||
[ext_resource type="Script" path="res://scene/entity/portal.gd" id="1_jyh6v"]
|
||||
[ext_resource type="Texture2D" uid="uid://bc4lpa8aao60n" path="res://asset/art/ui/action_mark/传送.png" id="2_ay30q"]
|
||||
[ext_resource type="PackedScene" uid="uid://c85t6stvytvjn" path="res://scene/entity/general/sfx.tscn" id="3_6khux"]
|
||||
[ext_resource type="AudioStream" uid="uid://bqh3at8fbi75s" path="res://asset/audio/sfx/ui/页面转换声.wav" id="3_lluer"]
|
||||
[ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="4_ty1ds"]
|
||||
[ext_resource type="Texture2D" uid="uid://b343nvvbtpglb" path="res://asset/art/ui/互动提示符/ui 像素版_纯白.png" id="5_3s5wu"]
|
||||
[ext_resource type="AudioStream" uid="uid://ccng5y2fip6mc" path="res://asset/audio/sfx/ui/开锁声.mp3" id="5_l48hy"]
|
||||
[ext_resource type="AudioStream" uid="uid://c7k1gohcfiyg3" path="res://asset/audio/sfx/ui/开门.mp3" id="6_icbmu"]
|
||||
[ext_resource type="AudioStream" uid="uid://inmdv5gqqius" path="res://asset/audio/sfx/ui/门锁互动.mp3" id="7_bjcty"]
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_20tmu"]
|
||||
atlas = ExtResource("5_3s5wu")
|
||||
region = Rect2(495, 84, 39, 39)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_nnhgo"]
|
||||
atlas = ExtResource("5_3s5wu")
|
||||
region = Rect2(495, 267, 39, 39)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_l8twy"]
|
||||
atlas = ExtResource("5_3s5wu")
|
||||
region = Rect2(480, 468, 63, 63)
|
||||
|
||||
[sub_resource type="AtlasTexture" id="AtlasTexture_lxo3t"]
|
||||
atlas = ExtResource("5_3s5wu")
|
||||
region = Rect2(762, 468, 63, 63)
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_munml"]
|
||||
resource_local_to_scene = true
|
||||
@ -12,22 +32,43 @@ size = Vector2(25, 130)
|
||||
|
||||
[node name="portal_left" type="Sprite2D"]
|
||||
script = ExtResource("1_jyh6v")
|
||||
default_sign_texture = SubResource("AtlasTexture_20tmu")
|
||||
opened_sign_texture = SubResource("AtlasTexture_nnhgo")
|
||||
matched_sign_texture = SubResource("AtlasTexture_l8twy")
|
||||
closed_sign_texture = SubResource("AtlasTexture_lxo3t")
|
||||
prop_key = ""
|
||||
|
||||
[node name="Sfx" parent="." instance=ExtResource("3_6khux")]
|
||||
[node name="SfxDefault" parent="." instance=ExtResource("3_6khux")]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("3_lluer")
|
||||
file = "页面转换声.wav"
|
||||
|
||||
[node name="SfxOpen" parent="." instance=ExtResource("3_6khux")]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("5_l48hy")
|
||||
file = "开锁声.mp3"
|
||||
|
||||
[node name="SfxEnter" parent="." instance=ExtResource("3_6khux")]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("6_icbmu")
|
||||
file = "开门.mp3"
|
||||
|
||||
[node name="SfxLocked" parent="." instance=ExtResource("3_6khux")]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("7_bjcty")
|
||||
file = "门锁互动.mp3"
|
||||
|
||||
[node name="Sign" parent="." instance=ExtResource("4_ty1ds")]
|
||||
unique_name_in_owner = true
|
||||
modulate = Color(1, 1, 1, 0)
|
||||
offset_top = -47.0
|
||||
offset_right = 347.0
|
||||
offset_bottom = 287.0
|
||||
scale = Vector2(0.05, 0.05)
|
||||
enabled = false
|
||||
|
||||
[node name="Sprite2D" parent="Sign/TextureContainer" index="0"]
|
||||
position = Vector2(0, 10)
|
||||
texture = ExtResource("2_ay30q")
|
||||
texture = SubResource("AtlasTexture_20tmu")
|
||||
|
||||
[node name="PointLight2D" type="PointLight2D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
|
@ -21,7 +21,6 @@ var default_portal := "left"
|
||||
replace_player_to_portal = false
|
||||
if is_node_ready():
|
||||
move_player_to_portal(default_portal)
|
||||
_reset_player_y()
|
||||
@export_group("Sound")
|
||||
@export_enum("none", "ghost", "walking", "running", "crawling", "concrete")
|
||||
var footstep_type: String = "concrete":
|
||||
@ -30,6 +29,7 @@ var footstep_type: String = "concrete":
|
||||
if is_node_ready():
|
||||
_load_footstep_audio()
|
||||
|
||||
@onready var player_line = %PlayerLine2D as Line2D
|
||||
@onready var player = %MainPlayer as MainPlayer
|
||||
@onready var directional_light := %DirectionalLight2D as DirectionalLight2D
|
||||
@onready var bg_sprite = %BGSprite2D as Sprite2D
|
||||
@ -56,6 +56,13 @@ func _ready() -> void:
|
||||
if GlobalConfig.DEBUG and (not Engine.is_editor_hint()) and (not get_parent() is GroundLoader):
|
||||
call_deferred("_restart_from_main")
|
||||
return
|
||||
# bg layer 位置,在编辑器中显示在正后方
|
||||
if Engine.is_editor_hint():
|
||||
$BGLayer.offset.y = -159
|
||||
else:
|
||||
$BGLayer.offset.y = 0
|
||||
# 隐藏 player_line
|
||||
player_line.visible = false
|
||||
# 检查 scene_name 是否合法
|
||||
scene_name = scene_name.strip_edges()
|
||||
if get_parent().name.begins_with("S") and (not scene_name or scene_name.length() != 7):
|
||||
@ -99,17 +106,19 @@ func _reset_player_y():
|
||||
|
||||
func _set_camera_and_player_boundary():
|
||||
# set current_boarder by bg size
|
||||
var camera_rect = Rect2(0, -158, 564, 316)
|
||||
var player_rect = Rect2(0, -158, 564, 316)
|
||||
if bg_sprite.texture and not Engine.is_editor_hint():
|
||||
var size = bg_sprite.texture.get_size() * bg_sprite.scale
|
||||
# camera rect
|
||||
var camera_size = Vector2(max(564.0, size.x), max(size.y, 316.0))
|
||||
var camera_size = size
|
||||
camera_size.x += bg_sprite.position.x
|
||||
camera_size = Vector2(max(564.0, camera_size.x), max(camera_size.y, 316.0))
|
||||
var camera_upleft = Vector2(0, -camera_size.y / 2.0)
|
||||
var camera_rect = Rect2(camera_upleft, camera_size)
|
||||
camera_rect = Rect2(camera_upleft, camera_size)
|
||||
# player rect should be set centered, with 30px x padding
|
||||
var up_left = Vector2(0, -size.y / 2.0)
|
||||
size.x -= 36.0
|
||||
up_left.x = bg_sprite.position.x + 18.0
|
||||
var player_rect = Rect2(up_left, size)
|
||||
player_rect.position.x = player_line.get_point_position(0).x
|
||||
player_rect.size.x = player_line.get_point_position(1).x - player_rect.position.x
|
||||
SceneManager.set_camera_boundary(camera_rect)
|
||||
SceneManager.set_player_boundary(player_rect)
|
||||
if GlobalConfig.DEBUG:
|
||||
@ -133,6 +142,11 @@ func move_player_to_portal(portal_name: String) -> void:
|
||||
var portal_node = get_node_or_null("DeployLayer/portal_" + portal_name) as Node2D
|
||||
if portal_node:
|
||||
player.global_position.x = portal_node.global_position.x
|
||||
if portal_name == "left":
|
||||
player.set_facing_direction(Vector2.RIGHT)
|
||||
elif portal_name == "right":
|
||||
player.set_facing_direction(Vector2.LEFT)
|
||||
_reset_player_y()
|
||||
if GlobalConfig.DEBUG:
|
||||
print("move player to portal:", portal_name, portal_node.global_position)
|
||||
else:
|
||||
|
@ -19,12 +19,12 @@ script = ExtResource("1_0vrlo")
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
|
||||
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||
[node name="BGLayer" type="CanvasLayer" parent="."]
|
||||
layer = -1
|
||||
offset = Vector2(0, -159)
|
||||
transform = Transform2D(1, 0, 0, 1, 0, -159)
|
||||
|
||||
[node name="BGColorRect" type="ColorRect" parent="CanvasLayer"]
|
||||
[node name="BGColorRect" type="ColorRect" parent="BGLayer"]
|
||||
z_index = -10
|
||||
custom_minimum_size = Vector2(664, 318)
|
||||
anchors_preset = 4
|
||||
@ -48,17 +48,17 @@ offset = Vector2(0, -120)
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="portal_left" parent="DeployLayer" instance=ExtResource("3_t73yw")]
|
||||
position = Vector2(26, -1)
|
||||
position = Vector2(41, 6)
|
||||
|
||||
[node name="portal_right" parent="DeployLayer" instance=ExtResource("3_t73yw")]
|
||||
position = Vector2(530, 0)
|
||||
position = Vector2(518, 6)
|
||||
portal_name = "right"
|
||||
|
||||
[node name="AmbientLayer" type="Node2D" parent="."]
|
||||
|
||||
[node name="MainPlayer" parent="." node_paths=PackedStringArray("camera_marker") instance=ExtResource("3_atha7")]
|
||||
unique_name_in_owner = true
|
||||
position = Vector2(26, 88)
|
||||
position = Vector2(41, 88)
|
||||
camera_marker = NodePath("../CameraFocusMarker")
|
||||
|
||||
[node name="CameraFocusMarker" parent="." node_paths=PackedStringArray("focusing_node") instance=ExtResource("4_mgk0a")]
|
||||
@ -77,9 +77,13 @@ motion_scale = Vector2(1.1, 1.1)
|
||||
|
||||
[node name="FGSprite2D" type="Sprite2D" parent="ParallaxForeground/FGParallaxLayer"]
|
||||
unique_name_in_owner = true
|
||||
position = Vector2(-34, -118)
|
||||
texture = ExtResource("5_i5hii")
|
||||
centered = false
|
||||
offset = Vector2(0, -120)
|
||||
|
||||
[node name="PlayerLine2D" type="Line2D" parent="ParallaxForeground"]
|
||||
unique_name_in_owner = true
|
||||
points = PackedVector2Array(37, 150, 519, 150)
|
||||
|
||||
[node name="SubViewportContainer" type="SubViewportContainer" parent="."]
|
||||
offset_right = 2256.0
|
||||
|
@ -724,11 +724,13 @@ texture_scale = 0.33
|
||||
height = 50.0
|
||||
|
||||
[node name="MainPlayer" parent="Ground" index="5"]
|
||||
position = Vector2(26, 88)
|
||||
character = "小小蝶"
|
||||
|
||||
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
|
||||
position = Vector2(21, 39)
|
||||
texture = ExtResource("3_vmr0f")
|
||||
offset = Vector2(0, 0)
|
||||
|
||||
[node name="SubViewportContainer" parent="Ground" index="8"]
|
||||
offset_top = -2.0
|
||||
|
@ -423,6 +423,7 @@ sprite_frames = ExtResource("2_l4axy")
|
||||
animation = &"院长呼吸"
|
||||
|
||||
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
|
||||
visible = false
|
||||
texture = null
|
||||
|
||||
[node name="动态前景" parent="Ground/ParallaxForeground/FGParallaxLayer" index="1" instance=ExtResource("8_ouldg")]
|
||||
@ -433,6 +434,9 @@ animation = &"fg_花圃"
|
||||
centered = false
|
||||
offset = Vector2(0, -159)
|
||||
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(37, 150, 3200, 150)
|
||||
|
||||
[node name="DirectionalLight2D" parent="Ground" index="9"]
|
||||
visible = false
|
||||
|
||||
|
@ -13,6 +13,7 @@ scene_name = "c01_s08"
|
||||
|
||||
[node name="AnimationPlayer" parent="Ground" index="0"]
|
||||
script = ExtResource("2_0lque")
|
||||
oneshot_animation = ""
|
||||
|
||||
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
||||
immediately = false
|
||||
|
@ -14,6 +14,7 @@ scene_name = "c01_s09"
|
||||
|
||||
[node name="AnimationPlayer" parent="Ground" index="0"]
|
||||
script = ExtResource("2_u053j")
|
||||
oneshot_animation = ""
|
||||
|
||||
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
||||
immediately = false
|
||||
|
@ -13,6 +13,7 @@ scene_name = "c01_s10"
|
||||
|
||||
[node name="AnimationPlayer" parent="Ground" index="0"]
|
||||
script = ExtResource("2_4kx83")
|
||||
oneshot_animation = ""
|
||||
|
||||
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
||||
immediately = false
|
||||
|
@ -224,7 +224,7 @@ position = Vector2(2549, 60)
|
||||
texture = ExtResource("4_vaqc6")
|
||||
|
||||
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
|
||||
position = Vector2(871, -143)
|
||||
position = Vector2(871, 0)
|
||||
scale = Vector2(1.18, 1.18)
|
||||
texture = ExtResource("3_fduds")
|
||||
|
||||
@ -241,4 +241,7 @@ position = Vector2(6924, 31)
|
||||
texture = ExtResource("5_rbgqg")
|
||||
centered = false
|
||||
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(37, 150, 10050, 150)
|
||||
|
||||
[editable path="Ground"]
|
||||
|
@ -1,15 +1,15 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://bbs7yy5aofw1v"]
|
||||
[gd_scene load_steps=5 format=3 uid="uid://bbs7yy5aofw1v"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_gdcov"]
|
||||
[ext_resource type="Texture2D" uid="uid://dibfvlmarlkg6" path="res://asset/art/scene/c02/s01_街道/bg_公寓入口.png" id="2_ni1a4"]
|
||||
[ext_resource type="Script" path="res://scene/ground/scene/c02/s01_animation.gd" id="2_uuwn3"]
|
||||
[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="3_6lnxd"]
|
||||
[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="6_vgxa0"]
|
||||
|
||||
[node name="S01" type="Node2D"]
|
||||
|
||||
[node name="Ground" parent="." instance=ExtResource("1_gdcov")]
|
||||
scene_name = "c02_s01"
|
||||
player_y = 55
|
||||
|
||||
[node name="AnimationPlayer" parent="Ground" index="0"]
|
||||
script = ExtResource("2_uuwn3")
|
||||
@ -30,23 +30,25 @@ position = Vector2(392, 2)
|
||||
target_scene = "c02_s02"
|
||||
target_portal = "left"
|
||||
|
||||
[node name="Note" parent="Ground/DeployLayer" index="2" instance=ExtResource("3_6lnxd")]
|
||||
[node name="Note寻人启事" parent="Ground/DeployLayer" index="2" instance=ExtResource("3_6lnxd")]
|
||||
position = Vector2(250, -22)
|
||||
mode = null
|
||||
title_filter = "c02"
|
||||
note_key = "c02_寻人启事"
|
||||
|
||||
[node name="Note门口" parent="Ground/DeployLayer" index="3" instance=ExtResource("3_6lnxd")]
|
||||
position = Vector2(311, -27)
|
||||
mode = "ballon"
|
||||
dialogue = "c02"
|
||||
|
||||
[node name="Ambush" parent="Ground/DeployLayer" index="4" instance=ExtResource("6_vgxa0")]
|
||||
position = Vector2(135, 56)
|
||||
hook_method = null
|
||||
title_filter = "c02"
|
||||
note_key = "c02_s01_门口"
|
||||
|
||||
[node name="MainPlayer" parent="Ground" index="5"]
|
||||
position = Vector2(78, 88)
|
||||
position = Vector2(78, 103)
|
||||
|
||||
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
|
||||
texture = null
|
||||
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(37, 150, 720, 150)
|
||||
|
||||
[editable path="Ground"]
|
||||
|
@ -22,9 +22,12 @@ func _on_ground_ready() -> void:
|
||||
paper_man = $"../DeployLayer/Ambush纸人"
|
||||
paper_man.enabled = data.display_paper_man
|
||||
paper_man.visible = data.display_paper_man
|
||||
paper_man.get_node("wall/CollisionShape2D").disabled = !data.display_paper_man
|
||||
|
||||
|
||||
func _oneshot_wind():
|
||||
SceneManager.get_player().global_position.x = 53
|
||||
SceneManager.get_player().set_facing_direction(Vector2.RIGHT)
|
||||
SceneManager.freeze_player(0)
|
||||
%MainPlayer.visible = false
|
||||
wind_blows.visible = true
|
||||
@ -43,17 +46,18 @@ func _on_dialogue_ended(_res):
|
||||
SceneManager.release_player()
|
||||
|
||||
|
||||
func lumber_interacted():
|
||||
SceneManager.pop_debug_dialog_info("美术", "杂物堆⾥有眼睛瞟向玩家/眨动,然后消失(动画)")
|
||||
_display_paper_man()
|
||||
|
||||
|
||||
func _display_paper_man():
|
||||
data.display_paper_man = true
|
||||
paper_man.enabled = true
|
||||
set_data("display_paper_man", true)
|
||||
paper_man.visible = true
|
||||
paper_man.enabled = true
|
||||
paper_man.get_node("Sfx").play()
|
||||
paper_man.get_node("wall/CollisionShape2D").disabled = false
|
||||
|
||||
|
||||
func paper_man_interacted():
|
||||
SceneManager.enable_prop_item("prop_1012钥匙")
|
||||
|
||||
|
||||
func lumber_interacted():
|
||||
SceneManager.pop_debug_dialog_info("美术", "杂物堆⾥有眼睛瞟向玩家/眨动,然后消失(动画)")
|
||||
_display_paper_man()
|
||||
|
@ -62,6 +62,7 @@ data = {
|
||||
oneshot_animation = "oneshot_天冷"
|
||||
|
||||
[node name="BGSprite2D" parent="Ground" index="2"]
|
||||
position = Vector2(-1, 0)
|
||||
texture = ExtResource("2_cn1s8")
|
||||
|
||||
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
|
||||
@ -87,7 +88,6 @@ note_key = "c02_卫生宣传画"
|
||||
[node name="鼠疫海报" parent="Ground/DeployLayer" index="4" instance=ExtResource("12_0fckv")]
|
||||
position = Vector2(439, -18)
|
||||
texture_cover = ExtResource("7_wdwbi")
|
||||
content_key = "c02_鼠疫海报"
|
||||
|
||||
[node name="Ambush纸人" parent="Ground/DeployLayer" index="5" instance=ExtResource("8_52as8")]
|
||||
position = Vector2(198, 48)
|
||||
@ -138,11 +138,19 @@ offset_bottom = 22.0
|
||||
text = "杂物堆
|
||||
"
|
||||
|
||||
[node name="Note老鼠洞" parent="Ground/DeployLayer" index="8" instance=ExtResource("3_fy0o1")]
|
||||
position = Vector2(510, 60)
|
||||
title_filter = "c02"
|
||||
note_key = "c02_老鼠洞"
|
||||
|
||||
[node name="MainPlayer" parent="Ground" index="5"]
|
||||
position = Vector2(53, 98)
|
||||
|
||||
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
|
||||
texture = null
|
||||
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(37, 150, 670, 150)
|
||||
|
||||
[editable path="Ground"]
|
||||
[editable path="Ground/DeployLayer/Ambush纸人"]
|
||||
|
@ -85,9 +85,12 @@ scale = Vector2(1.05, 1.05)
|
||||
texture = ExtResource("7_icddm")
|
||||
|
||||
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
|
||||
position = Vector2(-12, -143)
|
||||
position = Vector2(0, -7)
|
||||
scale = Vector2(1.08, 1.08)
|
||||
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(37, 150, 2350, 150)
|
||||
|
||||
[node name="DirectionalLight2D" parent="Ground" index="9"]
|
||||
color = Color(0.688281, 0.748391, 0.96674, 1)
|
||||
|
||||
|
17
scene/ground/scene/c02/s04_animation.gd
Normal file
17
scene/ground/scene/c02/s04_animation.gd
Normal file
@ -0,0 +1,17 @@
|
||||
@tool
|
||||
extends AnimationRoot
|
||||
|
||||
|
||||
# 覆盖该方法
|
||||
func _default_data() -> Dictionary:
|
||||
return {}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready()
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
|
||||
|
||||
func _on_ground_ready() -> void:
|
||||
pass
|
57
scene/ground/scene/c02/s04_院子现实版.tscn
Normal file
57
scene/ground/scene/c02/s04_院子现实版.tscn
Normal file
@ -0,0 +1,57 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://cp8d3ag5nbjq0"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_2jej0"]
|
||||
[ext_resource type="Script" path="res://scene/ground/scene/c02/s04_animation.gd" id="2_jyere"]
|
||||
[ext_resource type="Texture2D" uid="uid://wrxhnk7enk2f" path="res://asset/art/scene/c02/s04_院子现实版/bg_院子1楼(黄昏无人).png" id="3_gmxu4"]
|
||||
[ext_resource type="Texture2D" uid="uid://b72loyn1of7tb" path="res://asset/art/scene/c02/s04_院子现实版/fg_楼梯.png" id="4_uey0g"]
|
||||
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_xw32r"]
|
||||
[ext_resource type="Texture2D" uid="uid://dcnlkhicejjqk" path="res://asset/art/scene/c02/s04_院子现实版/e_铁门.png" id="5_8n1mf"]
|
||||
[ext_resource type="Texture2D" uid="uid://bvkwihmpu718g" path="res://asset/art/scene/c02/s04_院子现实版/fg_前景.png" id="6_ll57k"]
|
||||
|
||||
[node name="S04" type="Node2D"]
|
||||
|
||||
[node name="Ground" parent="." instance=ExtResource("1_2jej0")]
|
||||
scene_name = "c02_s04"
|
||||
|
||||
[node name="AnimationPlayer" parent="Ground" index="0"]
|
||||
script = ExtResource("2_jyere")
|
||||
oneshot_animation = ""
|
||||
|
||||
[node name="BGSprite2D" parent="Ground" index="2"]
|
||||
texture = ExtResource("3_gmxu4")
|
||||
|
||||
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
|
||||
disable_key_after_used = null
|
||||
|
||||
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
||||
disable_key_after_used = null
|
||||
|
||||
[node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("4_xw32r")]
|
||||
position = Vector2(194, 10)
|
||||
debug_note = "通往 1012 房间"
|
||||
portal_name = "1"
|
||||
target_scene = "c02_s05"
|
||||
target_portal = "right"
|
||||
status = "locked"
|
||||
disable_key_after_used = null
|
||||
prop_key = "prop_1012钥匙"
|
||||
|
||||
[node name="楼梯" type="Sprite2D" parent="Ground/DeployLayer" index="3"]
|
||||
z_index = 7
|
||||
position = Vector2(1259, -3)
|
||||
texture = ExtResource("4_uey0g")
|
||||
|
||||
[node name="铁门" type="Sprite2D" parent="Ground/DeployLayer" index="4"]
|
||||
z_index = 7
|
||||
position = Vector2(1089, 22)
|
||||
texture = ExtResource("5_8n1mf")
|
||||
|
||||
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
|
||||
position = Vector2(0, -6)
|
||||
scale = Vector2(1.08, 1.08)
|
||||
texture = ExtResource("6_ll57k")
|
||||
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(37, 150, 2350, 150)
|
||||
|
||||
[editable path="Ground"]
|
42
scene/ground/scene/c02/s05_1012外间现实版.tscn
Normal file
42
scene/ground/scene/c02/s05_1012外间现实版.tscn
Normal file
@ -0,0 +1,42 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://bivc5cdap370p"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_2713m"]
|
||||
[ext_resource type="Script" path="res://scene/ground/scene/c02/s05_animation.gd" id="2_3v8iu"]
|
||||
[ext_resource type="Texture2D" uid="uid://cl8no405v4hsk" path="res://asset/art/scene/c02/s05_1012外间现实版/bg_1012外间.png" id="3_8jr2p"]
|
||||
[ext_resource type="Texture2D" uid="uid://d04bppjl5h3vo" path="res://asset/art/scene/c02/s05_1012外间现实版/fg_1012外间.png" id="4_quka7"]
|
||||
|
||||
[node name="S05" type="Node2D"]
|
||||
|
||||
[node name="Ground" parent="." instance=ExtResource("1_2713m")]
|
||||
scene_name = "c02_s05"
|
||||
default_portal = "right"
|
||||
player_y = 55
|
||||
|
||||
[node name="AnimationPlayer" parent="Ground" index="0"]
|
||||
script = ExtResource("2_3v8iu")
|
||||
oneshot_animation = ""
|
||||
|
||||
[node name="BGSprite2D" parent="Ground" index="2"]
|
||||
position = Vector2(74, 2)
|
||||
texture = ExtResource("3_8jr2p")
|
||||
|
||||
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
|
||||
position = Vector2(138, 18)
|
||||
disable_key_after_used = null
|
||||
|
||||
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
||||
position = Vector2(447, 26)
|
||||
disable_key_after_used = null
|
||||
|
||||
[node name="MainPlayer" parent="Ground" index="5"]
|
||||
position = Vector2(447, 103)
|
||||
facing_direction = Vector2(-1, 0)
|
||||
|
||||
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
|
||||
position = Vector2(75, -15)
|
||||
texture = ExtResource("4_quka7")
|
||||
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(95, 150, 470, 150)
|
||||
|
||||
[editable path="Ground"]
|
17
scene/ground/scene/c02/s05_animation.gd
Normal file
17
scene/ground/scene/c02/s05_animation.gd
Normal file
@ -0,0 +1,17 @@
|
||||
@tool
|
||||
extends AnimationRoot
|
||||
|
||||
|
||||
# 覆盖该方法
|
||||
func _default_data() -> Dictionary:
|
||||
return {}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready()
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
|
||||
|
||||
func _on_ground_ready() -> void:
|
||||
pass
|
17
scene/ground/scene/c02/s06_animation.gd
Normal file
17
scene/ground/scene/c02/s06_animation.gd
Normal file
@ -0,0 +1,17 @@
|
||||
@tool
|
||||
extends AnimationRoot
|
||||
|
||||
|
||||
# 覆盖该方法
|
||||
func _default_data() -> Dictionary:
|
||||
return {}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready()
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
|
||||
|
||||
func _on_ground_ready() -> void:
|
||||
pass
|
37
scene/ground/scene/c02/s06_院子回忆版.tscn
Normal file
37
scene/ground/scene/c02/s06_院子回忆版.tscn
Normal file
@ -0,0 +1,37 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://cootarwb44vvh"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_1kelt"]
|
||||
[ext_resource type="Script" path="res://scene/ground/scene/c02/s06_animation.gd" id="2_d64eu"]
|
||||
[ext_resource type="Texture2D" uid="uid://d1cmto7bvap2g" path="res://asset/art/scene/c02/s06_院子回忆版/bg_院子1楼(黄昏有人).png" id="3_4fobb"]
|
||||
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_1mes0"]
|
||||
[ext_resource type="Texture2D" uid="uid://wge8cr5h5p78" path="res://asset/art/scene/c02/s06_院子回忆版/fg_楼梯2.png" id="6_5nv2j"]
|
||||
|
||||
[node name="S06" type="Node2D"]
|
||||
|
||||
[node name="Ground" parent="." instance=ExtResource("1_1kelt")]
|
||||
scene_name = "c02_s06"
|
||||
|
||||
[node name="AnimationPlayer" parent="Ground" index="0"]
|
||||
script = ExtResource("2_d64eu")
|
||||
oneshot_animation = ""
|
||||
|
||||
[node name="BGSprite2D" parent="Ground" index="2"]
|
||||
texture = ExtResource("3_4fobb")
|
||||
|
||||
[node name="portal_1" parent="Ground/DeployLayer" index="2" instance=ExtResource("4_1mes0")]
|
||||
position = Vector2(1739, 9)
|
||||
portal_name = "1"
|
||||
|
||||
[node name="楼梯" type="Sprite2D" parent="Ground/DeployLayer" index="3"]
|
||||
z_index = 7
|
||||
position = Vector2(1264, -3)
|
||||
texture = ExtResource("6_5nv2j")
|
||||
|
||||
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
|
||||
position = Vector2(0, -5)
|
||||
scale = Vector2(1.1, 1.1)
|
||||
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(37, 150, 2350, 150)
|
||||
|
||||
[editable path="Ground"]
|
17
scene/ground/scene/c02/s07_animation.gd
Normal file
17
scene/ground/scene/c02/s07_animation.gd
Normal file
@ -0,0 +1,17 @@
|
||||
@tool
|
||||
extends AnimationRoot
|
||||
|
||||
|
||||
# 覆盖该方法
|
||||
func _default_data() -> Dictionary:
|
||||
return {}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready()
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
|
||||
|
||||
func _on_ground_ready() -> void:
|
||||
pass
|
25
scene/ground/scene/c02/s07_过道回忆版.tscn
Normal file
25
scene/ground/scene/c02/s07_过道回忆版.tscn
Normal file
@ -0,0 +1,25 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://t4xjt774ngwh"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_ayofl"]
|
||||
[ext_resource type="Script" path="res://scene/ground/scene/c02/s07_animation.gd" id="2_bfclu"]
|
||||
[ext_resource type="Texture2D" uid="uid://cgue0x46x47nt" path="res://asset/art/scene/c02/s07_过道回忆版/bg_过道(回忆版).png" id="3_ga8ji"]
|
||||
|
||||
[node name="S07" type="Node2D"]
|
||||
|
||||
[node name="Ground" parent="." instance=ExtResource("1_ayofl")]
|
||||
scene_name = "c02_s07"
|
||||
|
||||
[node name="AnimationPlayer" parent="Ground" index="0"]
|
||||
script = ExtResource("2_bfclu")
|
||||
oneshot_animation = ""
|
||||
|
||||
[node name="BGSprite2D" parent="Ground" index="2"]
|
||||
texture = ExtResource("3_ga8ji")
|
||||
|
||||
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
|
||||
texture = null
|
||||
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(37, 150, 670, 150)
|
||||
|
||||
[editable path="Ground"]
|
40
scene/ground/scene/c02/s08_1012外间回忆版.tscn
Normal file
40
scene/ground/scene/c02/s08_1012外间回忆版.tscn
Normal file
@ -0,0 +1,40 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://ce2vyyg2reg52"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_judx3"]
|
||||
[ext_resource type="Script" path="res://scene/ground/scene/c02/s08_animation.gd" id="2_m4uw8"]
|
||||
[ext_resource type="Texture2D" uid="uid://blaox0jqpnku8" path="res://asset/art/scene/c02/s08_1012外间回忆版/bg_1012外间(回忆版).png" id="3_auuqw"]
|
||||
[ext_resource type="Texture2D" uid="uid://cipr4k0ydx4ll" path="res://asset/art/scene/c02/s08_1012外间回忆版/fg_前景.png" id="4_ogg5x"]
|
||||
|
||||
[node name="S08" type="Node2D"]
|
||||
|
||||
[node name="Ground" parent="." instance=ExtResource("1_judx3")]
|
||||
scene_name = "c02_s08"
|
||||
default_portal = "right"
|
||||
player_y = 55
|
||||
|
||||
[node name="AnimationPlayer" parent="Ground" index="0"]
|
||||
script = ExtResource("2_m4uw8")
|
||||
oneshot_animation = ""
|
||||
|
||||
[node name="BGSprite2D" parent="Ground" index="2"]
|
||||
position = Vector2(77, 1)
|
||||
texture = ExtResource("3_auuqw")
|
||||
|
||||
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
|
||||
position = Vector2(141, 18)
|
||||
|
||||
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
||||
position = Vector2(448, 16)
|
||||
|
||||
[node name="MainPlayer" parent="Ground" index="5"]
|
||||
position = Vector2(448, 103)
|
||||
facing_direction = Vector2(-1, 0)
|
||||
|
||||
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
|
||||
position = Vector2(78, -14)
|
||||
texture = ExtResource("4_ogg5x")
|
||||
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(95, 150, 475, 150)
|
||||
|
||||
[editable path="Ground"]
|
17
scene/ground/scene/c02/s08_animation.gd
Normal file
17
scene/ground/scene/c02/s08_animation.gd
Normal file
@ -0,0 +1,17 @@
|
||||
@tool
|
||||
extends AnimationRoot
|
||||
|
||||
|
||||
# 覆盖该方法
|
||||
func _default_data() -> Dictionary:
|
||||
return {}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready()
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
|
||||
|
||||
func _on_ground_ready() -> void:
|
||||
pass
|
31
scene/ground/scene/c02/s09_1014现实版.tscn
Normal file
31
scene/ground/scene/c02/s09_1014现实版.tscn
Normal file
@ -0,0 +1,31 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://ryups1dnwdto"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_0jub8"]
|
||||
[ext_resource type="Script" path="res://scene/ground/scene/c02/s09_animation.gd" id="2_s3fe0"]
|
||||
[ext_resource type="Texture2D" uid="uid://d3x6sl377cy4" path="res://asset/art/scene/c02/s09_1014现实版/bg_1014房间-回忆版.png" id="3_8r0fe"]
|
||||
|
||||
[node name="S09" type="Node2D"]
|
||||
|
||||
[node name="Ground" parent="." instance=ExtResource("1_0jub8")]
|
||||
scene_name = "c02_s09"
|
||||
|
||||
[node name="AnimationPlayer" parent="Ground" index="0"]
|
||||
script = ExtResource("2_s3fe0")
|
||||
oneshot_animation = ""
|
||||
|
||||
[node name="BGSprite2D" parent="Ground" index="2"]
|
||||
texture = ExtResource("3_8r0fe")
|
||||
|
||||
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
|
||||
position = Vector2(62, 16)
|
||||
|
||||
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
||||
position = Vector2(522, 16)
|
||||
|
||||
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
|
||||
texture = null
|
||||
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(37, 150, 620, 150)
|
||||
|
||||
[editable path="Ground"]
|
17
scene/ground/scene/c02/s09_animation.gd
Normal file
17
scene/ground/scene/c02/s09_animation.gd
Normal file
@ -0,0 +1,17 @@
|
||||
@tool
|
||||
extends AnimationRoot
|
||||
|
||||
|
||||
# 覆盖该方法
|
||||
func _default_data() -> Dictionary:
|
||||
return {}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready()
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
|
||||
|
||||
func _on_ground_ready() -> void:
|
||||
pass
|
17
scene/ground/scene/c02/s10_animation.gd
Normal file
17
scene/ground/scene/c02/s10_animation.gd
Normal file
@ -0,0 +1,17 @@
|
||||
@tool
|
||||
extends AnimationRoot
|
||||
|
||||
|
||||
# 覆盖该方法
|
||||
func _default_data() -> Dictionary:
|
||||
return {}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready()
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
|
||||
|
||||
func _on_ground_ready() -> void:
|
||||
pass
|
47
scene/ground/scene/c02/s10_裂缝通道.tscn
Normal file
47
scene/ground/scene/c02/s10_裂缝通道.tscn
Normal file
@ -0,0 +1,47 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://dny21yhtuteap"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_w7j0m"]
|
||||
[ext_resource type="Script" path="res://scene/ground/scene/c02/s10_animation.gd" id="2_egtqi"]
|
||||
[ext_resource type="Texture2D" uid="uid://bo30bcswcstre" path="res://asset/art/scene/c02/s10_裂缝通道/bg_裂缝通道.png" id="3_cckdm"]
|
||||
[ext_resource type="Texture2D" uid="uid://dpmf4w76ln2uo" path="res://asset/art/scene/c02/s10_裂缝通道/fg_裂缝通道.png" id="4_8gxkr"]
|
||||
|
||||
[node name="S10" type="Node2D"]
|
||||
|
||||
[node name="Ground" parent="." instance=ExtResource("1_w7j0m")]
|
||||
scale = Vector2(1, 1.01426)
|
||||
scene_name = "c02_s10"
|
||||
player_y = 90
|
||||
footstep_type = "crawling"
|
||||
|
||||
[node name="AnimationPlayer" parent="Ground" index="0"]
|
||||
script = ExtResource("2_egtqi")
|
||||
oneshot_animation = ""
|
||||
|
||||
[node name="BGSprite2D" parent="Ground" index="2"]
|
||||
texture = ExtResource("3_cckdm")
|
||||
|
||||
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
|
||||
position = Vector2(249, 14)
|
||||
|
||||
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
||||
position = Vector2(667, 20)
|
||||
|
||||
[node name="MainPlayer" parent="Ground" index="5"]
|
||||
position = Vector2(249, 68)
|
||||
character = "吕萍爬行"
|
||||
facing_direction = Vector2(1, 0)
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="Ground/ParallaxForeground/BGParallaxLayer" index="0"]
|
||||
position = Vector2(441, -17)
|
||||
scale = Vector2(0.998846, 1.00216)
|
||||
texture = ExtResource("4_8gxkr")
|
||||
|
||||
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
|
||||
visible = false
|
||||
position = Vector2(193, 0)
|
||||
texture = null
|
||||
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(230, 150, 650, 150)
|
||||
|
||||
[editable path="Ground"]
|
49
scene/ground/scene/c02/s11_3014回忆版.tscn
Normal file
49
scene/ground/scene/c02/s11_3014回忆版.tscn
Normal file
@ -0,0 +1,49 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://dq41rvwl5hyrk"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_j6dox"]
|
||||
[ext_resource type="Script" path="res://scene/ground/scene/c02/s11_animation.gd" id="2_dbjgm"]
|
||||
[ext_resource type="Texture2D" uid="uid://dacmld3f2y74j" path="res://asset/art/scene/c02/s11_3014回忆版/bg_3014里间与墙内空间.png" id="3_s8if0"]
|
||||
[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="4_wd2v1"]
|
||||
[ext_resource type="Texture2D" uid="uid://c73bxg5jnciy8" path="res://asset/art/scene/c02/s11_3014回忆版/e_书桌组.png" id="5_683gr"]
|
||||
[ext_resource type="Texture2D" uid="uid://b6u0mok6ofk4a" path="res://asset/art/scene/c02/s11_3014回忆版/e_墙壁.png" id="6_hbkki"]
|
||||
[ext_resource type="Texture2D" uid="uid://cm1rkmeyor7hy" path="res://asset/art/scene/c02/s11_3014回忆版/fg_前景.png" id="6_jqffo"]
|
||||
|
||||
[node name="S11" type="Node2D"]
|
||||
|
||||
[node name="Ground" parent="." instance=ExtResource("1_j6dox")]
|
||||
scene_name = "c02_s11"
|
||||
|
||||
[node name="AnimationPlayer" parent="Ground" index="0"]
|
||||
script = ExtResource("2_dbjgm")
|
||||
oneshot_animation = ""
|
||||
|
||||
[node name="BGSprite2D" parent="Ground" index="2"]
|
||||
texture = ExtResource("3_s8if0")
|
||||
|
||||
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
|
||||
position = Vector2(70, 5)
|
||||
|
||||
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
||||
position = Vector2(625, 33)
|
||||
|
||||
[node name="Ambush" parent="Ground/DeployLayer" index="2" instance=ExtResource("4_wd2v1")]
|
||||
position = Vector2(354, 29)
|
||||
texture = ExtResource("5_683gr")
|
||||
trigger_mode = "interact"
|
||||
|
||||
[node name="MainPlayer" parent="Ground" index="5"]
|
||||
position = Vector2(70, 88)
|
||||
facing_direction = Vector2(1, 0)
|
||||
|
||||
[node name="墙壁" type="Sprite2D" parent="Ground/ParallaxForeground/BGParallaxLayer" index="0"]
|
||||
position = Vector2(658, 0)
|
||||
texture = ExtResource("6_hbkki")
|
||||
|
||||
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
|
||||
position = Vector2(0, -14)
|
||||
texture = ExtResource("6_jqffo")
|
||||
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(37, 150, 625, 150)
|
||||
|
||||
[editable path="Ground"]
|
30
scene/ground/scene/c02/s11_animation.gd
Normal file
30
scene/ground/scene/c02/s11_animation.gd
Normal file
@ -0,0 +1,30 @@
|
||||
@tool
|
||||
extends AnimationRoot
|
||||
|
||||
|
||||
# 覆盖该方法
|
||||
func _default_data() -> Dictionary:
|
||||
return {}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready()
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
|
||||
|
||||
var camera_original_right = 0
|
||||
|
||||
|
||||
func _on_ground_ready() -> void:
|
||||
# 暂时限制观看墙右侧
|
||||
camera_original_right = SceneManager.get_camera_marker().limit_right
|
||||
SceneManager.get_camera_marker().limit_right = camera_original_right - 200
|
||||
# _tween_show_right_side()
|
||||
|
||||
|
||||
func _tween_show_right_side() -> void:
|
||||
var tween = create_tween()
|
||||
tween.tween_property(
|
||||
SceneManager.get_camera_marker(), "limit_right", camera_original_right, 1.5
|
||||
)
|
58
scene/ground/scene/c02/s12_1014诡异版.tscn
Normal file
58
scene/ground/scene/c02/s12_1014诡异版.tscn
Normal file
@ -0,0 +1,58 @@
|
||||
[gd_scene load_steps=9 format=3 uid="uid://da4cuf2i3nwpj"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_ngo77"]
|
||||
[ext_resource type="Script" path="res://scene/ground/scene/c02/s12_animation.gd" id="2_7ah3n"]
|
||||
[ext_resource type="Texture2D" uid="uid://bnvrbjxo3duu2" path="res://asset/art/scene/c02/s12_1014诡异版/bg_1014诡异幻境背景.png" id="3_dyuvy"]
|
||||
[ext_resource type="Texture2D" uid="uid://ddcburr57lb75" path="res://asset/art/scene/c02/s12_1014诡异版/bg_衔接阴影.png" id="4_y77d6"]
|
||||
[ext_resource type="PackedScene" uid="uid://cw3q5pvciumil" path="res://scene/entity/interactable.tscn" id="4_yfs7q"]
|
||||
[ext_resource type="Texture2D" uid="uid://ct12wdsm57eyy" path="res://asset/art/scene/c02/s12_1014诡异版/e_床上物品组.png" id="5_irgk5"]
|
||||
[ext_resource type="PackedScene" uid="uid://b8ncf4d0jda8r" path="res://scene/entity/partical/particals_ash.tscn" id="5_q2aoh"]
|
||||
[ext_resource type="Texture2D" uid="uid://bjvungu3tb155" path="res://asset/art/scene/c02/s12_1014诡异版/fg_1014前景.png" id="6_yct81"]
|
||||
|
||||
[node name="S12" type="Node2D"]
|
||||
|
||||
[node name="Ground" parent="." instance=ExtResource("1_ngo77")]
|
||||
scene_name = "c02_s12"
|
||||
default_portal = "right"
|
||||
|
||||
[node name="AnimationPlayer" parent="Ground" index="0"]
|
||||
script = ExtResource("2_7ah3n")
|
||||
oneshot_animation = ""
|
||||
|
||||
[node name="BGSprite2D" parent="Ground" index="2"]
|
||||
texture = ExtResource("3_dyuvy")
|
||||
|
||||
[node name="衔接阴影" type="Sprite2D" parent="Ground/BGSprite2D" index="0"]
|
||||
position = Vector2(2827, -9)
|
||||
texture = ExtResource("4_y77d6")
|
||||
|
||||
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
|
||||
position = Vector2(332, 27)
|
||||
|
||||
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
||||
position = Vector2(3691, 13)
|
||||
|
||||
[node name="ParticalsAsh" parent="Ground/DeployLayer" index="2" instance=ExtResource("5_q2aoh")]
|
||||
z_index = 4
|
||||
position = Vector2(2666, 0)
|
||||
|
||||
[node name="ParticalsAsh2" parent="Ground/DeployLayer" index="3" instance=ExtResource("5_q2aoh")]
|
||||
z_index = 4
|
||||
position = Vector2(1725, 2)
|
||||
|
||||
[node name="ParticalsAsh3" parent="Ground/DeployLayer" index="4" instance=ExtResource("5_q2aoh")]
|
||||
z_index = 4
|
||||
position = Vector2(925, 1)
|
||||
|
||||
[node name="Interactable床" parent="Ground/DeployLayer" index="5" instance=ExtResource("4_yfs7q")]
|
||||
position = Vector2(333, 76)
|
||||
texture = ExtResource("5_irgk5")
|
||||
|
||||
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
|
||||
position = Vector2(3584, -7)
|
||||
texture = ExtResource("6_yct81")
|
||||
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(37, 150, 4200, 150)
|
||||
|
||||
[editable path="Ground"]
|
17
scene/ground/scene/c02/s12_animation.gd
Normal file
17
scene/ground/scene/c02/s12_animation.gd
Normal file
@ -0,0 +1,17 @@
|
||||
@tool
|
||||
extends AnimationRoot
|
||||
|
||||
|
||||
# 覆盖该方法
|
||||
func _default_data() -> Dictionary:
|
||||
return {}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready()
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
|
||||
|
||||
func _on_ground_ready() -> void:
|
||||
pass
|
17
scene/ground/scene/c02/s13_animation.gd
Normal file
17
scene/ground/scene/c02/s13_animation.gd
Normal file
@ -0,0 +1,17 @@
|
||||
@tool
|
||||
extends AnimationRoot
|
||||
|
||||
|
||||
# 覆盖该方法
|
||||
func _default_data() -> Dictionary:
|
||||
return {}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready()
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
|
||||
|
||||
func _on_ground_ready() -> void:
|
||||
pass
|
36
scene/ground/scene/c02/s13_院子诡异版.tscn
Normal file
36
scene/ground/scene/c02/s13_院子诡异版.tscn
Normal file
@ -0,0 +1,36 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://bvjutch6jex0v"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_71lma"]
|
||||
[ext_resource type="Script" path="res://scene/ground/scene/c02/s13_animation.gd" id="2_w5nqu"]
|
||||
[ext_resource type="Texture2D" uid="uid://da3v7s68728af" path="res://asset/art/scene/c02/s13_院子诡异版/bg_院子1楼(黑).png" id="3_efmyf"]
|
||||
[ext_resource type="Texture2D" uid="uid://b3ootg88b63rb" path="res://asset/art/scene/c02/s13_院子诡异版/fg_楼梯调色后.png" id="4_4adgb"]
|
||||
[ext_resource type="Texture2D" uid="uid://d3o8gxjbl8734" path="res://asset/art/scene/c02/s13_院子诡异版/e_排队纸人调色.png" id="4_7ckhl"]
|
||||
|
||||
[node name="S13" type="Node2D"]
|
||||
|
||||
[node name="Ground" parent="." instance=ExtResource("1_71lma")]
|
||||
scene_name = "c02_s13"
|
||||
|
||||
[node name="AnimationPlayer" parent="Ground" index="0"]
|
||||
script = ExtResource("2_w5nqu")
|
||||
oneshot_animation = ""
|
||||
|
||||
[node name="BGSprite2D" parent="Ground" index="2"]
|
||||
texture = ExtResource("3_efmyf")
|
||||
|
||||
[node name="排队纸人" type="Sprite2D" parent="Ground/DeployLayer" index="2"]
|
||||
position = Vector2(1520, 17)
|
||||
texture = ExtResource("4_7ckhl")
|
||||
|
||||
[node name="楼梯" type="Sprite2D" parent="Ground/ParallaxForeground/BGParallaxLayer" index="0"]
|
||||
position = Vector2(1267, -4)
|
||||
texture = ExtResource("4_4adgb")
|
||||
|
||||
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
|
||||
position = Vector2(-1, -16)
|
||||
scale = Vector2(1.05, 1.05)
|
||||
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(37, 150, 2350, 150)
|
||||
|
||||
[editable path="Ground"]
|
17
scene/ground/scene/c02/s14_animation.gd
Normal file
17
scene/ground/scene/c02/s14_animation.gd
Normal file
@ -0,0 +1,17 @@
|
||||
@tool
|
||||
extends AnimationRoot
|
||||
|
||||
|
||||
# 覆盖该方法
|
||||
func _default_data() -> Dictionary:
|
||||
return {}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready()
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
|
||||
|
||||
func _on_ground_ready() -> void:
|
||||
pass
|
38
scene/ground/scene/c02/s14_过道诡异版.tscn
Normal file
38
scene/ground/scene/c02/s14_过道诡异版.tscn
Normal file
@ -0,0 +1,38 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://d0p4x5st2r315"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_om431"]
|
||||
[ext_resource type="Script" path="res://scene/ground/scene/c02/s14_animation.gd" id="2_b41rh"]
|
||||
[ext_resource type="Texture2D" uid="uid://diipofcj57pif" path="res://asset/art/scene/c02/s14_过道诡异版/bg_过道(诡异版).png" id="3_p0pkx"]
|
||||
[ext_resource type="PackedScene" uid="uid://ci5anaxsa1apl" path="res://scene/entity/local_inspectable.tscn" id="5_h38op"]
|
||||
[ext_resource type="Texture2D" uid="uid://cyue3suixb3eo" path="res://asset/art/scene/c02/s14_过道诡异版/e_碗和蜡烛.png" id="5_pbhsu"]
|
||||
[ext_resource type="Texture2D" uid="uid://cn35kih5akphr" path="res://asset/art/scene/c02/s14_过道诡异版/e_欢迎小蝶回家横幅.png" id="6_tud2a"]
|
||||
[ext_resource type="Texture2D" uid="uid://dt24lj1gw1xht" path="res://asset/art/scene/c02/s14_过道诡异版/ux_过道蜡烛碗特写.png" id="7_miqdc"]
|
||||
|
||||
[node name="S14" type="Node2D"]
|
||||
|
||||
[node name="Ground" parent="." instance=ExtResource("1_om431")]
|
||||
scene_name = "c02_s14"
|
||||
|
||||
[node name="AnimationPlayer" parent="Ground" index="0"]
|
||||
script = ExtResource("2_b41rh")
|
||||
oneshot_animation = ""
|
||||
|
||||
[node name="BGSprite2D" parent="Ground" index="2"]
|
||||
texture = ExtResource("3_p0pkx")
|
||||
|
||||
[node name="横幅" type="Sprite2D" parent="Ground/DeployLayer" index="2"]
|
||||
position = Vector2(320, -21)
|
||||
texture = ExtResource("6_tud2a")
|
||||
|
||||
[node name="LocalInspectable祭祀碗" parent="Ground/DeployLayer" index="3" instance=ExtResource("5_h38op")]
|
||||
position = Vector2(331, 88)
|
||||
texture = ExtResource("5_pbhsu")
|
||||
texture_cover = ExtResource("7_miqdc")
|
||||
|
||||
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
|
||||
texture = null
|
||||
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(37, 150, 660, 150)
|
||||
|
||||
[editable path="Ground"]
|
38
scene/ground/scene/c02/s15_1014家具版.tscn
Normal file
38
scene/ground/scene/c02/s15_1014家具版.tscn
Normal file
@ -0,0 +1,38 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://b21p53g42j2nt"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_2gio2"]
|
||||
[ext_resource type="Script" path="res://scene/ground/scene/c02/s15_animation.gd" id="2_vo24h"]
|
||||
[ext_resource type="Texture2D" uid="uid://imywljabomc7" path="res://asset/art/scene/c02/s15_1014家具版/bg_1014房间-家具版.png" id="3_khabk"]
|
||||
[ext_resource type="Texture2D" uid="uid://byyfo8n2vhk6e" path="res://asset/art/scene/c02/s15_1014家具版/fg_前景.png" id="4_rar4n"]
|
||||
|
||||
[node name="S15" type="Node2D"]
|
||||
|
||||
[node name="Ground" parent="." instance=ExtResource("1_2gio2")]
|
||||
scene_name = "c02_s15"
|
||||
player_y = 60
|
||||
|
||||
[node name="AnimationPlayer" parent="Ground" index="0"]
|
||||
script = ExtResource("2_vo24h")
|
||||
oneshot_animation = ""
|
||||
|
||||
[node name="BGSprite2D" parent="Ground" index="2"]
|
||||
texture = ExtResource("3_khabk")
|
||||
|
||||
[node name="portal_left" parent="Ground/DeployLayer" index="0"]
|
||||
position = Vector2(64, 13)
|
||||
|
||||
[node name="portal_right" parent="Ground/DeployLayer" index="1"]
|
||||
position = Vector2(521, 15)
|
||||
|
||||
[node name="MainPlayer" parent="Ground" index="5"]
|
||||
position = Vector2(64, 98)
|
||||
facing_direction = Vector2(1, 0)
|
||||
|
||||
[node name="FGSprite2D" parent="Ground/ParallaxForeground/FGParallaxLayer" index="0"]
|
||||
position = Vector2(-1, -15)
|
||||
texture = ExtResource("4_rar4n")
|
||||
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(37, 150, 600, 150)
|
||||
|
||||
[editable path="Ground"]
|
17
scene/ground/scene/c02/s15_animation.gd
Normal file
17
scene/ground/scene/c02/s15_animation.gd
Normal file
@ -0,0 +1,17 @@
|
||||
@tool
|
||||
extends AnimationRoot
|
||||
|
||||
|
||||
# 覆盖该方法
|
||||
func _default_data() -> Dictionary:
|
||||
return {}
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
super._ready()
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
|
||||
|
||||
func _on_ground_ready() -> void:
|
||||
pass
|
Loading…
Reference in New Issue
Block a user