音频ogg适配性完整检查;编译器@warning_ignore处理;弹珠游戏独立 dialog balloon;二楼追猫猪头怪allow_restart_game潜在bug修复;
This commit is contained in:
parent
d6e4f01b25
commit
b0e3b1ad4d
@ -1,24 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://w6tooix5scis"
|
||||
path="res://.godot/imported/摇啊摇诡异pipa.WAV-c8e618d96347eea3669bc9c4eab37cf3.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/audio/BGM/摇啊摇诡异pipa.WAV"
|
||||
dest_files=["res://.godot/imported/摇啊摇诡异pipa.WAV-c8e618d96347eea3669bc9c4eab37cf3.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=0
|
@ -1,19 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="mp3"
|
||||
type="AudioStreamMP3"
|
||||
uid="uid://csgc3241h5vin"
|
||||
path="res://.godot/imported/鬼差追击.MP3-499cf5622e51384ac240c25cf08d7314.mp3str"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/audio/sfx/bgm/序章/鬼差追击.MP3"
|
||||
dest_files=["res://.godot/imported/鬼差追击.MP3-499cf5622e51384ac240c25cf08d7314.mp3str"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
@ -1,19 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="mp3"
|
||||
type="AudioStreamMP3"
|
||||
uid="uid://cm80s51o5xt0r"
|
||||
path="res://.godot/imported/打开铁门后不循环背景音.MP3-4616ac2763069f54bec960c43f9c2510.mp3str"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://asset/audio/sfx/bgm/第一章/打开铁门后不循环背景音.MP3"
|
||||
dest_files=["res://.godot/imported/打开铁门后不循环背景音.MP3-4616ac2763069f54bec960c43f9c2510.mp3str"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
@ -120,7 +120,7 @@ custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="./xiandie.dmg"
|
||||
export_path="../xiandie.dmg"
|
||||
patches=PackedStringArray()
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
|
@ -1,13 +1,23 @@
|
||||
[gd_resource type="Resource" script_class="VibeGroupCollection" load_steps=13 format=3 uid="uid://bfhwn1v0c2io7"]
|
||||
[gd_resource type="Resource" script_class="VibeGroupCollection" load_steps=22 format=3 uid="uid://bfhwn1v0c2io7"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cy1ngx5no67v" path="res://manager/audio_manager/vibe_group.gd" id="1_0bbao"]
|
||||
[ext_resource type="Script" uid="uid://bo8gxwe8hfs01" path="res://manager/audio_manager/vibe_group_collection.gd" id="2_h4hph"]
|
||||
[ext_resource type="AudioStream" uid="uid://c2xr0rfmo60gn" path="res://asset/audio/sfx/环境音/白噪音/白噪声书店外.ogg" id="2_wktgr"]
|
||||
[ext_resource type="Script" uid="uid://eydkufjbf7n6" path="res://manager/audio_manager/embellishment.gd" id="3_scrw7"]
|
||||
[ext_resource type="AudioStream" uid="uid://b2mudqvq1dmng" path="res://asset/audio/sfx/环境音/白噪音/白噪声房间里1.ogg" id="4_is4rg"]
|
||||
[ext_resource type="AudioStream" uid="uid://o57tyriodr0c" path="res://asset/audio/sfx/环境音/白噪音/白噪声房间里2.ogg" id="5_ldvt0"]
|
||||
[ext_resource type="AudioStream" uid="uid://dvc2emnfcmabx" path="res://asset/audio/sfx/环境音/白噪音/白噪声楼道1.ogg" id="6_vm1rc"]
|
||||
[ext_resource type="AudioStream" uid="uid://6oc0cgc3mbqb" path="res://asset/audio/sfx/环境音/白噪音/白噪声楼道2.ogg" id="7_lca37"]
|
||||
[ext_resource type="AudioStream" uid="uid://c6ehv3lgway26" path="res://asset/audio/sfx/环境音/白噪音/白噪声诡异室外.ogg" id="8_646q0"]
|
||||
[ext_resource type="AudioStream" uid="uid://s7uigovfp5g3" path="res://asset/audio/sfx/环境音/第一章/火灾演出.ogg" id="9_wuwx1"]
|
||||
[ext_resource type="AudioStream" uid="uid://d0ef0felylt8d" path="res://asset/audio/sfx/环境音/第一章/氛围不受欢迎的存在.ogg" id="10_uwtc1"]
|
||||
[ext_resource type="AudioStream" uid="uid://bal423qlb3jp2" path="res://asset/audio/sfx/环境音/点缀音/sfx_夜晚虫鸣.ogg" id="11_scrw7"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_bjndi"]
|
||||
script = ExtResource("1_0bbao")
|
||||
group_name = &"c01_书店外"
|
||||
group_db = -5.0
|
||||
base_sound = ExtResource("2_wktgr")
|
||||
base_sound_db = 0.0
|
||||
embellishments = Array[ExtResource("3_scrw7")]([])
|
||||
metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||
@ -16,6 +26,7 @@ metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||
script = ExtResource("1_0bbao")
|
||||
group_name = &"c02_房间里1"
|
||||
group_db = -5.0
|
||||
base_sound = ExtResource("4_is4rg")
|
||||
base_sound_db = 0.0
|
||||
embellishments = Array[ExtResource("3_scrw7")]([])
|
||||
metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||
@ -24,6 +35,7 @@ metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||
script = ExtResource("1_0bbao")
|
||||
group_name = &"c02_房间里2"
|
||||
group_db = -5.0
|
||||
base_sound = ExtResource("5_ldvt0")
|
||||
base_sound_db = 0.0
|
||||
embellishments = Array[ExtResource("3_scrw7")]([])
|
||||
metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||
@ -32,6 +44,7 @@ metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||
script = ExtResource("1_0bbao")
|
||||
group_name = &"c02_楼道1"
|
||||
group_db = -5.0
|
||||
base_sound = ExtResource("6_vm1rc")
|
||||
base_sound_db = 0.0
|
||||
embellishments = Array[ExtResource("3_scrw7")]([])
|
||||
metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||
@ -40,6 +53,7 @@ metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||
script = ExtResource("1_0bbao")
|
||||
group_name = &"c02_楼道2"
|
||||
group_db = -5.0
|
||||
base_sound = ExtResource("7_lca37")
|
||||
base_sound_db = 0.0
|
||||
embellishments = Array[ExtResource("3_scrw7")]([])
|
||||
metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||
@ -48,6 +62,7 @@ metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||
script = ExtResource("1_0bbao")
|
||||
group_name = &"c02_诡异室外"
|
||||
group_db = -5.0
|
||||
base_sound = ExtResource("8_646q0")
|
||||
base_sound_db = 0.0
|
||||
embellishments = Array[ExtResource("3_scrw7")]([])
|
||||
metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||
@ -56,6 +71,7 @@ metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||
script = ExtResource("1_0bbao")
|
||||
group_name = &"c02_火灾"
|
||||
group_db = 0.0
|
||||
base_sound = ExtResource("9_wuwx1")
|
||||
base_sound_db = 0.0
|
||||
embellishments = Array[ExtResource("3_scrw7")]([])
|
||||
metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||
@ -64,6 +80,7 @@ metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||
script = ExtResource("1_0bbao")
|
||||
group_name = &"氛围_不受欢迎的存在"
|
||||
group_db = 0.0
|
||||
base_sound = ExtResource("10_uwtc1")
|
||||
base_sound_db = -12.0
|
||||
embellishments = Array[ExtResource("3_scrw7")]([])
|
||||
metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||
@ -72,6 +89,7 @@ metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||
script = ExtResource("1_0bbao")
|
||||
group_name = &"夜晚虫鸣"
|
||||
group_db = 0.0
|
||||
base_sound = ExtResource("11_scrw7")
|
||||
base_sound_db = -10.0
|
||||
embellishments = Array[ExtResource("3_scrw7")]([])
|
||||
metadata/_custom_type_script = "uid://cy1ngx5no67v"
|
||||
|
@ -14,6 +14,9 @@ var _base_db := 0.0:
|
||||
|
||||
|
||||
func _init(group: VibeGroup):
|
||||
if not group or not group.base_sound:
|
||||
printerr("VibeGroupPlayer: vibe_group or base sound is null, cannot initialize.")
|
||||
return
|
||||
vibe_group = group
|
||||
# 初始化基础播放器
|
||||
_base_player = AudioStreamPlayer.new()
|
||||
@ -80,6 +83,9 @@ func set_volume_linear(volume: float):
|
||||
|
||||
|
||||
func play():
|
||||
if not vibe_group or not vibe_group.base_sound:
|
||||
printerr("VibeGroupPlayer: vibe_group or base sound is null, cannot play.")
|
||||
return
|
||||
_base_player.play()
|
||||
# 设置并启动所有点缀音的计时器
|
||||
for i in range(vibe_group.embellishments.size()):
|
||||
|
@ -2,7 +2,9 @@
|
||||
class_name VibeSfx
|
||||
extends Node
|
||||
|
||||
@warning_ignore("unused_private_class_variable")
|
||||
@export_tool_button("播放") var _play = _debug_play.bind(true)
|
||||
@warning_ignore("unused_private_class_variable")
|
||||
@export_tool_button("停止") var _stop = _debug_play.bind(false)
|
||||
|
||||
## VibeSfx.gd
|
||||
|
@ -77,20 +77,25 @@ func _on_timer_timeout():
|
||||
if _on_timer_timeout_counter % 6 == 0:
|
||||
print_global_info()
|
||||
|
||||
|
||||
# @warning_ignore("intege")
|
||||
func print_global_info():
|
||||
var archive := ArchiveManager.archive
|
||||
if not archive or not config:
|
||||
return
|
||||
@warning_ignore("integer_division")
|
||||
var hour := archive.game_seconds / 3600
|
||||
@warning_ignore("integer_division")
|
||||
var minute := (archive.game_seconds % 3600) / 60
|
||||
var second := archive.game_seconds % 60
|
||||
var round_info = "r" + str(config.game_rounds) + "_c" + str(archive.current_chapter)
|
||||
var game_time_info = "game:" + str(hour) + ":" + str(minute) + ":" + str(second)
|
||||
# get ticks since game app run
|
||||
var ticks = Time.get_ticks_msec()
|
||||
@warning_ignore("integer_division")
|
||||
hour = ticks / 3600000
|
||||
@warning_ignore("integer_division")
|
||||
minute = (ticks % 3600000) / 60000
|
||||
@warning_ignore("integer_division")
|
||||
second = (ticks % 60000) / 1000
|
||||
var msec = ticks % 1000
|
||||
var tick_time_info = (
|
||||
|
@ -70,7 +70,7 @@ func _on_global_stage_updated(e: StringName, s: int):
|
||||
_on_stage_updated()
|
||||
|
||||
|
||||
func _on_ground_ready(ground: Ground2D):
|
||||
func _on_ground_ready(_ground: Ground2D):
|
||||
pass
|
||||
|
||||
|
||||
|
@ -8,8 +8,11 @@ enum VIBE {
|
||||
}
|
||||
|
||||
# 从 ground loader 控制该信号
|
||||
@warning_ignore("unused_signal")
|
||||
signal ground_ready(ground: Ground2D)
|
||||
@warning_ignore("unused_signal")
|
||||
signal ground_start
|
||||
@warning_ignore("unused_signal")
|
||||
signal ground_transition_pre_paused
|
||||
|
||||
|
||||
|
@ -273,9 +273,7 @@ func _on_balloon_gui_input(event: InputEvent) -> void:
|
||||
# 根据全局配置,是否允许忽略输入
|
||||
# ignore 的情况下不需要 block input
|
||||
if temporary_game_states.has(GlobalConfig.DIALOG_IGNORE_INPUT):
|
||||
if not GlobalConfig.DEBUG:
|
||||
return
|
||||
SceneManager.pop_debug_dialog_info("程序", "调试模式 DIALOG_IGNORE_INPUT 不生效")
|
||||
return
|
||||
|
||||
if current_line_ban_skip:
|
||||
# debug 模式下不禁用
|
||||
|
@ -163,7 +163,6 @@ func _area_entered(_area = null):
|
||||
|
||||
func _do_trigger():
|
||||
var time = Time.get_ticks_msec()
|
||||
var has_triggered = false
|
||||
# 确保只有一个线程进入该逻辑,因为有时 player 碰撞和首次进入 tree 都会触发该方法
|
||||
if not trigger_mutex.try_lock():
|
||||
print("Ambush trigger mutex lock fail, name=", name)
|
||||
|
@ -1,6 +1,7 @@
|
||||
extends Control
|
||||
class_name ContentInspector
|
||||
|
||||
@warning_ignore("unused_signal")
|
||||
signal exit
|
||||
|
||||
@onready var label = $TipContainer/Label as Label
|
||||
|
@ -121,7 +121,7 @@ func transition_to_scene(scene_name: String, portal: String, wait_time := 1.4) -
|
||||
print("GroundLoader transition_to_scene: pause prev ground.")
|
||||
# 先发送,再暂停,允许 sfx 等节点执行 ease out
|
||||
SceneManager.ground_transition_pre_paused.emit()
|
||||
ground.process_mode = Node.PROCESS_MODE_DISABLED
|
||||
ground.set_deferred("process_mode", Node.PROCESS_MODE_DISABLED)
|
||||
# print reenter lock status
|
||||
print("GroundLoader transition_to_scene: reenter lock status: ", ground.reenter_lock)
|
||||
var scene_path = GROUND_SCENE_PATH_DICT.get(scene_name)
|
||||
@ -159,10 +159,6 @@ var _allow_ground_start := false:
|
||||
"GroundLoader _allow_ground_start: unfrozen. frozen duration(ms):",
|
||||
Time.get_ticks_msec() - _frozen_start_time_ms
|
||||
)
|
||||
# else:
|
||||
# print("GroundLoader _allow_ground_start: frozen")
|
||||
# ground.process_mode = Node.PROCESS_MODE_DISABLED
|
||||
# _frozen_start_time_ms = Time.get_ticks_msec()
|
||||
|
||||
|
||||
func _update_archive():
|
||||
@ -183,7 +179,7 @@ func _do_transition(scene_name: String) -> void:
|
||||
# 其中间接用到了 GroundLoader 的 ground
|
||||
ground = _load_ground_node(scene_name)
|
||||
if not _allow_ground_start:
|
||||
ground.process_mode = Node.PROCESS_MODE_DISABLED
|
||||
ground.set_deferred("process_mode", Node.PROCESS_MODE_DISABLED)
|
||||
print("GroundLoader not _allow_ground_start: frozen (delayed)")
|
||||
_frozen_start_time_ms = Time.get_ticks_msec()
|
||||
_add_ground()
|
||||
|
@ -6,7 +6,7 @@
|
||||
[ext_resource type="AudioStream" uid="uid://cbciw1yg7uc8t" path="res://asset/audio/sfx/环境音/序章/01_院长房间_屋外钟声.ogg" id="3_6ir3d"]
|
||||
[ext_resource type="Texture2D" uid="uid://ds8xteyjjrqoy" path="res://asset/art/scene/c01/s05_院长房间/全局参考.png" id="3_7u4bh"]
|
||||
[ext_resource type="AudioStream" uid="uid://c45hu50ivpd42" path="res://asset/audio/sfx/交互/序章/01_院长房间_扶正相框.ogg" id="3_jk3np"]
|
||||
[ext_resource type="AudioStream" uid="uid://b5iv527ujwp0i" path="res://asset/audio/peiyin/c01/c01_1小小蝶_开头阅读1.ogg" id="3_sluu3"]
|
||||
[ext_resource type="AudioStream" uid="uid://bnqapiuht2hqc" path="res://asset/audio/peiyin/c01/c01_1小小蝶_开头阅读1.ogg" id="3_sluu3"]
|
||||
[ext_resource type="Texture2D" uid="uid://blv2ftjrmvlmh" path="res://asset/art/scene/c01/s05_院长房间/fg_前景.png" id="3_vmr0f"]
|
||||
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_1jor4"]
|
||||
[ext_resource type="Texture2D" uid="uid://bh7l6ykoayvve" path="res://asset/art/scene/c01/s05_院长房间/e_门.png" id="4_gdhoy"]
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dayyx4jerj7io" path="res://scene/ground/ground.tscn" id="1_b3cca"]
|
||||
[ext_resource type="Script" uid="uid://6q2pfbqsw10t" path="res://scene/ground/scene/c01/s08_书店.gd" id="2_0lque"]
|
||||
[ext_resource type="AudioStream" uid="uid://d31pxjnnvqdpn" path="res://asset/audio/sfx/环境音/序章/04_书店内.ogg" id="3_0x288"]
|
||||
[ext_resource type="AudioStream" uid="uid://nklo52h3ox02" path="res://asset/audio/sfx/环境音/序章/04_书店内.ogg" id="3_0x288"]
|
||||
[ext_resource type="Texture2D" uid="uid://coo8sw8yigii6" path="res://asset/art/scene/c01/s08_书店/bg_书店.png" id="3_322m4"]
|
||||
[ext_resource type="AudioStream" uid="uid://vygcjwgo1j4a" path="res://asset/audio/sfx/环境音/序章/04_书店内_奶奶写字.ogg" id="4_5j1ov"]
|
||||
[ext_resource type="PackedScene" uid="uid://bnf3lkcbpx1ar" path="res://scene/entity/ambush.tscn" id="4_c4lg5"]
|
||||
|
@ -86,7 +86,7 @@ func intro() -> void:
|
||||
|
||||
|
||||
func _intro_dialog() -> void:
|
||||
DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s12_诡异的书店外发钱")
|
||||
DialogueManager.show_dialogue_balloon(dialogue_c01, "c01_s12_诡异的书店外发钱", [GlobalConfig.DIALOG_IGNORE_INPUT])
|
||||
|
||||
|
||||
func ambush_begger_interacted():
|
||||
|
@ -16,7 +16,7 @@
|
||||
[ext_resource type="PackedScene" uid="uid://ci34db7xool2n" path="res://scene/ground/script/c01/s01_书店外_自动枯萎的花朵.tscn" id="7_aq8vg"]
|
||||
[ext_resource type="AudioStream" uid="uid://c5rgfl6ub4chw" path="res://asset/audio/sfx/交互/序章/sfx_鬼差擦肩而过.ogg" id="7_denrd"]
|
||||
[ext_resource type="PackedScene" uid="uid://h0s5ms7r7d8g" path="res://scene/effect/ghost.tscn" id="8_gk0gq"]
|
||||
[ext_resource type="AudioStream" uid="uid://csgc3241h5vin" path="res://asset/audio/sfx/bgm/序章/鬼差追击.ogg" id="9_denrd"]
|
||||
[ext_resource type="AudioStream" uid="uid://cj167fmakl7vr" path="res://asset/audio/sfx/bgm/序章/鬼差追击.ogg" id="9_denrd"]
|
||||
[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"]
|
||||
|
@ -6,7 +6,7 @@
|
||||
[ext_resource type="SpriteFrames" uid="uid://3nas025c2c5u" path="res://asset/art/gif/c02_杂项/c02_杂项_frames.tres" id="4_gd6xp"]
|
||||
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_ygnci"]
|
||||
[ext_resource type="PackedScene" uid="uid://61pis75a8fdq" path="res://scene/entity/portal.tscn" id="5_00b7a"]
|
||||
[ext_resource type="AudioStream" uid="uid://cm80s51o5xt0r" path="res://asset/audio/sfx/bgm/第一章/打开铁门后不循环背景音.ogg" id="5_qt2qg"]
|
||||
[ext_resource type="AudioStream" uid="uid://bk5cdc06s8x10" path="res://asset/audio/sfx/bgm/第一章/打开铁门后不循环背景音.ogg" id="5_qt2qg"]
|
||||
[ext_resource type="Texture2D" uid="uid://f8yjp5ggr8qw" path="res://asset/art/scene/c02/s03_公寓一楼院子/算卦布.png" id="6_1tart"]
|
||||
[ext_resource type="Texture2D" uid="uid://0uh6qaalhqju" path="res://asset/art/scene/c02/s11_一楼火灾/总背景/bg_院子1楼火灾.png" id="6_d7h4s"]
|
||||
[ext_resource type="AudioStream" uid="uid://bhaws2ungqaf5" path="res://asset/audio/sfx/交互/角色/sfx_哼歌.ogg" id="6_jhod7"]
|
||||
@ -55,7 +55,7 @@
|
||||
[ext_resource type="PackedScene" uid="uid://0sofmhrl358m" path="res://scene/entity/npc.tscn" id="35_plfv5"]
|
||||
[ext_resource type="Texture2D" uid="uid://uh2ruegr3d7v" path="res://asset/art/gif/c02_一楼火灾/7-最左木箱 烧痕.png" id="36_rnk1v"]
|
||||
[ext_resource type="SpriteFrames" uid="uid://b0icyhxpj16tv" path="res://asset/art/gif/c02_谢幕演出/c02_谢幕演出_frames.tres" id="39_rnk1v"]
|
||||
[ext_resource type="AudioStream" uid="uid://dxoj6vg0wrj0j" path="res://asset/audio/peiyin/c02/c02_8小男孩童谣.ogg" id="46_qqdxs"]
|
||||
[ext_resource type="AudioStream" uid="uid://broetvd8vuc05" path="res://asset/audio/peiyin/c02/c02_8小男孩童谣.ogg" id="46_qqdxs"]
|
||||
[ext_resource type="Script" uid="uid://cnt01hiw52bmn" path="res://scene/entity/ux/sign_snapper.gd" id="51_vddfx"]
|
||||
[ext_resource type="AudioStream" uid="uid://bxp3f263aaqkp" path="res://asset/audio/sfx/脚步/02_室外_1.ogg" id="52_qqdxs"]
|
||||
[ext_resource type="AudioStream" uid="uid://dwa7xdvg5o0i" path="res://asset/audio/sfx/脚步/02_室外_3.ogg" id="53_jhod7"]
|
||||
|
@ -6,7 +6,7 @@ extends AnimationRoot
|
||||
func _default_data() -> Dictionary:
|
||||
return {
|
||||
"hole_interacted_times": 0,
|
||||
"first_entered": true
|
||||
"has_entered": false
|
||||
}
|
||||
|
||||
|
||||
@ -63,8 +63,12 @@ func _on_ground_ready() -> void:
|
||||
boxcat_portal.get_node("Sprite2D").texture = preload("uid://b8sv81cw7mcn4") # e_墙上纸张_blood
|
||||
$"../DeployLayer/Closeup讨厌他们".enabled = true
|
||||
|
||||
if data["first_entered"]:
|
||||
set_data("first_entered", false)
|
||||
if not data["has_entered"]:
|
||||
var player = SceneManager.get_player()
|
||||
player.set_facing_direction(Vector2.LEFT)
|
||||
player.global_position.x = 670
|
||||
set_data("has_entered", true)
|
||||
await Util.wait(1.0)
|
||||
SceneManager.pop_os_with_str("c02_离开红色演出")
|
||||
|
||||
|
||||
|
@ -16,19 +16,32 @@ func _ready() -> void:
|
||||
func _on_ground_ready() -> void:
|
||||
pass
|
||||
|
||||
|
||||
# ambush
|
||||
func knock_light_door():
|
||||
var layer = $"../盒子猫CanvasLayer"
|
||||
layer.disable_crawl = true
|
||||
$"../DeployLayer/Ambush终点光芒互动".enabled = false
|
||||
# 禁止猪头怪动画播放结束后重开游戏
|
||||
var boss = get_node_or_null("../DeployLayer/追猫猪头怪_左侧")
|
||||
if boss:
|
||||
boss.allow_restart_game = false
|
||||
boss = get_node_or_null("../DeployLayer/追猫猪头怪_右侧")
|
||||
if boss:
|
||||
boss.allow_restart_game = false
|
||||
boss = get_node_or_null("追猫猪头怪_传送")
|
||||
if boss:
|
||||
boss.allow_restart_game = false
|
||||
do_knock_light_door.call_deferred()
|
||||
|
||||
|
||||
func do_knock_light_door():
|
||||
var knock_stream = preload("uid://6q5qi1qon35r")
|
||||
var player = SceneManager.get_player()
|
||||
# 禁止猪头怪动画播放结束后重开游戏
|
||||
$"../DeployLayer/追猫猪头怪_传送".allow_restart_game = false
|
||||
SceneManager.lock_player()
|
||||
# 一直循环下去
|
||||
for _i in range(100):
|
||||
AudioManager.play_sfx(knock_stream)
|
||||
SceneManager.lock_player(0, 6)
|
||||
SceneManager.player_action(6)
|
||||
await Util.wait(0.5)
|
||||
# 被抓时打断
|
||||
if not player.visible or player.hide_sprite:
|
||||
@ -50,4 +63,5 @@ func _outtro_show():
|
||||
await Util.wait(10.0)
|
||||
# 盒子猫逃脱成功/被抓走,游戏结束,解锁瞎子卧室门
|
||||
ArchiveManager.set_global_entry(&"c02_the_blind_room_unlocked", true)
|
||||
SceneManager.unlock_player()
|
||||
SceneManager.get_ground_loader().transition_to_scene("c02_s08", "1")
|
||||
|
@ -14,7 +14,7 @@ func _on_global_stage_updated(e: StringName, s: int):
|
||||
super._on_global_stage_updated(e, s)
|
||||
|
||||
|
||||
func _on_ground_ready(ground: Ground2D):
|
||||
func _on_ground_ready(_ground: Ground2D):
|
||||
_on_stage_updated()
|
||||
|
||||
|
||||
|
@ -14,7 +14,7 @@ func _on_global_stage_updated(e: StringName, s: int):
|
||||
super._on_global_stage_updated(e, s)
|
||||
|
||||
|
||||
func _on_ground_ready(ground: Ground2D):
|
||||
func _on_ground_ready(_ground: Ground2D):
|
||||
_on_stage_updated()
|
||||
|
||||
func _on_pre_stage_updated():
|
||||
|
@ -15,7 +15,7 @@ func _on_global_stage_updated(e: StringName, s: int):
|
||||
super._on_global_stage_updated(e, s)
|
||||
|
||||
|
||||
func _on_ground_ready(ground: Ground2D):
|
||||
func _on_ground_ready(_ground: Ground2D):
|
||||
if $"Inspectable小猫纸条".icount > 0:
|
||||
EventManager.set_stage_if_greater(pre_event_name, 4)
|
||||
# else:
|
||||
|
@ -1,3 +1,4 @@
|
||||
@tool
|
||||
extends Event2D
|
||||
|
||||
# var prev_stage := 0
|
||||
@ -12,7 +13,7 @@ func _on_global_stage_updated(e: StringName, s: int):
|
||||
super._on_global_stage_updated(e, s)
|
||||
|
||||
|
||||
func _on_ground_ready(ground: Ground2D):
|
||||
func _on_ground_ready(_ground: Ground2D):
|
||||
_on_stage_updated()
|
||||
|
||||
|
||||
|
5
scene/ground/script/c02/s08_画特写.gd
Normal file
5
scene/ground/script/c02/s08_画特写.gd
Normal file
@ -0,0 +1,5 @@
|
||||
extends CanvasLayer
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
|
1
scene/ground/script/c02/s08_画特写.gd.uid
Normal file
1
scene/ground/script/c02/s08_画特写.gd.uid
Normal file
@ -0,0 +1 @@
|
||||
uid://befm61kt22miu
|
@ -1,13 +1,13 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://dd8dfoik0ig3y"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dnrql1t0j6v8i" path="res://scene/entity/closeup_template.gd" id="1_jgyts"]
|
||||
[ext_resource type="Script" uid="uid://befm61kt22miu" path="res://scene/ground/script/c02/s08_画特写.gd" id="1_4p6cc"]
|
||||
[ext_resource type="Texture2D" uid="uid://d1seskftkw08q" path="res://asset/art/scene/c02/s08_瞎子卧室/ux_盒子猫初次特写.png" id="2_jo6o1"]
|
||||
[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/遮罩/inspect特写通用遮罩.png" id="3_myoho"]
|
||||
[ext_resource type="PackedScene" uid="uid://dmysq4sxx8iqh" path="res://scene/entity/ux/content_inspector.tscn" id="4_4p6cc"]
|
||||
[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/遮罩/inspect背景遮罩.png" id="5_i34yq"]
|
||||
|
||||
[node name="s08_画特写" type="CanvasLayer"]
|
||||
script = ExtResource("1_jgyts")
|
||||
script = ExtResource("1_4p6cc")
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="."]
|
||||
offset_right = 40.0
|
||||
|
@ -1,6 +1,6 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://cxv7vdgwb8lqb"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dnrql1t0j6v8i" path="res://scene/entity/closeup_template.gd" id="1_2sinf"]
|
||||
[ext_resource type="Script" uid="uid://befm61kt22miu" path="res://scene/ground/script/c02/s08_画特写.gd" id="1_tja8r"]
|
||||
[ext_resource type="Texture2D" uid="uid://k6164drvkbg8" path="res://asset/art/scene/c02/s08_瞎子卧室/ux_盒子猫结束特写.png" id="2_qrck0"]
|
||||
[ext_resource type="Texture2D" uid="uid://cbql1i4hblmt1" path="res://asset/art/ui/遮罩/inspect特写通用遮罩.png" id="3_7dv3t"]
|
||||
[ext_resource type="Texture2D" uid="uid://tcjm158n8hnw" path="res://asset/art/scene/c02/s12_to_s17_盒子猫/小脚脚印.png" id="4_tja8r"]
|
||||
@ -9,7 +9,7 @@
|
||||
[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/遮罩/inspect背景遮罩.png" id="7_tja8r"]
|
||||
|
||||
[node name="s08_盒子猫初次特写" type="CanvasLayer"]
|
||||
script = ExtResource("1_2sinf")
|
||||
script = ExtResource("1_tja8r")
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="."]
|
||||
offset_right = 40.0
|
||||
|
@ -162,7 +162,6 @@ func _toggle_flip_h():
|
||||
# 抓小猫
|
||||
func do_catch(front: bool):
|
||||
move_and_detect = false
|
||||
SceneManager.freeze_player(0)
|
||||
# 抓小猫时 lock palyer
|
||||
SceneManager.lock_player()
|
||||
# 呼吸一帧,然后抓取
|
||||
@ -181,6 +180,7 @@ func do_catch(front: bool):
|
||||
$"Sfx喘气".easing_kill()
|
||||
SceneManager.pop_debug_dialog_info("音效", "抓取过程。 从捡小猫开始=" + str(front))
|
||||
await sprite2d.animation_finished
|
||||
SceneManager.unlock_player()
|
||||
# 等待动画播放后秒,再检查是否允许重开游戏
|
||||
if allow_restart_game:
|
||||
SceneManager.get_ground_loader().transition_to_scene("c02_s12", "left")
|
||||
|
39
scene/little_game/弹珠游戏/dialogue_balloon.gd
Normal file
39
scene/little_game/弹珠游戏/dialogue_balloon.gd
Normal file
@ -0,0 +1,39 @@
|
||||
extends CanvasLayer
|
||||
|
||||
signal ball_dialogue_ended
|
||||
|
||||
@onready var label = %RichTextLabel as RichTextLabel
|
||||
|
||||
## The current line
|
||||
var dialogue_line: DialogueLine:
|
||||
set(value):
|
||||
if value:
|
||||
dialogue_line = value
|
||||
apply_dialogue_line()
|
||||
get:
|
||||
return dialogue_line
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
layer = GlobalConfig.CANVAS_LAYER_DIALOG
|
||||
|
||||
|
||||
func start(
|
||||
dialogue_resource: DialogueResource, title: String, extra_game_states: Array = []
|
||||
) -> void:
|
||||
var temporary_game_states = [self] + extra_game_states
|
||||
self.dialogue_line = await dialogue_resource.get_next_dialogue_line(
|
||||
title, temporary_game_states
|
||||
)
|
||||
|
||||
|
||||
## Apply any changes to the balloon given a new [DialogueLine].
|
||||
func apply_dialogue_line() -> void:
|
||||
var translation_key = dialogue_line.translation_key
|
||||
label.text = ("[wave amp=10.0 freq=5.0][shake rate=4.0 level=3]" + tr(translation_key).strip_edges())
|
||||
var tween = create_tween()
|
||||
tween.tween_property(label, "modulate:a", 1.0, 0.5)
|
||||
tween.tween_interval(2.0)
|
||||
tween.tween_property(label, "modulate:a", 0.0, 0.5)
|
||||
tween.tween_callback(ball_dialogue_ended.emit)
|
||||
tween.tween_callback(queue_free)
|
1
scene/little_game/弹珠游戏/dialogue_balloon.gd.uid
Normal file
1
scene/little_game/弹珠游戏/dialogue_balloon.gd.uid
Normal file
@ -0,0 +1 @@
|
||||
uid://c1oruu8vpy4pk
|
48
scene/little_game/弹珠游戏/dialogue_balloon.tscn
Normal file
48
scene/little_game/弹珠游戏/dialogue_balloon.tscn
Normal file
@ -0,0 +1,48 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://d03hwa7axelmb"]
|
||||
|
||||
[ext_resource type="FontFile" uid="uid://bnxdsxp7dst7f" path="res://asset/font/锐字太空混元像素简繁-闪 超黑_mianfeiziti.com.ttf" id="1_5lxgi"]
|
||||
[ext_resource type="Script" uid="uid://c1oruu8vpy4pk" path="res://scene/little_game/弹珠游戏/dialogue_balloon.gd" id="1_7ag4e"]
|
||||
|
||||
[node name="DialogueBalloon" type="CanvasLayer"]
|
||||
script = ExtResource("1_7ag4e")
|
||||
|
||||
[node name="Control" type="Control" parent="."]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Container" type="MarginContainer" parent="Control"]
|
||||
z_index = 10
|
||||
layout_mode = 1
|
||||
anchors_preset = 5
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -150.0
|
||||
offset_right = 150.0
|
||||
offset_bottom = 182.0
|
||||
grow_horizontal = 2
|
||||
size_flags_vertical = 0
|
||||
mouse_filter = 2
|
||||
theme_override_constants/margin_top = 100
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="Control/Container"]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(300, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 4
|
||||
mouse_filter = 2
|
||||
theme_override_colors/default_color = Color(0.686241, 0.191934, 0.178785, 1)
|
||||
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_fonts/normal_font = ExtResource("1_5lxgi")
|
||||
theme_override_font_sizes/normal_font_size = 40
|
||||
bbcode_enabled = true
|
||||
text = "[wave amp=10.0 freq=5.0][shake rate=4.0 level=3] 先碰到边界你就输了"
|
||||
fit_content = true
|
||||
autowrap_mode = 1
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
@ -5,13 +5,14 @@ signal exit(success)
|
||||
@onready var animation_player = $AnimationPlayer as AnimationPlayer
|
||||
@onready var pivot = $Pivot as Node2D
|
||||
@onready var hand_pivot = $Pivot/HandPivot as Node2D
|
||||
@onready var label = %RichTextLabel as RichTextLabel
|
||||
|
||||
# ogg文件:丢球(drop 地面明显碰撞声)+球碰球(hit 响亮)+细碎滚动声(loop)三个部分
|
||||
@onready var sfx_hit = $SfxHit as Sfx
|
||||
@onready var sfx_shoot = $SfxShoot as Sfx
|
||||
@onready var sfx_dispatch = $SfxDispatch as Sfx
|
||||
|
||||
var dialog_balloon_scene = preload("uid://d03hwa7axelmb")
|
||||
|
||||
var dialogue_c02 = preload("res://asset/dialogue/c02.dialogue")
|
||||
|
||||
var balls_scene_dict = {
|
||||
@ -26,7 +27,6 @@ var debug_directly_win = false
|
||||
func _ready() -> void:
|
||||
layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME
|
||||
hand_pivot.modulate.a = 0
|
||||
label.modulate.a = 0
|
||||
if GlobalConfig.DEBUG and debug_directly_win:
|
||||
game_win()
|
||||
else:
|
||||
@ -46,8 +46,8 @@ func intro():
|
||||
get_node(balls_name).visible = false
|
||||
get_tree().call_group(balls_name, "hide_away")
|
||||
pivot.get_child(0).modulate.a = 0
|
||||
DialogueManager.show_dialogue_balloon_scene(self, dialogue_c02, "c02_弹珠游戏0")
|
||||
await ball_dialogue_ended
|
||||
var scene = DialogueManager.show_dialogue_balloon_scene(dialog_balloon_scene, dialogue_c02, "c02_弹珠游戏0")
|
||||
await scene.ball_dialogue_ended
|
||||
|
||||
|
||||
func intro_finished():
|
||||
@ -207,12 +207,10 @@ func _on_hit_ball_finished(count: int):
|
||||
if round_id == 0:
|
||||
round_ready = false
|
||||
_success_dialogue()
|
||||
await ball_dialogue_ended
|
||||
checkout_round(1)
|
||||
elif round_id == 1 and hit_count >= 3:
|
||||
round_ready = false
|
||||
_success_dialogue()
|
||||
await ball_dialogue_ended
|
||||
checkout_round(2)
|
||||
elif round_id == 2 and hit_count >= 5:
|
||||
round_ready = false
|
||||
@ -225,11 +223,14 @@ func _on_hit_ball_finished(count: int):
|
||||
func _success_dialogue():
|
||||
match round_id:
|
||||
0:
|
||||
DialogueManager.show_dialogue_balloon_scene(self, dialogue_c02, "c02_弹珠游戏1")
|
||||
var scene = DialogueManager.show_dialogue_balloon_scene(dialog_balloon_scene, dialogue_c02, "c02_弹珠游戏1")
|
||||
await scene.ball_dialogue_ended
|
||||
1:
|
||||
DialogueManager.show_dialogue_balloon_scene(self, dialogue_c02, "c02_弹珠游戏2")
|
||||
var scene = DialogueManager.show_dialogue_balloon_scene(dialog_balloon_scene, dialogue_c02, "c02_弹珠游戏2")
|
||||
await scene.ball_dialogue_ended
|
||||
2:
|
||||
DialogueManager.show_dialogue_balloon_scene(self, dialogue_c02, "c02_弹珠游戏3")
|
||||
var scene = DialogueManager.show_dialogue_balloon_scene(dialog_balloon_scene, dialogue_c02, "c02_弹珠游戏3")
|
||||
await scene.ball_dialogue_ended
|
||||
|
||||
|
||||
func _on_hit_boundary():
|
||||
@ -237,8 +238,8 @@ func _on_hit_boundary():
|
||||
if round_id > 0:
|
||||
# 后面的回合必须每次都击中球
|
||||
get_tree().call_group("Balls" + str(round_id), "ease_out")
|
||||
DialogueManager.show_dialogue_balloon_scene(self, dialogue_c02, "c02_弹珠游戏fail")
|
||||
await ball_dialogue_ended
|
||||
var scene = DialogueManager.show_dialogue_balloon_scene(dialog_balloon_scene, dialogue_c02, "c02_弹珠游戏fail")
|
||||
await scene.ball_dialogue_ended
|
||||
reload_round()
|
||||
else:
|
||||
reload_hand_ball()
|
||||
@ -248,6 +249,7 @@ func _on_hit_boundary():
|
||||
|
||||
func game_win() -> void:
|
||||
print("game_win 弹珠游戏胜利")
|
||||
animation_player.stop()
|
||||
# 0:默认 1:寻找弹珠(老虎钳可以换弹珠) 2:给出弹珠 3:游戏结束(小猫纸片) 4:游戏结束(小猫离开)
|
||||
EventManager.set_stage(&"c02_ball_game_stage", 3)
|
||||
$"Sfx结尾小孩跑_耳鸣".global_play()
|
||||
@ -255,8 +257,8 @@ func game_win() -> void:
|
||||
# 弹珠雨
|
||||
$BallsFalling.emitting = true
|
||||
pivot.visible = false
|
||||
DialogueManager.show_dialogue_balloon_scene(self, dialogue_c02, "c02_弹珠游戏4")
|
||||
await ball_dialogue_ended
|
||||
var scene = DialogueManager.show_dialogue_balloon_scene(dialog_balloon_scene, dialogue_c02, "c02_弹珠游戏4")
|
||||
await scene.ball_dialogue_ended
|
||||
await Util.wait(3.0)
|
||||
exit.emit(true)
|
||||
|
||||
@ -278,35 +280,3 @@ func _unhandled_input(event: InputEvent) -> void:
|
||||
# if round_id >= 0:
|
||||
# shoot()
|
||||
# get_viewport().set_input_as_handled()
|
||||
|
||||
|
||||
signal ball_dialogue_ended
|
||||
|
||||
## The current line
|
||||
var dialogue_line: DialogueLine:
|
||||
set(value):
|
||||
if value:
|
||||
dialogue_line = value
|
||||
apply_dialogue_line()
|
||||
get:
|
||||
return dialogue_line
|
||||
|
||||
|
||||
func start(
|
||||
dialogue_resource: DialogueResource, title: String, extra_game_states: Array = []
|
||||
) -> void:
|
||||
var temporary_game_states = [self] + extra_game_states
|
||||
self.dialogue_line = await dialogue_resource.get_next_dialogue_line(
|
||||
title, temporary_game_states
|
||||
)
|
||||
|
||||
|
||||
## Apply any changes to the balloon given a new [DialogueLine].
|
||||
func apply_dialogue_line() -> void:
|
||||
var translation_key = dialogue_line.translation_key
|
||||
label.text = ("[wave amp=10.0 freq=5.0][shake rate=4.0 level=3] " + tr(translation_key))
|
||||
var tween = create_tween()
|
||||
tween.tween_property(label, "modulate:a", 1.0, 0.5)
|
||||
tween.tween_interval(2.0)
|
||||
tween.tween_property(label, "modulate:a", 0.0, 0.5)
|
||||
ball_dialogue_ended.emit()
|
||||
|
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=27 format=3 uid="uid://cjx7o685ox8c1"]
|
||||
[gd_scene load_steps=26 format=3 uid="uid://cjx7o685ox8c1"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://c5s4giu182isu" path="res://scene/little_game/弹珠游戏/弹珠游戏.gd" id="1_p2trd"]
|
||||
[ext_resource type="AudioStream" uid="uid://cra6rqbs6r1qd" path="res://asset/audio/sfx/旧版/child/小孩从近到远跑步.ogg" id="2_aqxy0"]
|
||||
@ -6,7 +6,6 @@
|
||||
[ext_resource type="AudioStream" uid="uid://b8sbtn3l37uh" path="res://asset/audio/sfx/旧版/c02/红屏.ogg" id="2_w5xa1"]
|
||||
[ext_resource type="Texture2D" uid="uid://bs4tp4amd1kkm" path="res://asset/art/little_game/弹珠/抱手.png" id="3_3kvx4"]
|
||||
[ext_resource type="AudioStream" uid="uid://bb6njoaxi2hbx" path="res://asset/audio/sfx/game/弹珠游戏/hit.ogg" id="3_co06r"]
|
||||
[ext_resource type="FontFile" uid="uid://bnxdsxp7dst7f" path="res://asset/font/锐字太空混元像素简繁-闪 超黑_mianfeiziti.com.ttf" id="3_ctokx"]
|
||||
[ext_resource type="PackedScene" uid="uid://bbcfjksjlyfx5" path="res://scene/little_game/弹珠游戏/ball.tscn" id="4_bm1k0"]
|
||||
[ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="4_co06r"]
|
||||
[ext_resource type="Texture2D" uid="uid://btplp6xvmc6sx" path="res://asset/art/little_game/弹珠/手屈伸/0.png" id="4_fk3jp"]
|
||||
@ -280,33 +279,6 @@ size_flags_horizontal = 4
|
||||
size_flags_vertical = 4
|
||||
texture = ExtResource("2_bm1k0")
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||
z_index = 10
|
||||
anchors_preset = 5
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -100.0
|
||||
offset_top = -1.0
|
||||
offset_right = 100.0
|
||||
offset_bottom = 78.0
|
||||
grow_horizontal = 2
|
||||
theme_override_constants/margin_top = 100
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="MarginContainer"]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(300, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 4
|
||||
size_flags_vertical = 4
|
||||
theme_override_colors/default_color = Color(0.686241, 0.191934, 0.178785, 1)
|
||||
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_fonts/normal_font = ExtResource("3_ctokx")
|
||||
theme_override_font_sizes/normal_font_size = 40
|
||||
bbcode_enabled = true
|
||||
text = "[wave amp=10.0 freq=5.0][shake rate=4.0 level=3] 弹珠拿出来"
|
||||
fit_content = true
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_fk3jp")
|
||||
|
@ -62,7 +62,7 @@ func _hide():
|
||||
func _post_hide():
|
||||
status = STATUS_HIDDEN
|
||||
scroll_container.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
||||
holding = false
|
||||
locking = false
|
||||
origin_texture.texture = null
|
||||
full_texture.texture = null
|
||||
texture_cover = null
|
||||
@ -96,7 +96,7 @@ func pop_standard_inspection(
|
||||
content_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_LEFT
|
||||
if status != STATUS_HIDDEN:
|
||||
_hide()
|
||||
holding = true
|
||||
locking = true
|
||||
status = STATUS_INSPECTING_COVER
|
||||
visible = true
|
||||
full_texture.texture = cover_texture
|
||||
@ -116,15 +116,15 @@ func pop_standard_inspection(
|
||||
|
||||
|
||||
var _lock_mutex := Mutex.new()
|
||||
var holding = false:
|
||||
var locking = false:
|
||||
set(val):
|
||||
_lock_mutex.lock()
|
||||
if val != holding:
|
||||
holding = val
|
||||
if val != locking:
|
||||
locking = val
|
||||
if val:
|
||||
SceneManager.hold_player()
|
||||
SceneManager.lock_player()
|
||||
else:
|
||||
SceneManager.unhold_player()
|
||||
SceneManager.unlock_player()
|
||||
_lock_mutex.unlock()
|
||||
|
||||
var balloon
|
||||
@ -143,7 +143,7 @@ func pop_prop_inspection(
|
||||
# STATUS_INSPECTING_PROP 状态下不 hide,跳过重复 lock
|
||||
if status != STATUS_HIDDEN and status != STATUS_INSPECTING_PROP:
|
||||
_hide()
|
||||
holding = true
|
||||
locking = true
|
||||
status = STATUS_INSPECTING_PROP
|
||||
visible = true
|
||||
var tween = create_tween()
|
||||
|
@ -14,7 +14,7 @@ func _on_global_stage_updated(e: StringName, s: int):
|
||||
super._on_global_stage_updated(e, s)
|
||||
|
||||
|
||||
func _on_ground_ready(ground: Ground2D):
|
||||
func _on_ground_ready(_ground: Ground2D):
|
||||
pass
|
||||
|
||||
|
||||
|
@ -8,6 +8,8 @@ extends Node
|
||||
if is_node_ready():
|
||||
refresh()
|
||||
@export var vertical := false
|
||||
|
||||
@warning_ignore("unused_private_class_variable")
|
||||
@export_tool_button("刷新") var _refresh = refresh
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user