diff --git a/asset/art/scene/c02/s03_公寓一楼院子/f_院子内墙上文字.png b/asset/art/scene/c02/s03_公寓一楼院子/f_院子内墙上文字.png index fb1424d6..4a56558c 100644 Binary files a/asset/art/scene/c02/s03_公寓一楼院子/f_院子内墙上文字.png and b/asset/art/scene/c02/s03_公寓一楼院子/f_院子内墙上文字.png differ diff --git a/asset/dialogue/item_description.csv b/asset/dialogue/item_description.csv index b3ccb8ba..ff1a173d 100644 --- a/asset/dialogue/item_description.csv +++ b/asset/dialogue/item_description.csv @@ -11,9 +11,14 @@ c02_小蝉寻人启事_脸部破碎,寻人启事...画像和字迹都看不清 setting_画册,画册(G),,,,, notes_干掉的血迹,干掉的血迹,,,,, c02_瞎子卧室_血脚印,这画上的脚印和刚刚看到的一样。,,,,, -prop_奇怪的肉_说明,,,,,, bag_tab_日志,笔记,,,,, ux_panel_退出,退出,,,,, +setting_主界面,回到主界面,,,,,Back to Menu +setting_退出,保存并退出,,,,,Save & Exit +setting_日志,笔记(B),,,,,Open the Log +setting_记忆,记忆(G),,,,, +setting_全屏游戏,全屏游戏,,,,,Full Screen +setting_窗口置顶,窗口置顶,,,,,Top Window index_新游戏,新游戏,,,,,New Game index_继续游戏,继续游戏,,,,,Resume index_退出游戏,退出游戏,,,,,Exit @@ -25,15 +30,13 @@ ux_panel_退出游戏,退出游戏,,,,, setting_总音量,总音量,,,,,Main Volume setting_音效音量,音效音量,,,,,SFX Volume setting_对话音量,对话音量,,,,,Dialogue Volume -setting_语言,语言,,,,,Language -setting_全屏游戏,全屏游戏,,,,,Full Screen -setting_窗口置顶,窗口置顶,,,,,Top Window +setting_语言,语言(Lang),,,,,Language +setting_字幕,字幕,,,,, +setting_全屏,全屏游戏,,,,, +setting_置顶,窗口置顶,,,,, setting_自动保存,自动保存,,,,,Auto Save -setting_主界面,回到主界面,,,,,Back to Menu -setting_退出,保存并退出,,,,,Save & Exit -setting_日志,笔记(B),,,,,Open the Log -setting_记忆,记忆(G),,,,, ui_秒,秒,,,,,S +setting_返回,返回,,,,, bag_tab_笔记,线索,,,,, bag_tab_物品,物件,,,,, bag_tab_记忆,记忆,,,,, @@ -93,7 +96,8 @@ prop_小鞋子2,小鞋子(二),,,[#texture=c02/小鞋子2.png],, prop_小鞋子2_说明,尺寸极小,为缠足女童所穿弓鞋,尖锐鞋形似翘首鸟头,木质鞋底弯曲如弓,,,,, prop_麻将,麻将,,,[#texture=c02/麻将.png],, prop_麻将_说明,这块麻将上雕着一朵圆形的花,,,,, -prop_奇怪的肉,奇怪的肉 这块肉脂肪黄黄的...[ID:prop_奇怪的肉_说明],,,[#texture=c02/奇怪的肉.png],, +prop_奇怪的肉,奇怪的肉,,,[#texture=c02/奇怪的肉.png],, +prop_奇怪的肉_说明,这块肉脂肪黄黄的...,,,,, prop_弹珠,弹珠,,,[#texture=c02/弹珠.png],, prop_弹珠_说明,一种玻璃小球,孩子们常用它来进行弹子游戏,,,,, prop_木头人偶,木头人偶,,,[#texture=c02/小蝉人偶.png],, diff --git a/asset/dialogue/item_description.dialogue b/asset/dialogue/item_description.dialogue index 78cb6945..3927a6f5 100644 --- a/asset/dialogue/item_description.dialogue +++ b/asset/dialogue/item_description.dialogue @@ -13,13 +13,13 @@ 总音量[ID:setting_总音量] 音效音量[ID:setting_音效音量] 对话音量[ID:setting_对话音量] -语言[ID:setting_语言] -全屏游戏[ID:setting_全屏游戏] -窗口置顶[ID:setting_窗口置顶] +语言(Lang)[ID:setting_语言] +字幕[ID:setting_字幕] +全屏游戏[ID:setting_全屏] +窗口置顶[ID:setting_置顶] 自动保存[ID:setting_自动保存] 秒 [ID:ui_秒] -#回到主界面[ID:setting_主界面] -#保存并退出[ID:setting_退出] +返回[ID:setting_返回] 线索[ID:bag_tab_笔记] @@ -96,7 +96,8 @@ 麻将 [#texture=c02/麻将.png] [ID:prop_麻将] 这块麻将上雕着一朵圆形的花[ID:prop_麻将_说明] #新鲜的肉 [#texture=c02/新鲜的肉.png] [ID:prop_新鲜的肉] -奇怪的肉 [#texture=c02/奇怪的肉.png] [ID:prop_奇怪的肉]这块肉脂肪黄黄的...[ID:prop_奇怪的肉_说明] +奇怪的肉 [#texture=c02/奇怪的肉.png] [ID:prop_奇怪的肉] +这块肉脂肪黄黄的...[ID:prop_奇怪的肉_说明] 弹珠 [#texture=c02/弹珠.png] [ID:prop_弹珠] 一种玻璃小球,孩子们常用它来进行弹子游戏[ID:prop_弹珠_说明] 木头人偶 [#texture=c02/小蝉人偶.png] [ID:prop_木头人偶] diff --git a/config/default_theme.tres b/config/default_theme.tres index 3933f90f..2b57924a 100644 --- a/config/default_theme.tres +++ b/config/default_theme.tres @@ -1,4 +1,4 @@ -[gd_resource type="Theme" load_steps=15 format=3 uid="uid://j42sexotwnvk"] +[gd_resource type="Theme" load_steps=16 format=3 uid="uid://j42sexotwnvk"] [ext_resource type="Texture2D" uid="uid://cehulj6qro08v" path="res://asset/art/ui/style_box/theme_style_box.png" id="1_7dt84"] [ext_resource type="FontVariation" uid="uid://1ryw42kej6lv" path="res://config/font_ui.tres" id="1_06688"] @@ -75,6 +75,9 @@ corner_radius_bottom_right = 3 corner_radius_bottom_left = 3 corner_detail = 5 +[sub_resource type="StyleBoxLine" id="StyleBoxLine_06688"] +color = Color(0.43134, 0.43134, 0.43134, 1) + [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_5sc16"] texture = ExtResource("1_7dt84") texture_margin_left = 4.0 @@ -127,6 +130,7 @@ Button/styles/focus = SubResource("StyleBoxFlat_kajgs") Button/styles/hover = SubResource("StyleBoxFlat_06688") Button/styles/normal = SubResource("StyleBoxFlat_ujvfm") Button/styles/pressed = SubResource("StyleBoxFlat_d5rks") +HSeparator/styles/separator = SubResource("StyleBoxLine_06688") OptionButton/font_sizes/font_size = 10 PanelContainer/styles/panel = SubResource("StyleBoxTexture_5sc16") PopupMenu/font_sizes/font_size = 16 diff --git a/manager/archive_manager/assembled_archive.gd b/manager/archive_manager/assembled_archive.gd index 509b4336..e507e545 100644 --- a/manager/archive_manager/assembled_archive.gd +++ b/manager/archive_manager/assembled_archive.gd @@ -31,14 +31,14 @@ class_name AssembledArchive extends Resource # created time @export var created_time := "2024-12-24 00:00:00" +# event 发生状态 +@export var event_stage := {} as Dictionary[StringName, int] # 全局参数 @export var global_data_dict := {} as Dictionary[StringName, Variant] # 不同场景的地面物品状态存档 @export var ground_archives := {} as Dictionary[StringName, GroundArchive] # # true 为匿名,false 非匿名 @export var npc_anonymous_states := {} as Dictionary[StringName, bool] -# event 发生状态 -@export var event_stage := {} as Dictionary[StringName, int] # 玩家跑步锁定状态,默认为 true @export var player_running_locked := true # prop hud 显示道具 diff --git a/manager/config_manager/global_config.gd b/manager/config_manager/global_config.gd index 85b0bb81..dae54281 100644 --- a/manager/config_manager/global_config.gd +++ b/manager/config_manager/global_config.gd @@ -74,5 +74,7 @@ signal auto_save_seconds_changed @export var db_dialog := -13.0 # default @export var db_game_sfx := 3.0 # default # language -# -1 null; 0 zh_CN; 1 zh_SH; 2 en +# -1 null; 0 zh; 2 en @export var language := 0 +# zh: 0 _SH, 1 _CN; en: [null]; +@export var caption := 0 diff --git a/manager/config_manager/global_config_manager.gd b/manager/config_manager/global_config_manager.gd index 6ba97cb7..31a3ce4d 100644 --- a/manager/config_manager/global_config_manager.gd +++ b/manager/config_manager/global_config_manager.gd @@ -35,6 +35,28 @@ func _set_config(val: GlobalConfig) -> void: config.db_game_sfx, config.db_dialog ) + # set locale + update_locale(config.language, config.caption) + + +func update_locale(lang_id: int, caption_id: int): + # -1 null; 0 zh; 2 en + # var lang_id = language_options.selected + # zh: 0 _SH, 1 _CN; en: [null]; + # var caption_id = caption_options.selected + var lang = "" + match lang_id: + 0: + if caption_id == 0: + lang = "zh_SH" + elif caption_id == 1: + lang = "zh_CN" + 1: + lang = "en" + GlobalConfigManager.config.language = lang_id + GlobalConfigManager.config.caption = caption_id + print("set language to: ", lang) + TranslationServer.set_locale(lang) func _on_timer_timeout(): diff --git a/manager/scene/global_functor.gd b/manager/scene/global_functor.gd index 84369d56..3fd73dd8 100644 --- a/manager/scene/global_functor.gd +++ b/manager/scene/global_functor.gd @@ -54,6 +54,7 @@ func c02_fire_count_down_try_start(): func _on_c02_fire_count_down_timeout(): + SceneManager.lock_player(0) SceneManager.pop_debug_dialog_info("音效", "【重开】霸凌救小蝉倒计时") c02_fire_count_down_timer.stop() AudioManager.stop_bgm_music("霸凌救小蝉倒计时") @@ -61,6 +62,7 @@ func _on_c02_fire_count_down_timeout(): await get_tree().create_timer(1.0).timeout SceneManager.show_black_hand(true, 0.5) await get_tree().create_timer(3.0).timeout + SceneManager.unlock_player() SceneManager.get_ground_loader().transition_to_scene("c02_s03", "4") # TODO 音效 # res://asset/audio/BGM/心跳背景音.mp3 diff --git a/scene/ground/scene/c02/s03_院子.tscn b/scene/ground/scene/c02/s03_院子.tscn index af128467..4fdb0fc8 100644 --- a/scene/ground/scene/c02/s03_院子.tscn +++ b/scene/ground/scene/c02/s03_院子.tscn @@ -403,10 +403,11 @@ energy = 0.5 texture = ExtResource("11_em2ma") [node name="PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/灯笼/灯笼"] -position = Vector2(0, 26) +position = Vector2(0, 56) color = Color(1, 0.0980392, 0, 1) energy = 0.7 texture = SubResource("GradientTexture2D_kyfht") +texture_scale = 2.2 [node name="灯笼2" type="Sprite2D" parent="Ground/DeployLayer/灯笼"] position = Vector2(1166, -94) @@ -418,10 +419,11 @@ energy = 0.5 texture = ExtResource("11_em2ma") [node name="PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/灯笼/灯笼2"] -position = Vector2(0, 26) +position = Vector2(0, 49) color = Color(1, 0.0980392, 0, 1) energy = 0.7 texture = SubResource("GradientTexture2D_kyfht") +texture_scale = 2.2 [node name="灯笼3" type="Sprite2D" parent="Ground/DeployLayer/灯笼"] position = Vector2(1764, -86) @@ -433,10 +435,11 @@ energy = 0.5 texture = ExtResource("11_em2ma") [node name="PointLight2D" type="PointLight2D" parent="Ground/DeployLayer/灯笼/灯笼3"] -position = Vector2(0, 26) +position = Vector2(0, 55) color = Color(1, 0.0980392, 0, 1) energy = 0.7 texture = SubResource("GradientTexture2D_kyfht") +texture_scale = 2.2 [node name="新背景_奠" type="Node2D" parent="Ground/DeployLayer" index="10"] visible = false diff --git a/scene/ground/scene/c02/s08_瞎子卧室.gd b/scene/ground/scene/c02/s08_瞎子卧室.gd index 2a4307eb..9d51e8d8 100644 --- a/scene/ground/scene/c02/s08_瞎子卧室.gd +++ b/scene/ground/scene/c02/s08_瞎子卧室.gd @@ -54,7 +54,8 @@ func _on_ground_ready() -> void: boxcat_portal.get_node("Sprite2D").texture = preload("uid://efhwoqtn21d8") # e_墙上纸张_boxcat else: $"../DeployLayer/Closeup画".enabled = true - $"../DeployLayer/癞子偷窥/Sfx2D癞子呼吸".play() + if gaslight.interacted_times > 0: + $"../DeployLayer/癞子偷窥/Sfx2D癞子呼吸".play() if boxcat_played: $"../DeployLayer/portal_left".status = "opened" # 玩过小猫游戏,画框内容更新 禁止再进入 diff --git a/scene/little_game/书架/书架.gd b/scene/little_game/书架/书架.gd index ec80bef6..2a44064d 100644 --- a/scene/little_game/书架/书架.gd +++ b/scene/little_game/书架/书架.gd @@ -6,7 +6,7 @@ signal success const NON_SELECTED = [-1, -1] -@export var shuffle_times := 20 +@export var shuffle_times := 4 @export var debug_relocate := false: set(value): debug_relocate = false @@ -86,7 +86,7 @@ func _shuffle_books() -> void: SceneManager.pop_debug_dialog_info( "备注", "debug模式每列随机洗牌 1 次,正常模式每列随机洗牌 " + str(shuffle_times) + " 次" ) - shuffle_times = 1 + shuffle_times = 4 suffling = true rand_from_seed(Time.get_ticks_usec()) for row in range(3): diff --git a/scene/little_game/书架/书架.tscn b/scene/little_game/书架/书架.tscn index 8b71fa8d..bbbe29c3 100644 --- a/scene/little_game/书架/书架.tscn +++ b/scene/little_game/书架/书架.tscn @@ -180,24 +180,28 @@ layer = 5 script = ExtResource("1_8af23") [node name="Sfx书本掉落" type="AudioStreamPlayer" parent="."] +process_mode = 1 stream = ExtResource("2_c6xiu") bus = &"game_sfx" script = ExtResource("3_5brf2") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="Sfx扶正书本" type="AudioStreamPlayer" parent="."] +process_mode = 1 stream = ExtResource("3_o6bsw") bus = &"game_sfx" script = ExtResource("3_5brf2") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="SfxInterchange" type="AudioStreamPlayer" parent="."] +process_mode = 1 stream = ExtResource("3_c6xiu") bus = &"game_sfx" script = ExtResource("3_5brf2") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" [node name="SfxSelect" type="AudioStreamPlayer" parent="."] +process_mode = 1 stream = ExtResource("3_pfav2") bus = &"game_sfx" script = ExtResource("3_5brf2") diff --git a/scene/main.gd b/scene/main.gd index 3653a079..f4ff9b16 100644 --- a/scene/main.gd +++ b/scene/main.gd @@ -1,9 +1,9 @@ extends Node2D -@export var locale := "": - set(val): - TranslationServer.set_locale(val) - locale = val +# @export var locale := "": +# set(val): +# TranslationServer.set_locale(val) +# locale = val func _ready() -> void: diff --git a/scene/settings/settings.gd b/scene/settings/settings.gd index b76a82e6..c4b9f9fa 100644 --- a/scene/settings/settings.gd +++ b/scene/settings/settings.gd @@ -4,12 +4,13 @@ extends CanvasLayer @onready var sfx_bus_slider = %HSliderSfxBus as HSlider @onready var dialog_bus_slider = %HSliderDialogBus as HSlider @onready var language_options = %OptionButtonLanguage as OptionButton +@onready var caption_box = %"字幕" as BoxContainer +@onready var caption_options = %OptionButtonCaption as OptionButton @onready var autosave_box = %AutoSaveCheckBox as CheckBox @onready var autosave_time_edit = %SaveTimeLineEdit as LineEdit @onready var fullscreen_box = %FullscreenBox as CheckBox @onready var top_box = %TopBox as CheckBox -@onready var index_btn = %IndexBtn as Button -@onready var exit_btn = %ExitBtn as Button +@onready var return_btn = %ReturnBtn as Button # 音量 DB 偏移 const sfx_db_offset := 6.0 @@ -17,6 +18,8 @@ const dialog_db_offset := -10.0 static func _init() -> void: + if not GlobalConfigManager.config: + return AudioServer.set_bus_volume_db( AudioServer.get_bus_index("Master"), GlobalConfigManager.config.db_master ) @@ -52,8 +55,12 @@ func _ready(): dialog_bus_slider.value_changed.connect(_on_dialog_bus_slider_value_changed) # language language_options.selected = GlobalConfigManager.config.language - _on_language_options_selected(language_options.selected) - language_options.item_selected.connect(_on_language_options_selected) + language_options.item_selected.connect(_on_language_or_caption_options_selected) + # caption + caption_options.selected = GlobalConfigManager.config.caption + caption_options.item_selected.connect(_on_language_or_caption_options_selected) + # setup language + _on_language_or_caption_options_selected() # auto save autosave_box.button_pressed = GlobalConfigManager.config.auto_save_enabled autosave_time_edit.editable = GlobalConfigManager.config.auto_save_enabled @@ -67,12 +74,11 @@ func _ready(): fullscreen_box.toggled.connect(_on_fullscreen_box_toggled) top_box.toggled.connect(_on_top_box_toggled) # navigation - exit_btn.pressed.connect(_on_exit_btn_pressed) - index_btn.pressed.connect(_on_index_btn_pressed) + return_btn.pressed.connect(_on_return_btn_pressed) + return_btn.grab_focus() # open $"Sfx打开".play() SceneManager.toggle_pause_counter(true) - index_btn.grab_focus() func _on_master_bus_slider_value_changed(value: float) -> void: @@ -93,23 +99,16 @@ func _on_dialog_bus_slider_value_changed(value: float) -> void: AudioServer.set_bus_volume_db(AudioServer.get_bus_index("dialog"), db_value) -func _on_language_options_selected(id: int) -> void: - # -1 null; 0 zh_CN; 1 zh_SH; 2 en - var lang = "" - match id: - 0: - lang = "zh_CN" - 1: - lang = "zh_SH" - 2: - lang = "en" - _: - lang = "zh_CN" - printerr("Unknown language id: ", id) - GlobalConfigManager.config.language = id - if GlobalConfig.DEBUG: - print("set language to: ", lang) - TranslationServer.set_locale(lang) +func _on_language_or_caption_options_selected(_id = null) -> void: + # -1 null; 0 zh; 2 en + var lang_id = language_options.selected + # zh: 0 _CN, _SH; en: [null]; + var caption_id = caption_options.selected + if lang_id != 0: + caption_box.hide() + else: + caption_box.show() + GlobalConfigManager.update_locale(lang_id, caption_id) func _on_autosave_box_toggled(is_pressed: bool) -> void: @@ -139,17 +138,7 @@ func _on_top_box_toggled(is_pressed: bool) -> void: GlobalConfigManager.config.window_top = is_pressed -func _on_exit_btn_pressed() -> void: - # 从 ArchiveManager 处理退出信号 - ArchiveManager.notification(NOTIFICATION_WM_CLOSE_REQUEST) - # 退出游戏过程隐藏 setting 界面 - exit_settings() - - -func _on_index_btn_pressed() -> void: - ArchiveManager.save_all() - SceneManager.checkout_index_page() - # 切换过程隐藏 setting 界面 +func _on_return_btn_pressed() -> void: exit_settings() diff --git a/scene/settings/settings.tscn b/scene/settings/settings.tscn index d0558955..d6ff04d3 100644 --- a/scene/settings/settings.tscn +++ b/scene/settings/settings.tscn @@ -1,9 +1,13 @@ -[gd_scene load_steps=5 format=3 uid="uid://beok2r6fgburn"] +[gd_scene load_steps=8 format=3 uid="uid://beok2r6fgburn"] [ext_resource type="Script" uid="uid://ciloxu1k8a1ll" path="res://scene/settings/settings.gd" id="1_7u4nq"] [ext_resource type="AudioStream" uid="uid://dlt4nv6qjhlpy" path="res://asset/audio/sfx/交互/sfx_打开设置.wav" id="2_6hxkf"] [ext_resource type="Script" uid="uid://rq6w1vuhuq1m" path="res://scene/entity/audio/sfx.gd" id="3_kn03d"] [ext_resource type="AudioStream" uid="uid://cmi6fd68s1ukb" path="res://asset/audio/sfx/交互/sfx_关闭设置.wav" id="4_n2b1f"] +[ext_resource type="Texture2D" uid="uid://f186lvt5y2ql" path="res://asset/art/ui/inspect/inspect背景遮罩.png" id="5_kn03d"] +[ext_resource type="FontVariation" uid="uid://1ryw42kej6lv" path="res://config/font_ui.tres" id="6_n2b1f"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_n2b1f"] [node name="Settings" type="CanvasLayer"] process_mode = 3 @@ -26,202 +30,232 @@ bus = &"game_sfx" script = ExtResource("3_kn03d") metadata/_custom_type_script = "uid://rq6w1vuhuq1m" -[node name="ClickMask" type="Control" parent="."] -layout_mode = 3 +[node name="TextureRect" type="TextureRect" parent="."] anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 +mouse_filter = 0 +texture = ExtResource("5_kn03d") -[node name="PanelContainer" type="PanelContainer" parent="."] +[node name="VBoxContainer" type="VBoxContainer" parent="."] +custom_minimum_size = Vector2(0, 199) anchors_preset = 8 anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 anchor_bottom = 0.5 -offset_left = -119.0 -offset_top = -84.0 -offset_right = 119.0 -offset_bottom = 78.0 +offset_left = -95.0 +offset_top = -109.5 +offset_right = 95.0 +offset_bottom = 109.5 grow_horizontal = 2 grow_vertical = 2 - -[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer"] -layout_mode = 2 size_flags_horizontal = 4 -[node name="MarginContainer2" type="MarginContainer" parent="PanelContainer/VBoxContainer"] +[node name="总音量" type="HBoxContainer" parent="VBoxContainer"] layout_mode = 2 -theme_override_constants/margin_top = 6 -[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer"] -layout_mode = 2 -size_flags_horizontal = 4 - -[node name="Label" type="Label" parent="PanelContainer/VBoxContainer/HBoxContainer"] +[node name="Label" type="Label" parent="VBoxContainer/总音量"] custom_minimum_size = Vector2(50, 0) layout_mode = 2 +theme_override_fonts/font = ExtResource("6_n2b1f") +theme_override_font_sizes/font_size = 11 text = "setting_总音量" -[node name="HSliderMasterBus" type="HSlider" parent="PanelContainer/VBoxContainer/HBoxContainer"] +[node name="HSliderMasterBus" type="HSlider" parent="VBoxContainer/总音量"] unique_name_in_owner = true custom_minimum_size = Vector2(100, 5) layout_mode = 2 -focus_neighbor_bottom = NodePath("../../HBoxContainer2/HSliderSfxBus") -focus_next = NodePath("../../HBoxContainer2/HSliderSfxBus") +size_flags_horizontal = 10 +focus_neighbor_bottom = NodePath("../../音效音量/HSliderSfxBus") +focus_next = NodePath("../../音效音量/HSliderSfxBus") max_value = 1.0 step = 0.01 value = 1.0 -[node name="HBoxContainer2" type="HBoxContainer" parent="PanelContainer/VBoxContainer"] +[node name="音效音量" type="HBoxContainer" parent="VBoxContainer"] layout_mode = 2 -size_flags_horizontal = 4 -[node name="Label" type="Label" parent="PanelContainer/VBoxContainer/HBoxContainer2"] +[node name="Label" type="Label" parent="VBoxContainer/音效音量"] custom_minimum_size = Vector2(50, 0) layout_mode = 2 +theme_override_fonts/font = ExtResource("6_n2b1f") +theme_override_font_sizes/font_size = 11 text = "setting_音效音量" -[node name="HSliderSfxBus" type="HSlider" parent="PanelContainer/VBoxContainer/HBoxContainer2"] +[node name="HSliderSfxBus" type="HSlider" parent="VBoxContainer/音效音量"] unique_name_in_owner = true custom_minimum_size = Vector2(100, 5) layout_mode = 2 -focus_neighbor_top = NodePath("../../HBoxContainer/HSliderMasterBus") -focus_neighbor_bottom = NodePath("../../HBoxContainer5/HSliderDialogBus") +size_flags_horizontal = 10 +focus_neighbor_top = NodePath("../../总音量/HSliderMasterBus") +focus_neighbor_bottom = NodePath("../../对话音量/HSliderDialogBus") max_value = 1.0 step = 0.01 value = 1.0 -[node name="HBoxContainer5" type="HBoxContainer" parent="PanelContainer/VBoxContainer"] +[node name="对话音量" type="HBoxContainer" parent="VBoxContainer"] layout_mode = 2 -size_flags_horizontal = 4 -[node name="Label" type="Label" parent="PanelContainer/VBoxContainer/HBoxContainer5"] +[node name="Label" type="Label" parent="VBoxContainer/对话音量"] custom_minimum_size = Vector2(50, 0) layout_mode = 2 +theme_override_fonts/font = ExtResource("6_n2b1f") +theme_override_font_sizes/font_size = 11 text = "setting_对话音量" -[node name="HSliderDialogBus" type="HSlider" parent="PanelContainer/VBoxContainer/HBoxContainer5"] +[node name="HSliderDialogBus" type="HSlider" parent="VBoxContainer/对话音量"] unique_name_in_owner = true custom_minimum_size = Vector2(100, 5) layout_mode = 2 -focus_neighbor_top = NodePath("../../HBoxContainer2/HSliderSfxBus") -focus_neighbor_bottom = NodePath("../../HBoxContainer6/OptionButtonLanguage") +size_flags_horizontal = 10 +focus_neighbor_top = NodePath("../../音效音量/HSliderSfxBus") +focus_neighbor_bottom = NodePath("../../语言/OptionButtonLanguage") max_value = 1.0 step = 0.01 value = 1.0 -[node name="HSeparator" type="HSeparator" parent="PanelContainer/VBoxContainer"] +[node name="HSeparator" type="HSeparator" parent="VBoxContainer"] layout_mode = 2 -[node name="HBoxContainer6" type="HBoxContainer" parent="PanelContainer/VBoxContainer"] +[node name="语言" type="HBoxContainer" parent="VBoxContainer"] layout_mode = 2 size_flags_horizontal = 4 -[node name="Label" type="Label" parent="PanelContainer/VBoxContainer/HBoxContainer6"] +[node name="Label" type="Label" parent="VBoxContainer/语言"] custom_minimum_size = Vector2(50, 0) layout_mode = 2 +theme_override_fonts/font = ExtResource("6_n2b1f") +theme_override_font_sizes/font_size = 11 text = "setting_语言" -[node name="OptionButtonLanguage" type="OptionButton" parent="PanelContainer/VBoxContainer/HBoxContainer6"] +[node name="VSeparator" type="VSeparator" parent="VBoxContainer/语言"] +layout_mode = 2 +theme_override_constants/separation = 31 +theme_override_styles/separator = SubResource("StyleBoxEmpty_n2b1f") + +[node name="OptionButtonLanguage" type="OptionButton" parent="VBoxContainer/语言"] unique_name_in_owner = true layout_mode = 2 -focus_neighbor_top = NodePath("../../HBoxContainer5/HSliderDialogBus") -focus_neighbor_bottom = NodePath("../../HBoxContainer4/AutoSaveCheckBox") +focus_neighbor_top = NodePath("../../对话音量/HSliderDialogBus") +focus_neighbor_bottom = NodePath("../../自动保存/AutoSaveCheckBox") +theme_override_fonts/font = ExtResource("6_n2b1f") +theme_override_font_sizes/font_size = 11 selected = 0 allow_reselect = true -item_count = 3 -popup/item_0/text = "普通话(简体)" +item_count = 2 +popup/item_0/text = "简体中文" popup/item_0/id = 0 -popup/item_1/text = "上海话(简体)" -popup/item_1/id = 1 -popup/item_2/text = "English" -popup/item_2/id = 2 +popup/item_1/text = "English" +popup/item_1/id = 2 -[node name="HSeparator4" type="HSeparator" parent="PanelContainer/VBoxContainer"] -layout_mode = 2 - -[node name="HBoxContainer4" type="HBoxContainer" parent="PanelContainer/VBoxContainer"] +[node name="字幕" type="HBoxContainer" parent="VBoxContainer"] +unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 4 -[node name="AutoSaveCheckBox" type="CheckBox" parent="PanelContainer/VBoxContainer/HBoxContainer4"] +[node name="Label" type="Label" parent="VBoxContainer/字幕"] +custom_minimum_size = Vector2(50, 0) +layout_mode = 2 +theme_override_fonts/font = ExtResource("6_n2b1f") +theme_override_font_sizes/font_size = 11 +text = "setting_字幕" + +[node name="VSeparator" type="VSeparator" parent="VBoxContainer/字幕"] +layout_mode = 2 +theme_override_constants/separation = 31 +theme_override_styles/separator = SubResource("StyleBoxEmpty_n2b1f") + +[node name="OptionButtonCaption" type="OptionButton" parent="VBoxContainer/字幕"] unique_name_in_owner = true layout_mode = 2 -focus_neighbor_top = NodePath("../../HBoxContainer6/OptionButtonLanguage") +focus_neighbor_top = NodePath("../../对话音量/HSliderDialogBus") +focus_neighbor_bottom = NodePath("../../自动保存/AutoSaveCheckBox") +theme_override_fonts/font = ExtResource("6_n2b1f") +theme_override_font_sizes/font_size = 11 +selected = 0 +allow_reselect = true +item_count = 2 +popup/item_0/text = "上海话" +popup/item_0/id = 1 +popup/item_1/text = "普通话" +popup/item_1/id = 0 + +[node name="HSeparator4" type="HSeparator" parent="VBoxContainer"] +layout_mode = 2 + +[node name="自动保存" type="HBoxContainer" parent="VBoxContainer"] +layout_mode = 2 + +[node name="AutoSaveCheckBox" type="CheckBox" parent="VBoxContainer/自动保存"] +unique_name_in_owner = true +layout_mode = 2 +focus_neighbor_top = NodePath("../../语言/OptionButtonLanguage") focus_neighbor_right = NodePath("../SaveTimeLineEdit") -focus_neighbor_bottom = NodePath("../../GridContainer/FullscreenBox") +focus_neighbor_bottom = NodePath("../../显示方式/FullscreenBox") focus_next = NodePath("../SaveTimeLineEdit") +theme_override_fonts/font = ExtResource("6_n2b1f") +theme_override_font_sizes/font_size = 11 text = "setting_自动保存" -[node name="SaveTimeLineEdit" type="LineEdit" parent="PanelContainer/VBoxContainer/HBoxContainer4"] +[node name="SaveTimeLineEdit" type="LineEdit" parent="VBoxContainer/自动保存"] unique_name_in_owner = true layout_mode = 2 +size_flags_horizontal = 10 focus_neighbor_left = NodePath("../AutoSaveCheckBox") -focus_neighbor_top = NodePath("../../HBoxContainer6/OptionButtonLanguage") -focus_neighbor_bottom = NodePath("../../GridContainer/FullscreenBox") -focus_next = NodePath("../../GridContainer/FullscreenBox") +focus_neighbor_top = NodePath("../../语言/OptionButtonLanguage") +focus_neighbor_bottom = NodePath("../../显示方式/FullscreenBox") +focus_next = NodePath("../../显示方式/FullscreenBox") max_length = 5 caret_blink = true -[node name="Label" type="Label" parent="PanelContainer/VBoxContainer/HBoxContainer4"] +[node name="Label" type="Label" parent="VBoxContainer/自动保存"] layout_mode = 2 +size_flags_horizontal = 8 +theme_override_fonts/font = ExtResource("6_n2b1f") +theme_override_font_sizes/font_size = 11 text = "ui_秒" -[node name="GridContainer" type="GridContainer" parent="PanelContainer/VBoxContainer"] +[node name="显示方式" type="GridContainer" parent="VBoxContainer"] custom_minimum_size = Vector2(0, 32) layout_mode = 2 -size_flags_horizontal = 4 columns = 2 -[node name="FullscreenBox" type="CheckBox" parent="PanelContainer/VBoxContainer/GridContainer"] +[node name="FullscreenBox" type="CheckBox" parent="VBoxContainer/显示方式"] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 4 -focus_neighbor_top = NodePath("../../HBoxContainer4/SaveTimeLineEdit") +focus_neighbor_top = NodePath("../../自动保存/SaveTimeLineEdit") focus_neighbor_right = NodePath("../TopBox") -focus_neighbor_bottom = NodePath("../../HBoxContainer3/IndexBtn") focus_next = NodePath("../TopBox") -text = "setting_全屏游戏" +theme_override_fonts/font = ExtResource("6_n2b1f") +theme_override_font_sizes/font_size = 11 +text = "setting_全屏" -[node name="TopBox" type="CheckBox" parent="PanelContainer/VBoxContainer/GridContainer"] +[node name="TopBox" type="CheckBox" parent="VBoxContainer/显示方式"] unique_name_in_owner = true layout_mode = 2 -size_flags_horizontal = 4 +size_flags_horizontal = 10 focus_neighbor_left = NodePath("../FullscreenBox") -focus_neighbor_top = NodePath("../../HBoxContainer4/SaveTimeLineEdit") -focus_neighbor_bottom = NodePath("../../HBoxContainer3/ExitBtn") -focus_next = NodePath("../../HBoxContainer3/IndexBtn") +focus_neighbor_top = NodePath("../../自动保存/SaveTimeLineEdit") +focus_neighbor_bottom = NodePath("../../ReturnBtn") focus_previous = NodePath("../FullscreenBox") -text = "setting_窗口置顶" +theme_override_fonts/font = ExtResource("6_n2b1f") +theme_override_font_sizes/font_size = 11 +text = "setting_置顶" -[node name="HSeparator3" type="HSeparator" parent="PanelContainer/VBoxContainer"] -visible = false +[node name="HSeparator3" type="HSeparator" parent="VBoxContainer"] layout_mode = 2 -[node name="HBoxContainer3" type="HBoxContainer" parent="PanelContainer/VBoxContainer"] -visible = false -custom_minimum_size = Vector2(0, 35) -layout_mode = 2 - -[node name="IndexBtn" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer3"] +[node name="ReturnBtn" type="Button" parent="VBoxContainer"] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 6 size_flags_vertical = 4 -focus_neighbor_top = NodePath("../../GridContainer/FullscreenBox") -focus_neighbor_right = NodePath("../ExitBtn") -focus_next = NodePath("../ExitBtn") -focus_previous = NodePath("../../GridContainer/TopBox") -text = "setting_主界面" - -[node name="ExitBtn" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer3"] -unique_name_in_owner = true -layout_mode = 2 -size_flags_horizontal = 6 -size_flags_vertical = 4 -focus_neighbor_left = NodePath("../IndexBtn") -focus_neighbor_top = NodePath("../../GridContainer/TopBox") -focus_previous = NodePath("../IndexBtn") -text = "setting_退出" +focus_neighbor_top = NodePath("../显示方式/TopBox") +focus_previous = NodePath("../显示方式/TopBox") +theme_override_fonts/font = ExtResource("6_n2b1f") +theme_override_font_sizes/font_size = 11 +text = "setting_返回"