diff --git a/manifest.json b/manifest.json index e5440c2..d0ebbda 100644 --- a/manifest.json +++ b/manifest.json @@ -6,5 +6,55 @@ "description": "Game core", "sources": [ "src/*.cs" + ], + "ui": [ + { + "id": "map", + "kind": "panel", + "slot": "ModBeforeUIPanel", + "scene_path": "scenes/ui/map_widget.tscn", + "button": { "icon": "map", "locale": "ui/map/title", "index": 10 }, + "priority": 10 + }, + { + "id": "inventory", + "kind": "panel", + "slot": "ModBeforeUIPanel", + "scene_path": "scenes/ui/inventory_panel.tscn", + "button": { "icon": "bag", "locale": "ui/inventory/title", "index": 20 }, + "priority": 10 + }, + { + "id": "characters", + "kind": "panel", + "slot": "ModBeforeUIPanel", + "scene_path": "scenes/ui/character_panel/character_panel.tscn", + "button": { "icon": "cards", "locale": "ui/character_panel/title", "index": 30 }, + "priority": 10 + }, + { + "id": "skills", + "kind": "panel", + "slot": "ModBeforeUIPanel", + "scene_path": "scenes/ui/skills_panel/skills_panel.tscn", + "button": { "icon": "skills", "locale": "ui/skills/title", "index": 40 }, + "priority": 10 + }, + { + "id": "game_menu", + "kind": "panel", + "slot": "ModBeforeUIPanel", + "scene_path": "scenes/menu/game_menu.tscn", + "button": { "icon": "settings", "locale": "menu/settings", "index": 50 }, + "priority": 10 + }, + { + "id": "journal", + "kind": "panel", + "slot": "ModBeforeUIPanel", + "scene_path": "scenes/ui/quest_journal.tscn", + "button": { "icon": "journal", "locale": "ui/journal/title", "index": 60 }, + "priority": 10 + } ] } diff --git a/scenes/menu/game_menu.tscn b/scenes/menu/game_menu.tscn new file mode 100644 index 0000000..cb4ab7e --- /dev/null +++ b/scenes/menu/game_menu.tscn @@ -0,0 +1,86 @@ +[gd_scene load_steps=2 format=3] + +[ext_resource type="Script" path="res://Core/UI/Menu/GameMenu.cs" id="GameMenuScript"] + +[node name="GameMenu" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 1 +script = ExtResource("GameMenuScript") + +[node name="Bg" type="ColorRect" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0, 0, 0, 0.65) + +[node name="Panel" type="Panel" parent="."] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -200.0 +offset_top = -220.0 +offset_right = 200.0 +offset_bottom = 220.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Margin" type="MarginContainer" parent="Panel"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/margin_left = 28 +theme_override_constants/margin_top = 20 +theme_override_constants/margin_right = 28 +theme_override_constants/margin_bottom = 20 + +[node name="VBox" type="VBoxContainer" parent="Panel/Margin"] +layout_mode = 2 +theme_override_constants/separation = 10 + +[node name="Title" type="Label" parent="Panel/Margin/VBox"] +layout_mode = 2 +text = "Меню" +horizontal_alignment = 1 +theme_override_font_sizes/font_size = 22 + +[node name="ReturnBtn" type="Button" parent="Panel/Margin/VBox"] +layout_mode = 2 +text = "Вернуться" + +[node name="SaveBtn" type="Button" parent="Panel/Margin/VBox"] +layout_mode = 2 +text = "Сохранить" + +[node name="LoadBtn" type="Button" parent="Panel/Margin/VBox"] +layout_mode = 2 +text = "Загрузить" + +[node name="SettingsBtn" type="Button" parent="Panel/Margin/VBox"] +layout_mode = 2 +text = "Настройки" + +[node name="Spacer" type="Control" parent="Panel/Margin/VBox"] +layout_mode = 2 +custom_minimum_size = Vector2(0, 16) + +[node name="MainMenuBtn" type="Button" parent="Panel/Margin/VBox"] +layout_mode = 2 +text = "Главное меню" + +[node name="ExitBtn" type="Button" parent="Panel/Margin/VBox"] +layout_mode = 2 +text = "Выход" diff --git a/scenes/menu/mods_menu.tscn b/scenes/menu/mods_menu.tscn new file mode 100644 index 0000000..5f9a82a --- /dev/null +++ b/scenes/menu/mods_menu.tscn @@ -0,0 +1,165 @@ +[gd_scene format=3 uid="uid://hl0j46kh1rmc"] + +[ext_resource type="Script" uid="uid://dq5snl02fmi16" path="res://Core/UI/Menu/ModsMenu.cs" id="ModsMenuScript"] + +[node name="ModsMenu" type="Control" unique_id=2105177378] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 1 +script = ExtResource("ModsMenuScript") + +[node name="Bg" type="ColorRect" parent="." unique_id=950831612] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0, 0, 0, 0.98039216) + +[node name="Panel" type="Panel" parent="." unique_id=664458435] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.1 +anchor_top = 0.15 +anchor_right = 0.9 +anchor_bottom = 0.85 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Margin" type="MarginContainer" parent="Panel" unique_id=1196300517] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/margin_left = 28 +theme_override_constants/margin_top = 20 +theme_override_constants/margin_right = 28 +theme_override_constants/margin_bottom = 20 + +[node name="VBox" type="VBoxContainer" parent="Panel/Margin" unique_id=937529024] +layout_mode = 2 +theme_override_constants/separation = 14 + +[node name="Title" type="Label" parent="Panel/Margin/VBox" unique_id=6175375] +layout_mode = 2 +theme_override_font_sizes/font_size = 26 +text = "Mods" +horizontal_alignment = 1 + +[node name="HBox" type="HBoxContainer" parent="Panel/Margin/VBox" unique_id=1102798166] +layout_mode = 2 +size_flags_vertical = 3 +theme_override_constants/separation = 0 + +[node name="LeftPanel" type="VBoxContainer" parent="Panel/Margin/VBox/HBox" unique_id=581222858] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_stretch_ratio = 2.0 + +[node name="FilterDisabledCheck" type="CheckButton" parent="Panel/Margin/VBox/HBox/LeftPanel" unique_id=1745806104] +layout_mode = 2 +button_pressed = true +text = "Показать отключённые" + +[node name="ResetOrderBtn" type="Button" parent="Panel/Margin/VBox/HBox/LeftPanel" unique_id=1745806105] +layout_mode = 2 +text = "Сбросить порядок" + +[node name="Scroll" type="ScrollContainer" parent="Panel/Margin/VBox/HBox/LeftPanel" unique_id=1745806103] +layout_mode = 2 +size_flags_vertical = 3 +horizontal_scroll_mode = 0 + +[node name="ModList" type="VBoxContainer" parent="Panel/Margin/VBox/HBox/LeftPanel/Scroll" unique_id=1970879274] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_constants/separation = 2 + +[node name="RightPanel" type="Control" parent="Panel/Margin/VBox/HBox" unique_id=1554774704] +clip_contents = true +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_stretch_ratio = 3.0 + +[node name="Margin" type="MarginContainer" parent="Panel/Margin/VBox/HBox/RightPanel" unique_id=1241124709] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/margin_left = 16 +theme_override_constants/margin_top = 8 +theme_override_constants/margin_right = 0 +theme_override_constants/margin_bottom = 0 + +[node name="DetailVBox" type="VBoxContainer" parent="Panel/Margin/VBox/HBox/RightPanel/Margin" unique_id=231694438] +layout_mode = 2 +theme_override_constants/separation = 8 + +[node name="Icon" type="TextureRect" parent="Panel/Margin/VBox/HBox/RightPanel/Margin/DetailVBox" unique_id=1418987891] +custom_minimum_size = Vector2(128, 128) +layout_mode = 2 +expand_mode = 1 +stretch_mode = 5 + +[node name="NameLabel" type="Label" parent="Panel/Margin/VBox/HBox/RightPanel/Margin/DetailVBox" unique_id=567148075] +custom_minimum_size = Vector2(1, 0) +layout_mode = 2 +theme_override_font_sizes/font_size = 18 +autowrap_mode = 3 + +[node name="StatusLabel" type="Label" parent="Panel/Margin/VBox/HBox/RightPanel/Margin/DetailVBox" unique_id=673006819] +custom_minimum_size = Vector2(1, 0) +layout_mode = 2 +autowrap_mode = 3 + +[node name="VersionLabel" type="Label" parent="Panel/Margin/VBox/HBox/RightPanel/Margin/DetailVBox" unique_id=2102288160] +custom_minimum_size = Vector2(1, 0) +layout_mode = 2 +theme_override_font_sizes/font_size = 13 +autowrap_mode = 3 + +[node name="AuthorLabel" type="Label" parent="Panel/Margin/VBox/HBox/RightPanel/Margin/DetailVBox" unique_id=1135622511] +custom_minimum_size = Vector2(1, 0) +layout_mode = 2 +theme_override_font_sizes/font_size = 13 +autowrap_mode = 3 + +[node name="HSep" type="HSeparator" parent="Panel/Margin/VBox/HBox/RightPanel/Margin/DetailVBox" unique_id=772722202] +layout_mode = 2 + +[node name="DescLabel" type="Label" parent="Panel/Margin/VBox/HBox/RightPanel/Margin/DetailVBox" unique_id=270929917] +custom_minimum_size = Vector2(120, 70) +layout_mode = 2 +theme_override_font_sizes/font_size = 13 +autowrap_mode = 3 + +[node name="DependsLabel" type="Label" parent="Panel/Margin/VBox/HBox/RightPanel/Margin/DetailVBox" unique_id=1148832840] +custom_minimum_size = Vector2(1, 0) +layout_mode = 2 +theme_override_font_sizes/font_size = 13 +autowrap_mode = 3 + +[node name="UsedByLabel" type="Label" parent="Panel/Margin/VBox/HBox/RightPanel/Margin/DetailVBox" unique_id=1295125493] +custom_minimum_size = Vector2(1, 0) +layout_mode = 2 +theme_override_font_sizes/font_size = 13 +autowrap_mode = 3 + +[node name="ToggleBtn" type="Button" parent="Panel/Margin/VBox/HBox/RightPanel/Margin/DetailVBox" unique_id=904879993] +layout_mode = 2 +size_flags_horizontal = 8 +text = "Toggle" + +[node name="BackBtn" type="Button" parent="Panel/Margin/VBox" unique_id=1161869583] +layout_mode = 2 +size_flags_horizontal = 8 +text = "Back" diff --git a/scenes/menu/save_load_menu.tscn b/scenes/menu/save_load_menu.tscn new file mode 100644 index 0000000..20cbf21 --- /dev/null +++ b/scenes/menu/save_load_menu.tscn @@ -0,0 +1,71 @@ +[gd_scene load_steps=3 format=3] + +[ext_resource type="Script" path="res://Core/UI/Menu/SaveLoadMenu.cs" id="SaveLoadMenuScript"] +[ext_resource type="Script" path="res://Core/UI/Menu/SaveSlotList.cs" id="SaveSlotListScript"] + +[node name="SaveLoadMenu" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 1 +script = ExtResource("SaveLoadMenuScript") + +[node name="Bg" type="ColorRect" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0, 0, 0, 0.65) + +[node name="Panel" type="Panel" parent="."] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -420.0 +offset_top = -280.0 +offset_right = 420.0 +offset_bottom = 280.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Margin" type="MarginContainer" parent="Panel"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/margin_left = 28 +theme_override_constants/margin_top = 20 +theme_override_constants/margin_right = 28 +theme_override_constants/margin_bottom = 20 + +[node name="VBox" type="VBoxContainer" parent="Panel/Margin"] +layout_mode = 2 +theme_override_constants/separation = 14 + +[node name="Title" type="Label" parent="Panel/Margin/VBox"] +layout_mode = 2 +text = "Save/Load" +horizontal_alignment = 1 +theme_override_font_sizes/font_size = 24 + +[node name="SlotGrid" type="Control" parent="Panel/Margin/VBox"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +custom_minimum_size = Vector2(0, 380) +script = ExtResource("SaveSlotListScript") + +[node name="BackBtn" type="Button" parent="Panel/Margin/VBox"] +layout_mode = 2 +text = "Back" +size_flags_horizontal = 8 diff --git a/scenes/menu/save_slot_item.tscn b/scenes/menu/save_slot_item.tscn new file mode 100644 index 0000000..5bf950e --- /dev/null +++ b/scenes/menu/save_slot_item.tscn @@ -0,0 +1,89 @@ +[gd_scene format=3 uid="uid://c6kll6en347h1"] + +[ext_resource type="Script" uid="uid://bkpfth5x606ge" path="res://Core/UI/Menu/SaveSlotItem.cs" id="SaveSlotItemScript"] + +[node name="SaveSlotItem" type="Control" unique_id=2135443384] +custom_minimum_size = Vector2(120, 120) +layout_mode = 3 +anchors_preset = 0 +script = ExtResource("SaveSlotItemScript") + +[node name="Background" type="ColorRect" parent="." unique_id=255218239] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.12, 0.12, 0.12, 0.9) + +[node name="ScreenshotRect" type="TextureRect" parent="." unique_id=1290008068] +layout_mode = 1 +anchors_preset = -1 +anchor_right = 1.0 +anchor_bottom = 0.55 +grow_horizontal = 2 +grow_vertical = 2 +expand_mode = 1 +stretch_mode = 5 + +[node name="DateLabel" type="Label" parent="." unique_id=408317888] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.02 +anchor_top = 0.57 +anchor_right = 0.98 +anchor_bottom = 0.68 +grow_horizontal = 2 +theme_override_font_sizes/font_size = 12 + +[node name="SceneLabel" type="Label" parent="." unique_id=1968956898] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.02 +anchor_top = 0.70 +anchor_right = 0.98 +anchor_bottom = 0.80 +grow_horizontal = 2 +theme_override_font_sizes/font_size = 11 + +[node name="TimeLabel" type="Label" parent="." unique_id=698436659] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.02 +anchor_top = 0.83 +anchor_right = 0.56 +anchor_bottom = 0.95 +grow_horizontal = 2 +theme_override_font_sizes/font_size = 10 + +[node name="StatsLabel" type="Label" parent="." unique_id=400000001] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.58 +anchor_top = 0.83 +anchor_right = 0.98 +anchor_bottom = 0.95 +grow_horizontal = 2 +theme_override_font_sizes/font_size = 10 +horizontal_alignment = 2 + +[node name="EmptyLabel" type="Label" parent="." unique_id=1262712091] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_font_sizes/font_size = 14 +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="SlotButton" type="Button" parent="." unique_id=1877010914] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +flat = true diff --git a/scenes/menu/save_slot_item.tscn.uid b/scenes/menu/save_slot_item.tscn.uid new file mode 100644 index 0000000..2abf731 --- /dev/null +++ b/scenes/menu/save_slot_item.tscn.uid @@ -0,0 +1 @@ +uid://c6kll6en347h1 \ No newline at end of file diff --git a/scenes/menu/settings_menu.tscn b/scenes/menu/settings_menu.tscn new file mode 100644 index 0000000..2554e30 --- /dev/null +++ b/scenes/menu/settings_menu.tscn @@ -0,0 +1,370 @@ +[gd_scene format=3 uid="uid://gqdtni3liast"] + +[ext_resource type="Script" uid="uid://bjgxbheqsar5r" path="res://Core/UI/Menu/SettingsMenu.cs" id="SettingsMenuScript"] + +[node name="SettingsMenu" type="Control" unique_id=894644832] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 1 +script = ExtResource("SettingsMenuScript") + +[node name="Bg" type="ColorRect" parent="." unique_id=21945756] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0, 0, 0, 1) + +[node name="Panel" type="Panel" parent="." unique_id=1554260654] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.1 +anchor_top = 0.1 +anchor_right = 0.9 +anchor_bottom = 0.9 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Margin" type="MarginContainer" parent="Panel" unique_id=1929120286] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/margin_left = 28 +theme_override_constants/margin_top = 20 +theme_override_constants/margin_right = 28 +theme_override_constants/margin_bottom = 20 + +[node name="VBox" type="VBoxContainer" parent="Panel/Margin" unique_id=150548585] +layout_mode = 2 +theme_override_constants/separation = 14 + +[node name="Title" type="Label" parent="Panel/Margin/VBox" unique_id=86160906] +layout_mode = 2 +theme_override_font_sizes/font_size = 26 +text = "Settings" +horizontal_alignment = 1 + +[node name="Tabs" type="TabContainer" parent="Panel/Margin/VBox" unique_id=1524671125] +layout_mode = 2 +size_flags_vertical = 3 +tab_alignment = 1 +current_tab = 0 + +[node name="GeneralMargin" type="MarginContainer" parent="Panel/Margin/VBox/Tabs"] +layout_mode = 2 +metadata/_tab_index = 0 +theme_override_constants/margin_left = 16 +theme_override_constants/margin_top = 12 +theme_override_constants/margin_right = 16 +theme_override_constants/margin_bottom = 12 + +[node name="General" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/GeneralMargin" unique_id=2028800899] +layout_mode = 2 +theme_override_constants/separation = 12 + +[node name="Spacer" type="Control" parent="Panel/Margin/VBox/Tabs/GeneralMargin/General" unique_id=1203872148] +custom_minimum_size = Vector2(0, 12) +layout_mode = 2 + +[node name="LangBox" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/GeneralMargin/General" unique_id=684741721] +layout_mode = 2 +theme_override_constants/separation = 16 + +[node name="LangLabel" type="Label" parent="Panel/Margin/VBox/Tabs/GeneralMargin/General/LangBox" unique_id=1707108944] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Language" + +[node name="LangSelect" type="OptionButton" parent="Panel/Margin/VBox/Tabs/GeneralMargin/General/LangBox" unique_id=2037857401] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="AudioMargin" type="MarginContainer" parent="Panel/Margin/VBox/Tabs"] +layout_mode = 2 +visible = false +metadata/_tab_index = 1 +theme_override_constants/margin_left = 16 +theme_override_constants/margin_top = 12 +theme_override_constants/margin_right = 16 +theme_override_constants/margin_bottom = 12 + +[node name="Audio" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/AudioMargin" unique_id=564523157] +layout_mode = 2 +theme_override_constants/separation = 4 + +[node name="SoundsBox" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio" unique_id=508426867] +layout_mode = 2 +theme_override_constants/separation = 4 + +[node name="ToggleRow" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/SoundsBox" unique_id=274422939] +layout_mode = 2 +theme_override_constants/separation = 12 + +[node name="SoundsLabel" type="Label" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/SoundsBox/ToggleRow" unique_id=1483011032] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Sounds" + +[node name="SoundsToggle" type="CheckButton" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/SoundsBox/ToggleRow" unique_id=126270437] +layout_mode = 2 + +[node name="VolumeRow" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/SoundsBox" unique_id=585263148] +layout_mode = 2 +theme_override_constants/separation = 12 + +[node name="SoundsVolumeLabel" type="Label" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/SoundsBox/VolumeRow" unique_id=1327120426] +layout_mode = 2 +text = "Volume" + +[node name="SoundsVolume" type="HSlider" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/SoundsBox/VolumeRow" unique_id=2061615116] +layout_mode = 2 +size_flags_horizontal = 3 +value = 100.0 + +[node name="SoundsVolumeValue" type="Label" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/SoundsBox/VolumeRow" unique_id=1079108664] +custom_minimum_size = Vector2(48, 0) +layout_mode = 2 +text = "100%" +horizontal_alignment = 2 + +[node name="Sep" type="HSeparator" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio" unique_id=988886928] +custom_minimum_size = Vector2(0, 8) +layout_mode = 2 + +[node name="MusicBox" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio" unique_id=1316259016] +layout_mode = 2 +theme_override_constants/separation = 4 + +[node name="ToggleRow2" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/MusicBox" unique_id=553618696] +layout_mode = 2 +theme_override_constants/separation = 12 + +[node name="MusicLabel" type="Label" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/MusicBox/ToggleRow2" unique_id=1559600377] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Music" + +[node name="MusicToggle" type="CheckButton" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/MusicBox/ToggleRow2" unique_id=901979875] +layout_mode = 2 + +[node name="VolumeRow2" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/MusicBox" unique_id=1411284591] +layout_mode = 2 +theme_override_constants/separation = 12 + +[node name="MusicVolumeLabel" type="Label" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/MusicBox/VolumeRow2" unique_id=1952498749] +layout_mode = 2 +text = "Volume" + +[node name="MusicVolume" type="HSlider" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/MusicBox/VolumeRow2" unique_id=504218348] +layout_mode = 2 +size_flags_horizontal = 3 +value = 5.0 + +[node name="MusicVolumeValue" type="Label" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/MusicBox/VolumeRow2" unique_id=1866810087] +custom_minimum_size = Vector2(48, 0) +layout_mode = 2 +text = "5%" +horizontal_alignment = 2 + +[node name="Sep2" type="HSeparator" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio" unique_id=1486966851] +custom_minimum_size = Vector2(0, 8) +layout_mode = 2 + +[node name="AmbientBox" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio" unique_id=127969403] +layout_mode = 2 +theme_override_constants/separation = 4 + +[node name="ToggleRow3" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/AmbientBox" unique_id=338401886] +layout_mode = 2 +theme_override_constants/separation = 12 + +[node name="AmbientLabel" type="Label" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/AmbientBox/ToggleRow3" unique_id=872436692] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Ambient" + +[node name="AmbientToggle" type="CheckButton" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/AmbientBox/ToggleRow3" unique_id=1160929014] +layout_mode = 2 + +[node name="VolumeRow3" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/AmbientBox" unique_id=1139865718] +layout_mode = 2 +theme_override_constants/separation = 12 + +[node name="AmbientVolumeLabel" type="Label" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/AmbientBox/VolumeRow3" unique_id=1610793395] +layout_mode = 2 +text = "Volume" + +[node name="AmbientVolume" type="HSlider" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/AmbientBox/VolumeRow3" unique_id=1343104331] +layout_mode = 2 +size_flags_horizontal = 3 +value = 5.0 + +[node name="AmbientVolumeValue" type="Label" parent="Panel/Margin/VBox/Tabs/AudioMargin/Audio/AmbientBox/VolumeRow3" unique_id=1909728919] +custom_minimum_size = Vector2(48, 0) +layout_mode = 2 +text = "5%" +horizontal_alignment = 2 + +[node name="DisplayMargin" type="MarginContainer" parent="Panel/Margin/VBox/Tabs"] +layout_mode = 2 +visible = false +metadata/_tab_index = 2 +theme_override_constants/margin_left = 16 +theme_override_constants/margin_top = 12 +theme_override_constants/margin_right = 16 +theme_override_constants/margin_bottom = 12 + +[node name="Display" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/DisplayMargin" unique_id=1371435162] +layout_mode = 2 +theme_override_constants/separation = 10 + +[node name="Spacer2" type="Control" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display" unique_id=270871165] +custom_minimum_size = Vector2(0, 12) +layout_mode = 2 + +[node name="ModeBox" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display" unique_id=455596205] +layout_mode = 2 +theme_override_constants/separation = 16 + +[node name="ModeLabel" type="Label" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display/ModeBox" unique_id=1346202262] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Window Mode" + +[node name="ModeSelect" type="OptionButton" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display/ModeBox" unique_id=631713497] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="ResBox" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display" unique_id=603217917] +layout_mode = 2 +theme_override_constants/separation = 16 + +[node name="ResLabel" type="Label" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display/ResBox" unique_id=1714673968] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Resolution" + +[node name="ResSelect" type="OptionButton" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display/ResBox" unique_id=651322592] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="MonitorBox" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display" unique_id=284981749] +layout_mode = 2 +theme_override_constants/separation = 16 + +[node name="MonitorLabel" type="Label" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display/MonitorBox" unique_id=1905911340] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Monitor" + +[node name="MonitorSelect" type="OptionButton" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display/MonitorBox" unique_id=1334336966] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="ScaleBox" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display" unique_id=930383631] +layout_mode = 2 +theme_override_constants/separation = 16 + +[node name="ScaleLabel" type="Label" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display/ScaleBox" unique_id=1924008447] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Scale" + +[node name="ScaleSelect" type="OptionButton" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display/ScaleBox" unique_id=2096132155] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="VSyncRow" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display" unique_id=348516587] +layout_mode = 2 +theme_override_constants/separation = 12 + +[node name="VSyncLabel" type="Label" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display/VSyncRow" unique_id=1204827790] +layout_mode = 2 +size_flags_horizontal = 3 +text = "VSync" + +[node name="VSyncToggle" type="CheckButton" parent="Panel/Margin/VBox/Tabs/DisplayMargin/Display/VSyncRow" unique_id=1909935663] +layout_mode = 2 + +[node name="ModSettingsMargin" type="MarginContainer" parent="Panel/Margin/VBox/Tabs"] +layout_mode = 2 +visible = false +metadata/_tab_index = 3 +theme_override_constants/margin_left = 16 +theme_override_constants/margin_top = 12 +theme_override_constants/margin_right = 16 +theme_override_constants/margin_bottom = 12 + +[node name="ModSettings" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin" unique_id=2038671463] +layout_mode = 2 +size_flags_vertical = 3 +theme_override_constants/separation = 12 + +[node name="LeftPanel" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings" unique_id=1856089080] +custom_minimum_size = Vector2(240, 0) +layout_mode = 2 +theme_override_constants/separation = 6 + +[node name="ModsTitle" type="Label" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings/LeftPanel" unique_id=1639725410] +layout_mode = 2 +theme_override_font_sizes/font_size = 15 +text = "Mods" +horizontal_alignment = 1 + +[node name="ModScroll" type="ScrollContainer" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings/LeftPanel" unique_id=1412822434] +layout_mode = 2 +size_flags_vertical = 3 +horizontal_scroll_mode = 0 + +[node name="ModList" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings/LeftPanel/ModScroll" unique_id=543902025] +layout_mode = 2 + +[node name="Sep" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings" unique_id=950619413] +custom_minimum_size = Vector2(10, 0) +layout_mode = 2 + +[node name="RightPanel" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings" unique_id=272738827] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_constants/separation = 8 + +[node name="TopBar" type="HBoxContainer" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings/RightPanel" unique_id=678746437] +layout_mode = 2 +theme_override_constants/separation = 12 + +[node name="SelectedModName" type="Label" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings/RightPanel/TopBar" unique_id=393931159] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 16 + +[node name="ResetBtn" type="Button" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings/RightPanel/TopBar" unique_id=531057889] +layout_mode = 2 +text = "Reset" + +[node name="SettingsScroll" type="ScrollContainer" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings/RightPanel" unique_id=674333894] +layout_mode = 2 +size_flags_vertical = 3 +horizontal_scroll_mode = 0 + +[node name="SettingsContainer" type="VBoxContainer" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings/RightPanel/SettingsScroll" unique_id=1664189823] +layout_mode = 2 +theme_override_constants/separation = 6 + +[node name="Placeholder" type="Label" parent="Panel/Margin/VBox/Tabs/ModSettingsMargin/ModSettings/RightPanel/SettingsScroll/SettingsContainer" unique_id=1501445323] +layout_mode = 2 +text = "No mod settings available" +horizontal_alignment = 1 + +[node name="BackBtn" type="Button" parent="Panel/Margin/VBox" unique_id=249196016] +layout_mode = 2 +size_flags_horizontal = 8 +text = "Back" diff --git a/scenes/ui/answer_box.tscn b/scenes/ui/answer_box.tscn new file mode 100644 index 0000000..b233c82 --- /dev/null +++ b/scenes/ui/answer_box.tscn @@ -0,0 +1,26 @@ +[gd_scene load_steps=2 format=3] + +[ext_resource type="Script" path="res://Core/UI/Dialog/AnswerBox.cs" id="1_answerbox"] +[ext_resource type="PackedScene" path="res://scenes/ui/answer_item.tscn" id="2_answeritem"] + +[node name="AnswerBox" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_answerbox") +itemScene = ExtResource("2_answeritem") +content = NodePath("Content") + +[node name="Content" type="VBoxContainer" parent="."] +layout_mode = 1 +anchor_left = 0.6 +anchor_top = 0.35 +anchor_right = 0.95 +anchor_bottom = 0.65 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +alignment = 1 diff --git a/scenes/ui/answer_item.tscn b/scenes/ui/answer_item.tscn new file mode 100644 index 0000000..5dcaf11 --- /dev/null +++ b/scenes/ui/answer_item.tscn @@ -0,0 +1,30 @@ +[gd_scene format=3 uid="uid://bv80qy227xxee"] + +[ext_resource type="Script" uid="uid://dbrnsck0vtfb3" path="res://Core/UI/Dialog/AnswerItem.cs" id="1_answeritem"] + +[node name="AnswerItem" type="Control" unique_id=1180917887] +custom_minimum_size = Vector2(0, 50) +layout_mode = 3 +anchors_preset = 0 +size_flags_horizontal = 3 +size_flags_vertical = 0 +script = ExtResource("1_answeritem") + +[node name="Button" type="Button" parent="." unique_id=2087954476] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="TextLabel" type="Label" parent="Button" unique_id=1302827224] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_font_sizes/font_size = 22 +horizontal_alignment = 1 +vertical_alignment = 1 diff --git a/scenes/ui/answer_item.tscn.uid b/scenes/ui/answer_item.tscn.uid new file mode 100644 index 0000000..316f0d9 --- /dev/null +++ b/scenes/ui/answer_item.tscn.uid @@ -0,0 +1 @@ +uid://bv80qy227xxee \ No newline at end of file diff --git a/scenes/ui/character_panel/action_card.tscn b/scenes/ui/character_panel/action_card.tscn new file mode 100644 index 0000000..185bd96 --- /dev/null +++ b/scenes/ui/character_panel/action_card.tscn @@ -0,0 +1,41 @@ +[gd_scene format=3 uid="uid://bb36m1yaqwt8k"] + +[ext_resource type="Script" uid="uid://de8plnw63lfno" path="res://Core/UI/CharacterPanel/ActionCardBehaviour.cs" id="1_script"] + +[node name="ActionCard" type="Control" unique_id=576160337] +custom_minimum_size = Vector2(300, 100) +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 1 +script = ExtResource("1_script") + +[node name="Icon" type="TextureRect" parent="." unique_id=910618115] +custom_minimum_size = Vector2(50, 100) +layout_mode = 1 +anchors_preset = -1 +anchor_top = 0.5 +anchor_bottom = 0.5 +offset_left = 4.0 +offset_top = -14.0 +offset_right = 32.0 +offset_bottom = 14.0 +grow_vertical = 2 +mouse_filter = 2 +expand_mode = 2 +stretch_mode = 5 + +[node name="NameLabel" type="Label" parent="." unique_id=1356044091] +layout_mode = 1 +anchors_preset = -1 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 110.0 +offset_right = -4.0 +grow_horizontal = 2 +grow_vertical = 2 +text = "Action" +vertical_alignment = 1 diff --git a/scenes/ui/character_panel/action_pool.tscn b/scenes/ui/character_panel/action_pool.tscn new file mode 100644 index 0000000..72733b2 --- /dev/null +++ b/scenes/ui/character_panel/action_pool.tscn @@ -0,0 +1,18 @@ +[gd_scene format=3 uid="uid://cgjc22lv4w4s5"] + +[ext_resource type="Script" uid="uid://cwois2ld152sn" path="res://Core/UI/CharacterPanel/ActionPoolBehaviour.cs" id="1_script"] + +[node name="ActionPool" type="Control" unique_id=1854115493] +layout_mode = 3 +anchors_preset = 0 +mouse_filter = 1 +script = ExtResource("1_script") + +[node name="Container" type="VBoxContainer" parent="." unique_id=1312152261] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/separation = 4 diff --git a/scenes/ui/character_panel/action_slot.tscn b/scenes/ui/character_panel/action_slot.tscn new file mode 100644 index 0000000..a2d8a2d --- /dev/null +++ b/scenes/ui/character_panel/action_slot.tscn @@ -0,0 +1,24 @@ +[gd_scene format=3 uid="uid://b00u0cgcip134"] + +[ext_resource type="Script" uid="uid://bfawx4g6dyrjo" path="res://Core/UI/CharacterPanel/ActionSlotBehaviour.cs" id="1_script"] + +[node name="ActionSlot" type="Control" unique_id=1066231859] +custom_minimum_size = Vector2(300, 100) +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 1 +script = ExtResource("1_script") + +[node name="Bg" type="ColorRect" parent="." unique_id=1234999814] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +color = Color(0.1, 0.1, 0.15, 0.5) diff --git a/scenes/ui/character_panel/character_card.tscn b/scenes/ui/character_panel/character_card.tscn new file mode 100644 index 0000000..bb59bf5 --- /dev/null +++ b/scenes/ui/character_panel/character_card.tscn @@ -0,0 +1,56 @@ +[gd_scene format=3 uid="uid://67q36mh0x454"] + +[ext_resource type="Script" uid="uid://dkioyb2bx5e10" path="res://Core/UI/CharacterPanel/CharacterCardBehaviour.cs" id="1_script"] +[ext_resource type="PackedScene" uid="uid://b00u0cgcip134" path="res://scenes/ui/character_panel/action_slot.tscn" id="2_slot"] + +[node name="CharacterCard" type="Control" unique_id=161727493] +custom_minimum_size = Vector2(250, 370) +layout_mode = 3 +anchors_preset = 10 +anchor_right = 1.0 +grow_horizontal = 2 +mouse_filter = 1 +script = ExtResource("1_script") + +[node name="Margin" type="MarginContainer" parent="." unique_id=540453317] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/margin_left = 8 +theme_override_constants/margin_top = 8 +theme_override_constants/margin_right = 8 +theme_override_constants/margin_bottom = 8 + +[node name="VBox" type="VBoxContainer" parent="Margin" unique_id=1477867509] +layout_mode = 2 +theme_override_constants/separation = 6 + +[node name="Header" type="HBoxContainer" parent="Margin/VBox" unique_id=410961700] +layout_mode = 2 + +[node name="Portrait" type="TextureRect" parent="Margin/VBox/Header" unique_id=427546847] +custom_minimum_size = Vector2(60, 60) +layout_mode = 2 +expand_mode = 2 +stretch_mode = 5 + +[node name="NameLabel" type="Label" parent="Margin/VBox/Header" unique_id=604539797] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Character Name" + +[node name="Slots" type="VBoxContainer" parent="Margin/VBox" unique_id=2066648023] +layout_mode = 2 +theme_override_constants/separation = 4 + +[node name="Slot0" parent="Margin/VBox/Slots" unique_id=592809057 instance=ExtResource("2_slot")] +layout_mode = 2 + +[node name="Slot1" parent="Margin/VBox/Slots" unique_id=424670098 instance=ExtResource("2_slot")] +layout_mode = 2 + +[node name="Slot2" parent="Margin/VBox/Slots" unique_id=1790943736 instance=ExtResource("2_slot")] +layout_mode = 2 diff --git a/scenes/ui/character_panel/character_panel.tscn b/scenes/ui/character_panel/character_panel.tscn new file mode 100644 index 0000000..ecc861f --- /dev/null +++ b/scenes/ui/character_panel/character_panel.tscn @@ -0,0 +1,120 @@ +[gd_scene format=3 uid="uid://boo65s3v3vn2c"] + +[ext_resource type="Script" uid="uid://b60voxni8jut4" path="res://Core/UI/CharacterPanel/CharacterPanelBehaviour.cs" id="1_script"] +[ext_resource type="PackedScene" uid="uid://cgjc22lv4w4s5" path="res://scenes/ui/character_panel/action_pool.tscn" id="2_pool"] + +[node name="CharacterPanel" type="Control" unique_id=2003172289] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 1 +script = ExtResource("1_script") + +[node name="Bg" type="ColorRect" parent="." unique_id=538790315] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +color = Color(0.05, 0.05, 0.1, 0.9) + +[node name="LeftPanel" type="Panel" parent="." unique_id=582936654] +layout_mode = 1 +anchors_preset = -1 +anchor_right = 0.68700004 +anchor_bottom = 1.0 +offset_right = 0.95996094 +size_flags_horizontal = 3 + +[node name="LeftVBox" type="VBoxContainer" parent="LeftPanel" unique_id=927965975] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Title" type="Label" parent="LeftPanel/LeftVBox" unique_id=1322979441] +layout_mode = 2 +theme_override_font_sizes/font_size = 18 +text = "ui/character_panel/title" +horizontal_alignment = 1 + +[node name="ScrollContainer" type="ScrollContainer" parent="LeftPanel/LeftVBox" unique_id=649910277] +layout_mode = 2 +size_flags_vertical = 3 +horizontal_scroll_mode = 0 + +[node name="CharactersContainer" type="VBoxContainer" parent="LeftPanel/LeftVBox/ScrollContainer" unique_id=15539617] +layout_mode = 2 +size_flags_horizontal = 3 +theme_override_constants/separation = 10 + +[node name="RightPanel" type="Panel" parent="." unique_id=94541911] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.69500005 +anchor_right = 1.0 +anchor_bottom = 0.91800004 +offset_left = 0.5998535 +offset_bottom = -0.032043457 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 + +[node name="ActionPoolScroll" type="ScrollContainer" parent="RightPanel" unique_id=1837472944] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +horizontal_scroll_mode = 0 + +[node name="ActionPool" parent="RightPanel/ActionPoolScroll" unique_id=2092045870 instance=ExtResource("2_pool")] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="CloseButton" type="Button" parent="." unique_id=140259217] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.697 +anchor_top = 0.94100004 +anchor_right = 0.85 +anchor_bottom = 0.9850001 +offset_left = -0.23999023 +offset_top = 0.4159546 +offset_bottom = 0.35992432 +grow_horizontal = 0 +grow_vertical = 0 +text = "ui/character_panel/close" + +[node name="ResetButton" type="Button" parent="." unique_id=73911922] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.855 +anchor_top = 0.94100004 +anchor_right = 0.99300003 +anchor_bottom = 0.9850001 +offset_left = 0.39990234 +offset_top = 0.4159546 +offset_right = 0.4399414 +offset_bottom = 0.35992432 +grow_horizontal = 0 +grow_vertical = 0 +text = "ui/character_panel/reset" + +[node name="DragLayer" type="Control" parent="." unique_id=1296303852] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 diff --git a/scenes/ui/dialog_box.tscn b/scenes/ui/dialog_box.tscn new file mode 100644 index 0000000..f5778da --- /dev/null +++ b/scenes/ui/dialog_box.tscn @@ -0,0 +1,107 @@ +[gd_scene format=3 uid="uid://b8vnxfoixyust"] + +[ext_resource type="Script" uid="uid://b41bti3wq4m88" path="res://Core/UI/Dialog/DialogBox.cs" id="1_dialogbox"] +[ext_resource type="PackedScene" path="res://scenes/ui/answer_box.tscn" id="2_answerbox"] + +[node name="DialogBox" type="Control" unique_id=702809053 node_paths=PackedStringArray("textField", "titleField", "titleBody", "firstAvatar", "secondAvatar")] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_dialogbox") +answerBoxScene = ExtResource("2_answerbox") +textField = NodePath("DialogBody/TextField") +titleField = NodePath("TitleBody/TitleField") +titleBody = NodePath("TitleBody") +firstAvatar = NodePath("FirstAvatar") +secondAvatar = NodePath("SecondAvatar") + +[node name="DialogBody" type="ColorRect" parent="." unique_id=1510369637] +layout_mode = 1 +anchors_preset = 12 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_top = -300.0 +grow_horizontal = 2 +grow_vertical = 0 +color = Color(0, 0, 0, 0.85) + +[node name="TextField" type="Label" parent="DialogBody" unique_id=2065569930] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 20.0 +offset_top = 10.0 +offset_right = -20.0 +offset_bottom = -10.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_font_sizes/font_size = 24 +vertical_alignment = 1 +autowrap_mode = 2 + +[node name="FirstAvatar" type="TextureRect" parent="." unique_id=1696535122] +visible = false +texture_filter = 1 +layout_mode = 1 +anchors_preset = -1 +anchor_top = 0.6 +anchor_right = 0.13 +anchor_bottom = 1.0 +offset_left = 90.0 +offset_top = -300.0 +offset_right = 90.0 +offset_bottom = -300.0 +grow_horizontal = 0 +grow_vertical = 0 +expand_mode = 1 +stretch_mode = 4 + +[node name="SecondAvatar" type="TextureRect" parent="." unique_id=1913233391] +visible = false +texture_filter = 1 +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.87 +anchor_top = 0.6 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -90.0 +offset_top = -300.0 +offset_right = -90.0 +offset_bottom = -300.0 +grow_horizontal = 0 +grow_vertical = 0 +expand_mode = 1 +stretch_mode = 4 + +[node name="TitleBody" type="Control" parent="." unique_id=1986161675] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -400.0 +offset_top = -60.0 +offset_right = 400.0 +offset_bottom = 60.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="TitleField" type="Label" parent="TitleBody" unique_id=2046072321] +visible = false +layout_mode = 1 +anchors_preset = -1 +anchor_left = -0.5 +anchor_right = 1.5 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_font_sizes/font_size = 28 +horizontal_alignment = 1 +vertical_alignment = 1 diff --git a/scenes/ui/dialog_box.tscn.uid b/scenes/ui/dialog_box.tscn.uid new file mode 100644 index 0000000..1e43ecd --- /dev/null +++ b/scenes/ui/dialog_box.tscn.uid @@ -0,0 +1 @@ +uid://b8vnxfoixyust \ No newline at end of file diff --git a/scenes/ui/inventory_item.tscn b/scenes/ui/inventory_item.tscn new file mode 100644 index 0000000..ace76c5 --- /dev/null +++ b/scenes/ui/inventory_item.tscn @@ -0,0 +1,38 @@ +[gd_scene format=3] + +[ext_resource type="Script" path="res://Core/UI/Inventory/InventoryItemBehaviour.cs" id="1"] + +[node name="InventoryItem" type="Control" node_paths=PackedStringArray("imgIcon", "txtCount")] +layout_mode = 3 +anchors_preset = 0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +script = ExtResource("1") +imgIcon = NodePath("imgIcon") +txtCount = NodePath("txtCount") + +[node name="imgIcon" type="TextureRect" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +expand_mode = 1 +stretch_mode = 4 +mouse_filter = 2 + +[node name="txtCount" type="Label" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.6 +anchor_top = 0.7 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 0 +grow_vertical = 0 +theme_override_font_sizes/font_size = 14 +horizontal_alignment = 2 +vertical_alignment = 1 +mouse_filter = 2 +text = "" diff --git a/scenes/ui/inventory_panel.tscn b/scenes/ui/inventory_panel.tscn new file mode 100644 index 0000000..9a4e63a --- /dev/null +++ b/scenes/ui/inventory_panel.tscn @@ -0,0 +1,13 @@ +[gd_scene format=3] + +[ext_resource type="Script" path="res://Core/UI/Inventory/InventoryPanelBehaviour.cs" id="1_script"] + +[node name="InventoryPanel" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 1 +script = ExtResource("1_script") diff --git a/scenes/ui/map_widget.tscn b/scenes/ui/map_widget.tscn new file mode 100644 index 0000000..a8e7819 --- /dev/null +++ b/scenes/ui/map_widget.tscn @@ -0,0 +1,13 @@ +[gd_scene format=3] + +[ext_resource type="Script" uid="uid://djf3cf86eikq5" path="res://Core/UI/Tool/MapWidget.cs" id="1_script"] + +[node name="MapWidget" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 1 +script = ExtResource("1_script") diff --git a/scenes/ui/message.tscn b/scenes/ui/message.tscn new file mode 100644 index 0000000..d32331f --- /dev/null +++ b/scenes/ui/message.tscn @@ -0,0 +1,17 @@ +[gd_scene format=3] + +[ext_resource type="Script" path="res://Core/UI/Messages/UiMessage.cs" id="1_msg"] + +[node name="Message" type="Control" node_paths=PackedStringArray("textField")] +layout_mode = 3 +anchors_preset = 0 +script = ExtResource("1_msg") +textField = NodePath("Label") + +[node name="Label" type="Label" parent="."] +layout_mode = 0 +offset_left = 0.0 +offset_top = 0.0 +offset_right = 0.0 +offset_bottom = 0.0 +text = "" diff --git a/scenes/ui/quest_journal.tscn b/scenes/ui/quest_journal.tscn new file mode 100644 index 0000000..5e702f3 --- /dev/null +++ b/scenes/ui/quest_journal.tscn @@ -0,0 +1,13 @@ +[gd_scene format=3] + +[ext_resource type="Script" path="res://Core/UI/Quests/QuestJournalBehaviour.cs" id="1_script"] + +[node name="QuestJournal" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 1 +script = ExtResource("1_script") diff --git a/scenes/ui/skills_panel/skill_card.tscn b/scenes/ui/skills_panel/skill_card.tscn new file mode 100644 index 0000000..15dd22f --- /dev/null +++ b/scenes/ui/skills_panel/skill_card.tscn @@ -0,0 +1,69 @@ +[gd_scene format=3] + +[ext_resource type="Script" path="res://Core/Skills/SkillCardBehaviour.cs" id="1_script"] +[ext_resource type="Script" path="res://Core/Skills/SkillCardFrameBehaviour.cs" id="2_frame_script"] + +[node name="SkillCard" type="Control"] +custom_minimum_size = Vector2(160, 210) +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 1 +script = ExtResource("1_script") +frame = NodePath("Frame") +txtName = NodePath("TxtName") +imgCard = NodePath("ImgCard") + +[node name="Frame" type="Control" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +script = ExtResource("2_frame_script") +img = NodePath("FrameImg") + +[node name="FrameImg" type="TextureRect" parent="Frame"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +expand_mode = 3 +stretch_mode = 5 + +[node name="ImgCard" type="TextureRect" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.08 +anchor_top = 0.05 +anchor_right = 0.92 +anchor_bottom = 0.75 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +expand_mode = 2 +stretch_mode = 5 + +[node name="TxtName" type="Label" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.05 +anchor_top = 0.78 +anchor_right = 0.95 +anchor_bottom = 0.98 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +theme_override_font_sizes/font_size = 12 +text = "" +horizontal_alignment = 1 +vertical_alignment = 1 +autowrap_mode = 1 diff --git a/scenes/ui/skills_panel/skills_panel.tscn b/scenes/ui/skills_panel/skills_panel.tscn new file mode 100644 index 0000000..9756c85 --- /dev/null +++ b/scenes/ui/skills_panel/skills_panel.tscn @@ -0,0 +1,159 @@ +[gd_scene format=3] + +[ext_resource type="Script" path="res://Core/UI/SkillsPanel/SkillsPanelBehaviour.cs" id="1_script"] + +[node name="SkillsPanel" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 1 +script = ExtResource("1_script") + +[node name="Bg" type="ColorRect" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +color = Color(0.05, 0.05, 0.1, 0.9) + +[node name="Title" type="Label" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_right = 1.0 +offset_left = 20.0 +offset_top = 10.0 +offset_right = -20.0 +offset_bottom = 40.0 +grow_horizontal = 2 +theme_override_font_sizes/font_size = 22 +text = "Skills" +horizontal_alignment = 1 + +[node name="ScrollContainer" type="ScrollContainer" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 20.0 +offset_top = 50.0 +offset_right = -20.0 +offset_bottom = -60.0 +grow_horizontal = 2 +grow_vertical = 2 +horizontal_scroll_mode = 0 + +[node name="GridContent" type="Control" parent="ScrollContainer"] +layout_mode = 2 +mouse_filter = 2 + +[node name="ClosePanel" type="Panel" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.85 +anchor_top = 0.94 +anchor_right = 0.99 +anchor_bottom = 0.99 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="CloseButton" type="Button" parent="ClosePanel"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +text = "Close" + +[node name="ExpandedOverlay" type="Control" parent="."] +visible = false +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 1 + +[node name="ExpandedBg" type="ColorRect" parent="ExpandedOverlay"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +color = Color(0, 0, 0, 0.9) + +[node name="ExpandedFrameImg" type="TextureRect" parent="ExpandedOverlay"] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.1 +anchor_top = 0.1 +anchor_right = 0.9 +anchor_bottom = 0.9 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +expand_mode = 3 +stretch_mode = 5 + +[node name="ExpandedImage" type="TextureRect" parent="ExpandedOverlay"] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.15 +anchor_top = 0.15 +anchor_right = 0.85 +anchor_bottom = 0.85 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +expand_mode = 2 +stretch_mode = 5 + +[node name="ExpandedName" type="Label" parent="ExpandedOverlay"] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.15 +anchor_bottom = 1.0 +offset_top = -40.0 +offset_right = -20.0 +offset_bottom = -14.0 +grow_horizontal = 2 +theme_override_font_sizes/font_size = 20 +text = "" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="DescriptionBg" type="ColorRect" parent="ExpandedOverlay"] +layout_mode = 1 +anchors_preset = -1 +anchor_top = 0.75 +anchor_right = 0.35 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 1 +color = Color(0.05, 0.05, 0.1, 0.85) + +[node name="DescriptionLabel" type="RichTextLabel" parent="ExpandedOverlay/DescriptionBg"] +layout_mode = 1 +anchors_preset = -1 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 12.0 +offset_top = 12.0 +offset_right = -12.0 +offset_bottom = -12.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +bbcode_enabled = true +fit_content = true +scroll_active = false diff --git a/src/StarterPartyInitializer.cs b/src/StarterPartyInitializer.cs index f891d67..c84ad08 100644 --- a/src/StarterPartyInitializer.cs +++ b/src/StarterPartyInitializer.cs @@ -1,3 +1,4 @@ +using Cthangover.Core.Events; using Cthangover.Core.Mods; using Cthangover.Core.Settings; @@ -28,6 +29,8 @@ namespace Cthangover.Core.Characters /// public class StarterPartyInitializer : IModInitializer { + private static bool newGameHookInstalled; + /// /// No-op: cross-mod lifecycle notifications are not needed for /// starter party setup. Each mod's OnModResourcesReady @@ -40,9 +43,23 @@ namespace Cthangover.Core.Characters /// to both Characters and BattleSet via /// CharacterData.AddCharacterToParty. Called once, after /// all mod file providers and JSON resources are guaranteed to - /// be accessible. + /// be accessible. Also installs the one-time + /// hook so the starter party is + /// restored after ResetRuntime wipes it at the start of a + /// new game. Both operations are idempotent. /// public void OnModResourcesReady() + { + SeedStarterParty(); + + if (newGameHookInstalled) + return; + + newGameHookInstalled = true; + ModEventBus.Subscribe(_ => SeedStarterParty()); + } + + private static void SeedStarterParty() { GameData.Instance.Runtime.CharacterData.AddCharacterToParty("Marao"); GameData.Instance.Runtime.SkillData.AddSkill("slave_master"); diff --git a/wrappers/default.wrappertmpl b/wrappers/default.wrappertmpl deleted file mode 100644 index 5528ed5..0000000 --- a/wrappers/default.wrappertmpl +++ /dev/null @@ -1,30 +0,0 @@ -using Godot; -using System; -using System.Linq; -using System.Collections.Generic; - -public static class SceneBuilderScript -{ - private static Node _root; - - public static T Get(string name) where T : Node - { - return _root.GetNode(name); - } - - public static Node Get(string name) - { - return _root.GetNode(name); - } - - public static T FindNode(string nodeName) where T : Node - { - return Cthangover.Core.Scenes.SceneContextNode.FindNode(nodeName); - } - - public static void Run(Node root) - { - _root = root; - {{USER_CODE}} - } -}