diff --git a/asset/audio/BGM/摇啊摇诡异pipa.WAV.import b/asset/audio/BGM/摇啊摇诡异pipa.WAV.import deleted file mode 100644 index 683aed3d..00000000 --- a/asset/audio/BGM/摇啊摇诡异pipa.WAV.import +++ /dev/null @@ -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 diff --git a/asset/audio/sfx/bgm/序章/鬼差追击.MP3.import b/asset/audio/sfx/bgm/序章/鬼差追击.MP3.import deleted file mode 100644 index 48d29600..00000000 --- a/asset/audio/sfx/bgm/序章/鬼差追击.MP3.import +++ /dev/null @@ -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 diff --git a/asset/audio/sfx/bgm/第一章/打开铁门后不循环背景音.MP3.import b/asset/audio/sfx/bgm/第一章/打开铁门后不循环背景音.MP3.import deleted file mode 100644 index 60417eb0..00000000 --- a/asset/audio/sfx/bgm/第一章/打开铁门后不循环背景音.MP3.import +++ /dev/null @@ -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 diff --git a/export_presets.cfg b/export_presets.cfg index 0bd7754d..35007de4 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -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="" diff --git a/manager/audio_manager/vibe_group_collection.tres b/manager/audio_manager/vibe_group_collection.tres index 68c7d3de..9048fe43 100644 --- a/manager/audio_manager/vibe_group_collection.tres +++ b/manager/audio_manager/vibe_group_collection.tres @@ -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" diff --git a/manager/audio_manager/vibe_group_player.gd b/manager/audio_manager/vibe_group_player.gd index f29f560a..2972c65a 100644 --- a/manager/audio_manager/vibe_group_player.gd +++ b/manager/audio_manager/vibe_group_player.gd @@ -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()): diff --git a/manager/audio_manager/vibe_sfx.gd b/manager/audio_manager/vibe_sfx.gd index 58a67c8f..65734238 100644 --- a/manager/audio_manager/vibe_sfx.gd +++ b/manager/audio_manager/vibe_sfx.gd @@ -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 diff --git a/manager/config_manager/global_config_manager.gd b/manager/config_manager/global_config_manager.gd index d77530f5..734aaeb4 100644 --- a/manager/config_manager/global_config_manager.gd +++ b/manager/config_manager/global_config_manager.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 = ( diff --git a/manager/event_manager/event2d.gd b/manager/event_manager/event2d.gd index 2d808318..11b2e9a6 100644 --- a/manager/event_manager/event2d.gd +++ b/manager/event_manager/event2d.gd @@ -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 diff --git a/manager/scene/scene_manager.gd b/manager/scene/scene_manager.gd index e8824e68..ab5cc610 100644 --- a/manager/scene/scene_manager.gd +++ b/manager/scene/scene_manager.gd @@ -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 diff --git a/scene/dialog/balloon.gd b/scene/dialog/balloon.gd index 2b26099b..23f6d8fc 100755 --- a/scene/dialog/balloon.gd +++ b/scene/dialog/balloon.gd @@ -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 模式下不禁用 diff --git a/scene/entity/ambush.gd b/scene/entity/ambush.gd index 6a44eb19..6e923884 100644 --- a/scene/entity/ambush.gd +++ b/scene/entity/ambush.gd @@ -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) diff --git a/scene/entity/ux/content_inspector.gd b/scene/entity/ux/content_inspector.gd index ebb2ef92..6042c775 100644 --- a/scene/entity/ux/content_inspector.gd +++ b/scene/entity/ux/content_inspector.gd @@ -1,6 +1,7 @@ extends Control class_name ContentInspector +@warning_ignore("unused_signal") signal exit @onready var label = $TipContainer/Label as Label diff --git a/scene/ground/ground_loader.gd b/scene/ground/ground_loader.gd index 592a3a9a..f5a481bb 100644 --- a/scene/ground/ground_loader.gd +++ b/scene/ground/ground_loader.gd @@ -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() diff --git a/scene/ground/scene/c01/s05_院长房间.tscn b/scene/ground/scene/c01/s05_院长房间.tscn index 3419acdf..709b05ae 100644 --- a/scene/ground/scene/c01/s05_院长房间.tscn +++ b/scene/ground/scene/c01/s05_院长房间.tscn @@ -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"] diff --git a/scene/ground/scene/c01/s08_书店.tscn b/scene/ground/scene/c01/s08_书店.tscn index dc9bd5e3..b8cf3ca6 100644 --- a/scene/ground/scene/c01/s08_书店.tscn +++ b/scene/ground/scene/c01/s08_书店.tscn @@ -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"] diff --git a/scene/ground/scene/c01/s12_书店外_诡异版.gd b/scene/ground/scene/c01/s12_书店外_诡异版.gd index 6798f3d0..22e75590 100644 --- a/scene/ground/scene/c01/s12_书店外_诡异版.gd +++ b/scene/ground/scene/c01/s12_书店外_诡异版.gd @@ -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(): diff --git a/scene/ground/scene/c01/s12_书店外_诡异版.tscn b/scene/ground/scene/c01/s12_书店外_诡异版.tscn index 402b353b..26571e00 100644 --- a/scene/ground/scene/c01/s12_书店外_诡异版.tscn +++ b/scene/ground/scene/c01/s12_书店外_诡异版.tscn @@ -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"] diff --git a/scene/ground/scene/c02/s03_院子.tscn b/scene/ground/scene/c02/s03_院子.tscn index 54666852..707db45a 100644 --- a/scene/ground/scene/c02/s03_院子.tscn +++ b/scene/ground/scene/c02/s03_院子.tscn @@ -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"] diff --git a/scene/ground/scene/c02/s08_瞎子卧室.gd b/scene/ground/scene/c02/s08_瞎子卧室.gd index af41f665..be7c6578 100644 --- a/scene/ground/scene/c02/s08_瞎子卧室.gd +++ b/scene/ground/scene/c02/s08_瞎子卧室.gd @@ -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_离开红色演出") diff --git a/scene/ground/scene/c02/s13_盒子猫二楼.gd b/scene/ground/scene/c02/s13_盒子猫二楼.gd index 1f87be45..74f3f711 100644 --- a/scene/ground/scene/c02/s13_盒子猫二楼.gd +++ b/scene/ground/scene/c02/s13_盒子猫二楼.gd @@ -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") diff --git a/scene/ground/script/c02/event_2d_xchan_run_after_got_pliers.gd b/scene/ground/script/c02/event_2d_xchan_run_after_got_pliers.gd index 7682a793..515b993a 100644 --- a/scene/ground/script/c02/event_2d_xchan_run_after_got_pliers.gd +++ b/scene/ground/script/c02/event_2d_xchan_run_after_got_pliers.gd @@ -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() diff --git a/scene/ground/script/c02/event_2d_xchan_run_away.gd b/scene/ground/script/c02/event_2d_xchan_run_away.gd index 2630db91..18794229 100644 --- a/scene/ground/script/c02/event_2d_xchan_run_away.gd +++ b/scene/ground/script/c02/event_2d_xchan_run_away.gd @@ -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(): diff --git a/scene/ground/script/c02/event_2d叼纸小猫.gd b/scene/ground/script/c02/event_2d叼纸小猫.gd index b1b153c6..8dfda873 100644 --- a/scene/ground/script/c02/event_2d叼纸小猫.gd +++ b/scene/ground/script/c02/event_2d叼纸小猫.gd @@ -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: diff --git a/scene/ground/script/c02/event小蝉哼歌.gd b/scene/ground/script/c02/event小蝉哼歌.gd index 7f21ea9e..7e9090b0 100644 --- a/scene/ground/script/c02/event小蝉哼歌.gd +++ b/scene/ground/script/c02/event小蝉哼歌.gd @@ -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() diff --git a/scene/ground/script/c02/s08_画特写.gd b/scene/ground/script/c02/s08_画特写.gd new file mode 100644 index 00000000..5b9c9b50 --- /dev/null +++ b/scene/ground/script/c02/s08_画特写.gd @@ -0,0 +1,5 @@ +extends CanvasLayer + + +func _ready() -> void: + layer = GlobalConfig.CANVAS_LAYER_LITTLE_GAME diff --git a/scene/ground/script/c02/s08_画特写.gd.uid b/scene/ground/script/c02/s08_画特写.gd.uid new file mode 100644 index 00000000..4383943d --- /dev/null +++ b/scene/ground/script/c02/s08_画特写.gd.uid @@ -0,0 +1 @@ +uid://befm61kt22miu diff --git a/scene/ground/script/c02/s08_画特写.tscn b/scene/ground/script/c02/s08_画特写.tscn index 50e9c991..fd8dde28 100644 --- a/scene/ground/script/c02/s08_画特写.tscn +++ b/scene/ground/script/c02/s08_画特写.tscn @@ -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 diff --git a/scene/ground/script/c02/s08_画特写2.tscn b/scene/ground/script/c02/s08_画特写2.tscn index b9c69817..07eb90c3 100644 --- a/scene/ground/script/c02/s08_画特写2.tscn +++ b/scene/ground/script/c02/s08_画特写2.tscn @@ -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 diff --git a/scene/ground/script/c02/追猫猪头怪.gd b/scene/ground/script/c02/追猫猪头怪.gd index 80402baa..8e8e3ca3 100644 --- a/scene/ground/script/c02/追猫猪头怪.gd +++ b/scene/ground/script/c02/追猫猪头怪.gd @@ -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") diff --git a/scene/little_game/弹珠游戏/dialogue_balloon.gd b/scene/little_game/弹珠游戏/dialogue_balloon.gd new file mode 100644 index 00000000..e3020b58 --- /dev/null +++ b/scene/little_game/弹珠游戏/dialogue_balloon.gd @@ -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) diff --git a/scene/little_game/弹珠游戏/dialogue_balloon.gd.uid b/scene/little_game/弹珠游戏/dialogue_balloon.gd.uid new file mode 100644 index 00000000..c2365580 --- /dev/null +++ b/scene/little_game/弹珠游戏/dialogue_balloon.gd.uid @@ -0,0 +1 @@ +uid://c1oruu8vpy4pk diff --git a/scene/little_game/弹珠游戏/dialogue_balloon.tscn b/scene/little_game/弹珠游戏/dialogue_balloon.tscn new file mode 100644 index 00000000..a0b2f3d6 --- /dev/null +++ b/scene/little_game/弹珠游戏/dialogue_balloon.tscn @@ -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 diff --git a/scene/little_game/弹珠游戏/弹珠游戏.gd b/scene/little_game/弹珠游戏/弹珠游戏.gd index b7b46f06..4dcaa82c 100644 --- a/scene/little_game/弹珠游戏/弹珠游戏.gd +++ b/scene/little_game/弹珠游戏/弹珠游戏.gd @@ -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() diff --git a/scene/little_game/弹珠游戏/弹珠游戏.tscn b/scene/little_game/弹珠游戏/弹珠游戏.tscn index bd3e6b50..869276ed 100644 --- a/scene/little_game/弹珠游戏/弹珠游戏.tscn +++ b/scene/little_game/弹珠游戏/弹珠游戏.tscn @@ -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") diff --git a/scene/ux/prop_inspector.gd b/scene/ux/prop_inspector.gd index 5a9f00e2..478a5717 100644 --- a/scene/ux/prop_inspector.gd +++ b/scene/ux/prop_inspector.gd @@ -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() diff --git a/script_templates/event_2d.gd b/script_templates/event_2d.gd index 048346e5..69036aba 100644 --- a/script_templates/event_2d.gd +++ b/script_templates/event_2d.gd @@ -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 diff --git a/ui/text_helper.gd b/ui/text_helper.gd index 25fba55a..b46ca1cd 100644 --- a/ui/text_helper.gd +++ b/ui/text_helper.gd @@ -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