优化第一章谢幕演出
This commit is contained in:
parent
9268dd36fe
commit
3ae63f2000
@ -3178,21 +3178,21 @@ animations = [{
|
||||
"speed": 30.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"duration": 6.0,
|
||||
"texture": ExtResource("767_juprk")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"duration": 6.0,
|
||||
"texture": ExtResource("768_pramq")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"duration": 6.0,
|
||||
"texture": ExtResource("769_rrudt")
|
||||
}, {
|
||||
"duration": 1.0,
|
||||
"duration": 6.0,
|
||||
"texture": ExtResource("770_t8u5r")
|
||||
}],
|
||||
"loop": false,
|
||||
"name": &"小蝶擦火柴蹲下起身",
|
||||
"speed": 5.0
|
||||
"speed": 30.0
|
||||
}, {
|
||||
"frames": [{
|
||||
"duration": 6.0,
|
||||
|
@ -28,6 +28,7 @@ ui_auto_saved,自动保存成功,,,,,Auto save successful
|
||||
ui_press_e,按 E 与场景互动,,,,,Press E to interact
|
||||
ui_press_q_to_exit,按 Q 可退出,,,,,
|
||||
ui_use_prop,按 E 使用道具,,,,,Press E to use prop
|
||||
ui_right_click_prop,右键点击可检阅道具,,,,,
|
||||
ui_left_mouse_shave,按住鼠标拖拽可刮开海报,,,,,
|
||||
ui_important_item_update,重要物品已更新(按 B 打开背包),,,,,
|
||||
ui_switch_prop,点击图标可切换道具(或按 Z/C),,,,,
|
||||
|
|
@ -23,6 +23,7 @@
|
||||
按 E 与场景互动 [ID:ui_press_e]
|
||||
按 Q 可退出 [ID:ui_press_q_to_exit]
|
||||
按 E 使用道具 [ID:ui_use_prop]
|
||||
右键点击可检阅道具 [ID:ui_right_click_prop]
|
||||
按住鼠标拖拽可刮开海报 [ID:ui_left_mouse_shave]
|
||||
重要物品已更新(按 B 打开背包) [ID:ui_important_item_update]
|
||||
点击图标可切换道具(或按 Z/C) [ID:ui_switch_prop]
|
||||
|
@ -7,16 +7,26 @@ const DEBUG = true
|
||||
const RES_FILE_FORMAT = ".tres"
|
||||
|
||||
## layers
|
||||
# 设置
|
||||
const CANVAS_LAYER_SETTINGS = 30
|
||||
# bag
|
||||
const CANVAS_LAYER_BAG = 25
|
||||
# dialog
|
||||
const CANVAS_LAYER_DIALOG = 23
|
||||
# main 场景的 UI 层(prop hud、上下mask、notification)
|
||||
const CANVAS_LAYER_UI = 22
|
||||
# 道具 inspector(prop/local)
|
||||
const CANVAS_LAYER_PROP_INSPECTOR = 20
|
||||
# ground loader 转场等 mask 层
|
||||
const CANVAS_LAYER_GROUND_MASK = 14
|
||||
# 特殊全屏效果(无 shading)
|
||||
const CANVAS_LAYER_EFFECT = 5
|
||||
# 全屏 shading
|
||||
const CANVAS_LAYER_SHADING = 10
|
||||
# 小游戏
|
||||
const CANVAS_LAYER_LITTLE_GAME = 5
|
||||
# 前景层
|
||||
const CANVAS_LAYER_FG = 2
|
||||
const CANVAS_LAYER_HD_ENTITY = 1
|
||||
|
||||
const DIALOG_IGNORE_INPUT = "ignore_input"
|
||||
|
||||
|
@ -36,7 +36,7 @@ func c02_fire_count_down_try_start():
|
||||
return
|
||||
c02_fire_count_down_timer = Timer.new()
|
||||
c02_fire_count_down_timer.autostart = true
|
||||
c02_fire_count_down_timer.wait_time = 60
|
||||
c02_fire_count_down_timer.wait_time = 10
|
||||
c02_fire_count_down_timer.one_shot = false
|
||||
c02_fire_count_down_timer.timeout.connect(_on_c02_fire_count_down_timeout)
|
||||
add_child(c02_fire_count_down_timer)
|
||||
@ -54,6 +54,8 @@ func _on_c02_fire_count_down_timeout():
|
||||
# c02_9小蝉_游戏失败效果
|
||||
var sfx = preload("uid://chebys30sd8ee")
|
||||
AudioManager.play_sfx(sfx)
|
||||
await get_tree().create_timer(1.0).timeout
|
||||
SceneManager.show_black_hand(true, 0.5)
|
||||
await get_tree().create_timer(3.0).timeout
|
||||
SceneManager.get_ground_loader().transition_to_scene("c02_s03", "4")
|
||||
# TODO 音效
|
||||
|
@ -22,6 +22,7 @@ func _ready():
|
||||
func get_ground_loader() -> GroundLoader:
|
||||
return get_node_or_null("/root/Main/GroundLoader") as GroundLoader
|
||||
|
||||
|
||||
# restart scene in debug launch...
|
||||
func is_restarting() -> bool:
|
||||
var ground = get_ground()
|
||||
@ -354,3 +355,16 @@ func show_bag():
|
||||
func quit_game():
|
||||
ArchiveManager.save_all()
|
||||
get_tree().quit()
|
||||
|
||||
|
||||
###### Effects
|
||||
|
||||
# 黑手
|
||||
var black_hand_scene = preload("uid://d2ftpqvtvl00h")
|
||||
|
||||
|
||||
func show_black_hand(play_sfx := true, queue_free_delay := 0.0):
|
||||
var hand = black_hand_scene.instantiate()
|
||||
hand.name = "BlackHand"
|
||||
get_tree().current_scene.add_child(hand)
|
||||
hand.run_effect(play_sfx, queue_free_delay)
|
||||
|
@ -25,7 +25,7 @@
|
||||
[ext_resource type="Texture2D" uid="uid://dy488fl2ijtb4" path="res://asset/art/ui/inverted_point_light_masks/021.png" id="23_t66ls"]
|
||||
[ext_resource type="Texture2D" uid="uid://bo2ee2uhsp6l2" path="res://asset/art/ui/inverted_point_light_masks/022.png" id="24_1ylis"]
|
||||
[ext_resource type="Texture2D" uid="uid://gxl7kkkkq5vd" path="res://asset/art/ui/inverted_point_light_masks/023.png" id="25_dvr6b"]
|
||||
[ext_resource type="Script" uid="uid://dts3vcdacsvh" path="res://scene/shading/fog.gd" id="26_wm1nd"]
|
||||
[ext_resource type="Script" uid="uid://dts3vcdacsvh" path="res://scene/effect/fog.gd" id="26_wm1nd"]
|
||||
|
||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_jw18h"]
|
||||
noise_type = 2
|
@ -1,6 +1,6 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://h0s5ms7r7d8g"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://cr3jq30n7muy4" path="res://scene/shading/ghost.gdshader" id="1_n4q4i"]
|
||||
[ext_resource type="Shader" uid="uid://cr3jq30n7muy4" path="res://scene/effect/ghost.gdshader" id="1_n4q4i"]
|
||||
[ext_resource type="Texture2D" uid="uid://bc64s5xfysrc3" path="res://asset/art/scene/c01/s07_书店外/bg_书店外_夜晚.png" id="4_lap87"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fv2fx"]
|
@ -1,13 +1,13 @@
|
||||
[gd_scene load_steps=43 format=3 uid="uid://3gk1gxwanw24"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://lxjflxn04684" path="res://scene/shading/shading_layer.gd" id="1_6w7er"]
|
||||
[ext_resource type="Script" uid="uid://lxjflxn04684" path="res://scene/effect/shading_layer.gd" id="1_6w7er"]
|
||||
[ext_resource type="Shader" uid="uid://do181iuabeoom" path="res://asset/shader/vignette.gdshader" id="1_akp6k"]
|
||||
[ext_resource type="Texture2D" uid="uid://dibfvlmarlkg6" path="res://asset/art/scene/c02/旧版/s01_街道/bg_公寓入口.png" id="2_r3a31"]
|
||||
[ext_resource type="Shader" uid="uid://bg7cjm3cust3p" path="res://asset/shader/glitcheffect.gdshader" id="3_qjv5u"]
|
||||
[ext_resource type="Shader" uid="uid://cwuxtdwmhahhp" path="res://asset/shader/palette.gdshader" id="4_n5nu8"]
|
||||
[ext_resource type="Shader" uid="uid://bcfnbll451i2r" path="res://asset/shader/fog.gdshader" id="4_sglhm"]
|
||||
[ext_resource type="Texture2D" uid="uid://36k1j0qw66tm" path="res://asset/shader/palette/bloodmoon21-1x.png" id="5_ios50"]
|
||||
[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/shading/fog.tscn" id="7_7084x"]
|
||||
[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/effect/fog.tscn" id="7_7084x"]
|
||||
[ext_resource type="Material" uid="uid://7wllwmfkfvsb" path="res://asset/shader/cloud.tres" id="7_cmfij"]
|
||||
[ext_resource type="Shader" uid="uid://3lssj7jwlhxl" path="res://asset/shader/chromatic_abberation.gdshader" id="8_b0unx"]
|
||||
[ext_resource type="Texture2D" uid="uid://bmlhwa80lywa3" path="res://asset/art/ui/inverted_point_light_masks/000.png" id="8_v5h2g"]
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
@ -3,15 +3,15 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bhl1b5ren8emk"
|
||||
path="res://.godot/imported/smoke.png-6594d98b9f388075486a8864d514070c.ctex"
|
||||
path="res://.godot/imported/smoke.png-d6fe8f3d722987ede5ddae176417a3ab.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://scene/shading/smoke.png"
|
||||
dest_files=["res://.godot/imported/smoke.png-6594d98b9f388075486a8864d514070c.ctex"]
|
||||
source_file="res://scene/effect/smoke.png"
|
||||
dest_files=["res://.godot/imported/smoke.png-d6fe8f3d722987ede5ddae176417a3ab.ctex"]
|
||||
|
||||
[params]
|
||||
|
@ -1,6 +1,6 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://bwce0niymxrou"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://bhl1b5ren8emk" path="res://scene/shading/smoke.png" id="1_705e3"]
|
||||
[ext_resource type="Texture2D" uid="uid://bhl1b5ren8emk" path="res://scene/effect/smoke.png" id="1_705e3"]
|
||||
|
||||
[sub_resource type="Curve" id="Curve_r8ddf"]
|
||||
_limits = [-2.0, 2.0, -1.0, 1.0]
|
21
scene/effect/黑手.gd
Normal file
21
scene/effect/黑手.gd
Normal file
@ -0,0 +1,21 @@
|
||||
extends CanvasLayer
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
layer = GlobalConfig.CANVAS_LAYER_EFFECT
|
||||
|
||||
|
||||
func run_effect(play_sfx := true, queue_free_delay := 0.0):
|
||||
if not is_node_ready():
|
||||
await ready
|
||||
var aplayer = $AnimationPlayer as AnimationPlayer
|
||||
aplayer.play("双手捂屏幕")
|
||||
if play_sfx:
|
||||
$"Sfx捂手音效".play()
|
||||
aplayer.animation_finished.connect(_on_animation_finished.bind(queue_free_delay))
|
||||
|
||||
|
||||
func _on_animation_finished(_a, queue_free_delay):
|
||||
if queue_free_delay > 0:
|
||||
await get_tree().create_timer(queue_free_delay).timeout
|
||||
queue_free()
|
1
scene/effect/黑手.gd.uid
Normal file
1
scene/effect/黑手.gd.uid
Normal file
@ -0,0 +1 @@
|
||||
uid://bd0ev6tgqlx3r
|
141
scene/effect/黑手.tscn
Normal file
141
scene/effect/黑手.tscn
Normal file
@ -0,0 +1,141 @@
|
||||
[gd_scene load_steps=9 format=3 uid="uid://d2ftpqvtvl00h"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://hv6bqkjw4clv" path="res://asset/art/scene/c02/结尾演出小蝶分镜特写/e_黑手左.png" id="1_mvq0r"]
|
||||
[ext_resource type="Script" uid="uid://bd0ev6tgqlx3r" path="res://scene/effect/黑手.gd" id="1_oa0hm"]
|
||||
[ext_resource type="Texture2D" uid="uid://coilus3pohj5j" path="res://asset/art/scene/c02/结尾演出小蝶分镜特写/e_黑手右.png" id="2_2evqm"]
|
||||
[ext_resource type="AudioStream" uid="uid://b8sbtn3l37uh" path="res://asset/audio/sfx/旧版/c02/红屏.mp3" id="2_gd1dm"]
|
||||
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_gy14l"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_oa0hm"]
|
||||
resource_name = "双手捂屏幕"
|
||||
length = 3.0
|
||||
step = 0.02
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("黑手左:position")
|
||||
tracks/0/interp = 2
|
||||
tracks/0/loop_wrap = false
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.5, 1, 2.8),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(-131, 253), Vector2(9, 217), Vector2(86, 191), Vector2(288, 132)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("黑手右:position")
|
||||
tracks/1/interp = 2
|
||||
tracks/1/loop_wrap = false
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.5, 1.02, 2.8),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(694, 244), Vector2(554, 216), Vector2(418, 190), Vector2(291, 132)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("黑手左:scale")
|
||||
tracks/2/interp = 2
|
||||
tracks/2/loop_wrap = false
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.9, 2.3, 2.8),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0.8, 0.8), Vector2(1.2, 1.2), Vector2(2, 2), Vector2(2.5, 2.5)]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("黑手右:scale")
|
||||
tracks/3/interp = 2
|
||||
tracks/3/loop_wrap = false
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.9, 2.3, 2.8),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0.8, 0.8), Vector2(1.2, 1.2), Vector2(2, 2), Vector2(2.5, 2.5)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_gd1dm"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("黑手左:position")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(-131, 253)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("黑手右:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(694, 244)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("黑手左:scale")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(1, 1)]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("黑手右:scale")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_43ipm"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_gd1dm"),
|
||||
&"双手捂屏幕": SubResource("Animation_oa0hm")
|
||||
}
|
||||
|
||||
[node name="黑手Effect" type="CanvasLayer"]
|
||||
script = ExtResource("1_oa0hm")
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_43ipm")
|
||||
}
|
||||
|
||||
[node name="Sfx捂手音效" type="AudioStreamPlayer" parent="."]
|
||||
stream = ExtResource("2_gd1dm")
|
||||
bus = &"game_sfx"
|
||||
script = ExtResource("3_gy14l")
|
||||
metadata/_custom_type_script = "uid://rq6w1vuhuq1m"
|
||||
|
||||
[node name="黑手左" type="Sprite2D" parent="."]
|
||||
position = Vector2(-131, 253)
|
||||
texture = ExtResource("1_mvq0r")
|
||||
offset = Vector2(150, 0)
|
||||
|
||||
[node name="黑手右" type="Sprite2D" parent="."]
|
||||
position = Vector2(694, 244)
|
||||
texture = ExtResource("2_2evqm")
|
||||
offset = Vector2(-150, 0)
|
@ -1,124 +0,0 @@
|
||||
@tool
|
||||
extends Node2D
|
||||
|
||||
signal sign_mark_offset_updated
|
||||
|
||||
# sign_mark 节点在 ready 时会直接读取
|
||||
@export var sign_mark_offset := Vector2.ZERO:
|
||||
set(val):
|
||||
sign_mark_offset = val
|
||||
sign_mark_offset_updated.emit(val)
|
||||
@export var reload := false:
|
||||
set(val):
|
||||
_reload()
|
||||
reload = false
|
||||
@export var sprite_name := "name":
|
||||
set(val):
|
||||
if sprite_name and sprite_name != val:
|
||||
_remove_sprite(sprite_name)
|
||||
sprite_name = val
|
||||
_reload()
|
||||
@export var texture: Texture2D:
|
||||
set(val):
|
||||
texture = val
|
||||
_reload()
|
||||
@export var sprite_scale := 1.0:
|
||||
set(val):
|
||||
sprite_scale = val
|
||||
_update_sprite_transform(true)
|
||||
@export var sprite_ref: Sprite2D
|
||||
|
||||
const RATIO = 4.0
|
||||
|
||||
@onready var sign_mark = %Sign as Sign
|
||||
@onready var area2d = %Area2D as Area2D
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
_reload()
|
||||
set_notify_transform(true)
|
||||
# set_notify_local_transform(true)
|
||||
item_rect_changed.connect(_update_sprite_transform)
|
||||
if Engine.is_editor_hint():
|
||||
return
|
||||
area2d.body_entered.connect(_reset)
|
||||
area2d.body_exited.connect(_on_cancel)
|
||||
sign_mark.interacted.connect(_on_interacted)
|
||||
sign_mark.cancel.connect(_on_cancel)
|
||||
|
||||
|
||||
func _notification(what: int) -> void:
|
||||
if what == NOTIFICATION_TRANSFORM_CHANGED:
|
||||
if not is_node_ready():
|
||||
await ready
|
||||
_update_sprite_transform()
|
||||
|
||||
|
||||
func _reload():
|
||||
if not texture or not sprite_name:
|
||||
return
|
||||
var layer = _get_hd_layer()
|
||||
if not layer:
|
||||
return
|
||||
sprite_ref = layer.get_node_or_null(sprite_name) as Sprite2D
|
||||
if not sprite_ref:
|
||||
sprite_ref = Sprite2D.new()
|
||||
layer.add_child(sprite_ref)
|
||||
sprite_ref.owner = layer
|
||||
sprite_ref.name = sprite_name
|
||||
sprite_ref.texture = texture
|
||||
sprite_ref.z_index = 0
|
||||
sprite_ref.centered = true
|
||||
sprite_ref.visible = true
|
||||
_update_sprite_transform()
|
||||
|
||||
|
||||
func _remove_sprite(sprite_node_name):
|
||||
if sprite_ref:
|
||||
sprite_ref.queue_free()
|
||||
sprite_ref = null
|
||||
if not sprite_name:
|
||||
return
|
||||
var layer = _get_hd_layer()
|
||||
if layer:
|
||||
var sprite = layer.get_node_or_null(sprite_node_name)
|
||||
layer.remove_child(sprite)
|
||||
sprite.queue_free()
|
||||
|
||||
|
||||
func _get_hd_layer() -> CanvasLayer:
|
||||
return get_node_or_null("../../SubViewportContainer/SubViewport/HdLayer") as CanvasLayer
|
||||
|
||||
|
||||
func _update_sprite_transform(update_scale := false):
|
||||
if not sprite_ref:
|
||||
return
|
||||
sprite_ref.global_position = global_position * RATIO
|
||||
if update_scale:
|
||||
sprite_ref.scale = Vector2(sprite_scale, sprite_scale)
|
||||
|
||||
|
||||
var interacted = false
|
||||
var cancel_time = 0.0
|
||||
|
||||
|
||||
func _on_interacted() -> void:
|
||||
if Time.get_ticks_msec() - cancel_time < 700:
|
||||
return
|
||||
if interacted:
|
||||
_on_cancel()
|
||||
return
|
||||
interacted = true
|
||||
SceneManager.get_camera_marker().tween_zoom(1.8)
|
||||
SceneManager.focus_node(self)
|
||||
# DialogueManager.show_dialogue_balloon(dialog, "diyizhang_01_03_mimi3")
|
||||
|
||||
|
||||
func _on_cancel(_body = null):
|
||||
SceneManager.focus_player_and_reset_zoom()
|
||||
interacted = false
|
||||
cancel_time = Time.get_ticks_msec()
|
||||
|
||||
|
||||
func _reset(_body):
|
||||
interacted = false
|
@ -1 +0,0 @@
|
||||
uid://c5hjtm0kn3ig3
|
@ -1,39 +0,0 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://bj4ufua0b0k34"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://c5hjtm0kn3ig3" path="res://scene/entity/hd_entity.gd" id="1_fp2a8"]
|
||||
[ext_resource type="AudioStream" uid="uid://cvttds81trcoc" path="res://asset/audio/sfx/UI/click.wav" id="2_eiqig"]
|
||||
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_5dpvj"]
|
||||
[ext_resource type="PackedScene" uid="uid://c4tipnj1cr1j3" path="res://scene/entity/ux/sign.tscn" id="3_jupnr"]
|
||||
[ext_resource type="Texture2D" uid="uid://bei1s1uucktso" path="res://asset/art/tool/neutral_point_light.webp" id="3_oxpta"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_gffp4"]
|
||||
resource_local_to_scene = true
|
||||
size = Vector2(20, 70)
|
||||
|
||||
[node name="HdEntity" type="Marker2D"]
|
||||
script = ExtResource("1_fp2a8")
|
||||
|
||||
[node name="Sfx" type="AudioStreamPlayer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("2_eiqig")
|
||||
bus = &"game_sfx"
|
||||
script = ExtResource("3_5dpvj")
|
||||
|
||||
[node name="Sign" parent="." instance=ExtResource("3_jupnr")]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="PointLight2D" type="PointLight2D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
position = Vector2(0, -35)
|
||||
scale = Vector2(0.2, 0.2)
|
||||
energy = 0.0
|
||||
texture = ExtResource("3_oxpta")
|
||||
texture_scale = 0.5
|
||||
|
||||
[node name="Area2D" type="Area2D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
collision_layer = 0
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
|
||||
unique_name_in_owner = true
|
||||
shape = SubResource("RectangleShape2D_gffp4")
|
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=9 format=3 uid="uid://dayyx4jerj7io"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://dayyx4jerj7io"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bee4ot74k4wg2" path="res://scene/ground/ground.gd" id="1_0vrlo"]
|
||||
[ext_resource type="PackedScene" uid="uid://cjhw5ecygrqty" path="res://scene/player/main_player.tscn" id="3_atha7"]
|
||||
@ -6,13 +6,6 @@
|
||||
[ext_resource type="PackedScene" uid="uid://cqkeegrcdjyg4" path="res://scene/ground/camera/camera_focus_marker.tscn" id="4_mgk0a"]
|
||||
[ext_resource type="Script" uid="uid://dpnny2y808k71" path="res://config/audio/random_audio_stream_player.gd" id="5_7mb2q"]
|
||||
|
||||
[sub_resource type="GDScript" id="GDScript_qxugl"]
|
||||
script/source = "extends CanvasLayer
|
||||
|
||||
func _ready() -> void:
|
||||
layer = GlobalConfig.CANVAS_LAYER_HD_ENTITY
|
||||
"
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_p7aaq"]
|
||||
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1)
|
||||
|
||||
@ -72,22 +65,6 @@ offset = Vector2(0, -120)
|
||||
unique_name_in_owner = true
|
||||
points = PackedVector2Array(37, 150, 519, 150)
|
||||
|
||||
[node name="SubViewportContainer" type="SubViewportContainer" parent="."]
|
||||
offset_right = 2256.0
|
||||
offset_bottom = 1268.0
|
||||
scale = Vector2(0.25, 0.25)
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="SubViewport" type="SubViewport" parent="SubViewportContainer"]
|
||||
transparent_bg = true
|
||||
handle_input_locally = false
|
||||
canvas_item_default_texture_filter = 0
|
||||
size = Vector2i(2256, 1268)
|
||||
render_target_update_mode = 4
|
||||
|
||||
[node name="HdLayer" type="CanvasLayer" parent="SubViewportContainer/SubViewport"]
|
||||
script = SubResource("GDScript_qxugl")
|
||||
|
||||
[node name="DirectionalLight2D" type="DirectionalLight2D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
blend_mode = 2
|
||||
|
@ -1,38 +1,6 @@
|
||||
[gd_scene load_steps=9 format=3 uid="uid://clxgkj80yin2"]
|
||||
[gd_scene load_steps=2 format=3 uid="uid://clxgkj80yin2"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://ec4w1mj0g6hw" path="res://scene/ground/ground_loader.gd" id="1_6mjre"]
|
||||
[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/shading/fog.tscn" id="2_o1iiq"]
|
||||
[ext_resource type="Shader" uid="uid://bcfnbll451i2r" path="res://asset/shader/fog.gdshader" id="3_5t7s3"]
|
||||
[ext_resource type="Texture2D" uid="uid://dol25yn3fixim" path="res://asset/art/fog_mask.png" id="4_o1iiq"]
|
||||
|
||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_e16yg"]
|
||||
noise_type = 2
|
||||
fractal_type = 2
|
||||
|
||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_gvcke"]
|
||||
width = 1600
|
||||
height = 400
|
||||
seamless = true
|
||||
seamless_blend_skirt = 0.25
|
||||
noise = SubResource("FastNoiseLite_e16yg")
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_j5cou"]
|
||||
resource_local_to_scene = true
|
||||
shader = ExtResource("3_5t7s3")
|
||||
shader_parameter/noise = SubResource("NoiseTexture2D_gvcke")
|
||||
shader_parameter/grey_level = 0.6
|
||||
shader_parameter/speed = 0.5
|
||||
|
||||
[sub_resource type="SpriteFrames" id="SpriteFrames_fx3fv"]
|
||||
animations = [{
|
||||
"frames": [{
|
||||
"duration": 1.0,
|
||||
"texture": ExtResource("4_o1iiq")
|
||||
}],
|
||||
"loop": false,
|
||||
"name": &"default",
|
||||
"speed": 5.0
|
||||
}]
|
||||
|
||||
[node name="GroundLoader" type="Node2D"]
|
||||
script = ExtResource("1_6mjre")
|
||||
@ -67,12 +35,3 @@ grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
color = Color(0, 0, 0, 0)
|
||||
|
||||
[node name="Fog" parent="MaskLayer" instance=ExtResource("2_o1iiq")]
|
||||
visible = false
|
||||
z_index = 5
|
||||
material = SubResource("ShaderMaterial_j5cou")
|
||||
position = Vector2(330, -48)
|
||||
sprite_frames = SubResource("SpriteFrames_fx3fv")
|
||||
animation = &"default"
|
||||
frame = 0
|
||||
|
@ -105,6 +105,7 @@ func _on_paper_interacted():
|
||||
right_door.holding = false
|
||||
await SceneManager.get_inspector().quit_and_hidden
|
||||
$"捡起纸片后开门声".play()
|
||||
SceneManager.pop_center_notification(tr("ui_right_click_prop"))
|
||||
|
||||
|
||||
# 钢琴音效,每次按下播放不同音符
|
||||
|
@ -825,14 +825,7 @@ position = Vector2(21, 39)
|
||||
texture = ExtResource("3_vmr0f")
|
||||
offset = Vector2(0, 0)
|
||||
|
||||
[node name="SubViewportContainer" parent="Ground" index="7"]
|
||||
offset_top = -2.0
|
||||
offset_bottom = 1266.0
|
||||
|
||||
[node name="HdLayer" parent="Ground/SubViewportContainer/SubViewport" index="0"]
|
||||
layer = -1
|
||||
|
||||
[node name="DirectionalLight2D" parent="Ground" index="8"]
|
||||
[node name="DirectionalLight2D" parent="Ground" index="7"]
|
||||
rotation = -0.000622023
|
||||
energy = 0.3
|
||||
blend_mode = 1
|
||||
|
@ -24,7 +24,7 @@
|
||||
[ext_resource type="AudioStream" uid="uid://cwq0jaa708tf1" path="res://asset/audio/sfx/环境音/序章/02_孤儿院走廊_秋千声音.wav" id="12_huyl5"]
|
||||
[ext_resource type="PackedScene" uid="uid://cw3q5pvciumil" path="res://scene/entity/interactable.tscn" id="12_idjp0"]
|
||||
[ext_resource type="AudioStream" uid="uid://mfu0btujldql" path="res://asset/audio/sfx/环境音/序章/02_孤儿院走廊_跷跷板声音.wav" id="13_phmvd"]
|
||||
[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/shading/fog.tscn" id="14_d5def"]
|
||||
[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/effect/fog.tscn" id="14_d5def"]
|
||||
[ext_resource type="Shader" uid="uid://bcfnbll451i2r" path="res://asset/shader/fog.gdshader" id="15_22a7a"]
|
||||
[ext_resource type="Texture2D" uid="uid://b7gyapghy3tsy" path="res://asset/art/neutral_point_light.png" id="15_q7j0p"]
|
||||
[ext_resource type="AudioStream" uid="uid://bv7std2s8bb0p" path="res://asset/audio/sfx/环境音/序章/童谣.wav" id="15_qq2uh"]
|
||||
|
@ -6,7 +6,7 @@
|
||||
[ext_resource type="Texture2D" uid="uid://bbuskt4kwkwpl" path="res://asset/art/scene/c01/s07_书店外/bg_书店外_黄昏.png" id="3_l7171"]
|
||||
[ext_resource type="AudioStream" uid="uid://cxwvfeuq4o71o" path="res://asset/audio/sfx/环境音/序章/03_书店外黄昏.wav" id="3_na2nu"]
|
||||
[ext_resource type="Texture2D" uid="uid://dklacql2hdtwv" path="res://asset/art/scene/c01/s07_书店外/e_装饰 书店外黄昏.png" id="4_8do8y"]
|
||||
[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/shading/fog.tscn" id="4_62isb"]
|
||||
[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/effect/fog.tscn" id="4_62isb"]
|
||||
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_c7jb6"]
|
||||
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="4_ulvsd"]
|
||||
[ext_resource type="PackedScene" uid="uid://jr1yd46wm5je" path="res://scene/entity/note.tscn" id="5_3pha1"]
|
||||
|
@ -7,12 +7,12 @@
|
||||
[ext_resource type="Texture2D" uid="uid://gpwul4tcu43h" path="res://asset/art/scene/c01/s09_公寓楼外/bg_黄包车裁剪场景.png" id="3_828bq"]
|
||||
[ext_resource type="AudioStream" uid="uid://cyy88bgsvf3e2" path="res://asset/audio/sfx/环境音/序章/06_公寓楼道_花枯萎.wav" id="3_b5sdk"]
|
||||
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_3f7n1"]
|
||||
[ext_resource type="PackedScene" uid="uid://h0s5ms7r7d8g" path="res://scene/shading/ghost.tscn" id="4_wqm5r"]
|
||||
[ext_resource type="PackedScene" uid="uid://h0s5ms7r7d8g" path="res://scene/effect/ghost.tscn" id="4_wqm5r"]
|
||||
[ext_resource type="Script" uid="uid://bbg4vopj4apl6" path="res://scene/entity/audio/bgm_control.gd" id="5_hy0mc"]
|
||||
[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="5_pssh2"]
|
||||
[ext_resource type="AudioStream" uid="uid://c1orqd7uxh8iu" path="res://asset/audio/sfx/环境音/序章/05_诡异通用_2.wav" id="6_lrqbi"]
|
||||
[ext_resource type="Texture2D" uid="uid://dol25yn3fixim" path="res://asset/art/fog_mask.png" id="7_828bq"]
|
||||
[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/shading/fog.tscn" id="7_wrhtk"]
|
||||
[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/effect/fog.tscn" id="7_wrhtk"]
|
||||
[ext_resource type="Shader" uid="uid://bcfnbll451i2r" path="res://asset/shader/fog.gdshader" id="8_0ohlv"]
|
||||
[ext_resource type="SpriteFrames" uid="uid://c2peyi2l65h47" path="res://asset/art/gif/c01_公寓外街道/c01_公寓外街道_frames.tres" id="10_0ohlv"]
|
||||
[ext_resource type="Script" uid="uid://dxq5c05ab7uyu" path="res://scene/ground/script/c01/s00_ghost_footstep.gd" id="11_6w7lv"]
|
||||
|
@ -11,7 +11,7 @@
|
||||
[ext_resource type="PackedScene" uid="uid://svvlohuicvhf" path="res://scene/entity/ambient/light.tscn" id="5_kywnm"]
|
||||
[ext_resource type="PackedScene" uid="uid://dnbutraty2285" path="res://scene/entity/partical/particals_ash_vertical.tscn" id="6_mfjjt"]
|
||||
[ext_resource type="PackedScene" uid="uid://ci34db7xool2n" path="res://scene/ground/script/c01/s01_书店外_自动枯萎的花朵.tscn" id="7_aq8vg"]
|
||||
[ext_resource type="PackedScene" uid="uid://h0s5ms7r7d8g" path="res://scene/shading/ghost.tscn" id="8_gk0gq"]
|
||||
[ext_resource type="PackedScene" uid="uid://h0s5ms7r7d8g" path="res://scene/effect/ghost.tscn" id="8_gk0gq"]
|
||||
[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="9_nqlku"]
|
||||
[ext_resource type="Script" uid="uid://dxq5c05ab7uyu" path="res://scene/ground/script/c01/s00_ghost_footstep.gd" id="10_1tspp"]
|
||||
[ext_resource type="PackedScene" uid="uid://cn1ypquvs07wx" path="res://scene/ground/script/c01/s12_飘动的寻人启事.tscn" id="11_pwu7i"]
|
||||
@ -21,7 +21,7 @@
|
||||
[ext_resource type="SpriteFrames" uid="uid://db7m3aks5w65j" path="res://asset/art/gif/c01_书店外街道_夜晚小孩害怕/c01_书店外街道_夜晚小孩害怕_frames.tres" id="14_7jjl5"]
|
||||
[ext_resource type="PackedScene" uid="uid://b50n0hvs4yh75" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.tscn" id="14_ct084"]
|
||||
[ext_resource type="Script" uid="uid://cphfob11f7atx" path="res://addons/property-inspector/pro_animation_sprite2d/pro_animated_sprite.gd" id="14_guu7t"]
|
||||
[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/shading/fog.tscn" id="15_pvvjq"]
|
||||
[ext_resource type="PackedScene" uid="uid://bicuc35kbn8hd" path="res://scene/effect/fog.tscn" id="15_pvvjq"]
|
||||
[ext_resource type="Shader" uid="uid://bcfnbll451i2r" path="res://asset/shader/fog.gdshader" id="16_guu7t"]
|
||||
[ext_resource type="Texture2D" uid="uid://b7gyapghy3tsy" path="res://asset/art/neutral_point_light.png" id="17_nta2f"]
|
||||
[ext_resource type="Texture2D" uid="uid://5byh65ppidsu" path="res://asset/art/scene/c01/s07_书店外/书店外街道夜晚 参考.png" id="18_0xa0c"]
|
||||
|
@ -79,9 +79,6 @@ func _on_ground_ready() -> void:
|
||||
# 奠字 + 纸钱
|
||||
$"../DeployLayer/新背景_奠".visible = true
|
||||
|
||||
bully_layer = $"../DeployLayer/霸凌"
|
||||
burning_layer = $"../DeployLayer/火灾"
|
||||
|
||||
small_shoe = $"../DeployLayer/Pickable小鞋子" as Pickable2D
|
||||
|
||||
if ArchiveManager.get_global_value("c02_madman_interacted", false) and not data.camera_played:
|
||||
@ -109,6 +106,8 @@ func _on_ground_ready() -> void:
|
||||
elif data.camera_played:
|
||||
small_shoe.enabled = true
|
||||
|
||||
bully_layer = $"../DeployLayer/霸凌"
|
||||
burning_layer = $"../DeployLayer/火灾"
|
||||
if ArchiveManager.get_global_value("c02_ball_game_stage", 0) >= 3:
|
||||
_setup_bully_or_burning(true)
|
||||
|
||||
@ -178,7 +177,11 @@ func eavesdrop() -> void:
|
||||
ArchiveManager.set_global_entry("c02_eavesdrop_finished", true)
|
||||
|
||||
|
||||
func _setup_bully_or_burning(reenter_scene:=false):
|
||||
func _setup_bully_or_burning(reenter_scene := false):
|
||||
if not ArchiveManager.get_global_value("c02_eavesdrop_finished"):
|
||||
# 弹珠游戏结束后就开始霸凌,此时禁止偷听。第一章结束后(火灾结束),第二章再偷听
|
||||
$"../DeployLayer/Ambush偷听对话".enabled = false
|
||||
eavesdrop_window.visible = false
|
||||
if ArchiveManager.get_global_value("c02_burning_end"):
|
||||
# 火灾演出完全结束
|
||||
burning_layer.visible = false
|
||||
@ -226,6 +229,7 @@ func bully_ambush():
|
||||
sdf2d.finished.connect(func(): sdf2d.volume_db -= 5, CONNECT_ONE_SHOT)
|
||||
await animation_finished
|
||||
|
||||
|
||||
func bully_end():
|
||||
SceneManager.release_player()
|
||||
# #TODO 小猫玩具微亮
|
||||
@ -280,7 +284,6 @@ func _on_counter_interacted():
|
||||
SceneManager.release_player()
|
||||
|
||||
|
||||
|
||||
func run_away():
|
||||
SceneManager.pop_debug_dialog_info("美术", "牵手跑开")
|
||||
var player = SceneManager.get_player()
|
||||
|
@ -1022,9 +1022,9 @@ position = Vector2(-88, -7)
|
||||
scale = Vector2(1.08, 1.08)
|
||||
|
||||
[node name="PlayerLine2D" parent="Ground/ParallaxForeground" index="2"]
|
||||
points = PackedVector2Array(37, 150, 2350, 150)
|
||||
points = PackedVector2Array(37, 150, 2250, 150)
|
||||
|
||||
[node name="DirectionalLight2D" parent="Ground" index="8"]
|
||||
[node name="DirectionalLight2D" parent="Ground" index="7"]
|
||||
visible = false
|
||||
energy = 0.6
|
||||
blend_mode = 1
|
||||
|
@ -21,10 +21,10 @@ func _ready() -> void:
|
||||
DialogueManager.show_dialogue_balloon(dialogue, "c02_s03_敲门游戏intro")
|
||||
await DialogueManager.dialogue_ended
|
||||
if (
|
||||
# 未偷听,或已敲门成功,则禁用
|
||||
not ArchiveManager.get_global_value("c02_eavesdrop_finished", false)
|
||||
or ArchiveManager.get_global_value("c02_meat_dropping", false)
|
||||
or ArchiveManager.get_global_value("c02_meat_given", false)
|
||||
# not ArchiveManager.get_global_value("c02_eavesdrop_finished", false) or
|
||||
# ArchiveManager.get_global_value("c02_meat_dropping", false) or
|
||||
# 敲门成功,则禁用
|
||||
ArchiveManager.get_global_value("c02_meat_given", false)
|
||||
):
|
||||
button.disabled = true
|
||||
else:
|
||||
|
Loading…
Reference in New Issue
Block a user