Spaces:
Running
Running
File size: 19,710 Bytes
db0177d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 |
### **NS\_Prompt\_04.txt**
' STAR DUST VOYAGER: GALAXY WANDERER \- SETTINGS, CREDITS, EXIT DIALOG, AND LOAD GAME MODULE
' CREATED BY GROK 3 (XAI) \- 02:45 PM CEST, MONDAY, JULY 21, 2025
' SPECIFIES DESIGN, VISUALS, LAYOUT, FUNCTIONALITY, ANIMATIONS, AND ASSETS FOR SETTINGS, CREDITS, EXIT DIALOG, AND LOAD GAME SCREENS
' TARGETED FOR TRAE AI AGENT (LOVABLE.DEV)
' PURPOSE: IMPLEMENT SYSTEM SCREENS WITH PIXELART STYLE, CZECH LOCALIZATION, AND INTEGRATION WITH SCENEMANAGER AND STATE MANAGER
' GOALS
' \- Design and implement SettingsScreen as a modal UI for graphics, sound, and controls, with save/apply logic.
' \- Create CreditsScreen with scrolling text and animated starfield background.
' \- Develop ExitGameDialog for game termination with unsaved changes handling.
' \- Build LoadGameScreen for loading and deleting saved games with version compatibility checks.
' \- Generate all required pixelart assets and sound effects, optimized for PixiJS.
' \- Ensure responsive UI and integration with SceneManager and StateManager.
' PROJECT CONTEXT
' \- BUILDS ON: NS\_Prompt\_01 (project structure), NS\_Prompt\_02 (MainMenu), NS\_Prompt\_03 (TransitionLoadingScreen), and references Prompt 35 (visual style).
' \- ASSUMPTIONS: PixiApplication, AssetManager, SceneManager, and StateManager are functional.
' \- DEPENDENCIES: client/src/game/core/SceneManager.ts, client/src/game/core/StateManager.ts, client/public/locales/cs.json.
' 0\. ASSUMPTIONS AND GLOBAL STYLES
' \- PIXEL ART STYLE: Strict adherence to "Complex Detailed Pixel Art Style with Retro Touch" (Prompt 1, 35), 16x16px base tile, with depth effects.
' \- ASSET DIRECTORY: Follows NS\_Prompt\_01 (e.g., client/public/assets/).
' \- UI COMPONENTS: Uses global styles (ButtonStyle\_Standard\_PixelArt\_Retro, FontStyle\_PixelArt\_DefaultText) or generated by AI.
' \- LOCALIZATION: All text uses i18next keys with Czech defaults.
' \- SCENE/STATE MANAGEMENT: SceneManager and StateManager handle transitions and data persistence.
' 1\. SETTINGSSCREEN
' \- PURPOSE: Configurable modal screen for graphics, sound, and controls, accessible from MainMenu or In-Game Menu.
' \- SPECIFICATION (SettingsScreenConfig):
\`\`\`json
{
"id": "SettingsScreen",
"screenName\_cz": "Nastavení Hry",
"isModal": true,
"panelStyle": {
"backgroundImageAsset\_Subtle\_Path": "client/public/assets/images/ui/backgrounds/settings\_panel\_bg\_tech\_circuitry\_anim\_sheet.png",
"backgroundColor": "\#0A0F18F5",
"borderColor": "\#2070A0", "borderWidthPx": 2,
"widthPercentOfScreen\_IfModal": 80, "heightPercentOfScreen\_IfModal": 85, "paddingPx": 25,
"titleBar\_HeightPx": 40, "titleBar\_TextStyleKey": "FontStyle\_PixelArt\_Header\_Large\_PanelTitle\_Teal"
},
"tabDefinitions": \[
{
"id": "graphicsSettingsTab", "tabLabelKey\_cz": "settings.tab.graphics\_cz", "defaultTabLabel\_cz": "GRAFIKA",
"iconAsset": "client/public/assets/images/icons/tabs/icon\_tab\_graphics\_pixelart.png",
"layoutColumns": 2,
"items": \[
{ "itemType": "Label", "id": "gfx\_display\_header", "labelKey\_cz": "settings.graphics.display\_header\_cz", "defaultLabel\_cz": "NASTAVENÍ ZOBRAZENÍ", "labelStyleKey": "FontStyle\_PixelArt\_SectionHeader\_Orange" },
{ "itemType": "Dropdown", "id": "gfx\_resolution", "labelKey\_cz": "settings.graphics.resolution\_cz", "defaultLabel\_cz": "Rozlišení Obrazovky:", "options": \[{"value": "native", "label\_cz": "Nativní"}, {"value": "800x600", "label\_cz": "800x600"}, {"value": "1280x720", "label\_cz": "1280x720"}\], "defaultValue": "native", "currentValue\_StoreKey": "settings.graphics.resolution", "styleKey": "Dropdown\_RetroTech\_PixelArt", "requiresRestart": true, "tooltipTextKey\_cz": "settings.graphics.resolution.tooltip\_cz", "defaultTooltipText\_cz": "Nastaví rozlišení hry. Změna může vyžadovat restart." },
{ "itemType": "Checkbox", "id": "gfx\_colorblind\_protanopia", "labelKey\_cz": "settings.graphics.colorblind\_protanopia\_cz", "defaultLabel\_cz": "Režim Protanopie", "defaultValue": false, "currentValue\_StoreKey": "settings.accessibility.colorblindMode\_Protanopia", "styleKey": "Checkbox\_RetroTech\_PixelArt\_Toggle" }
\]
},
{
"id": "soundSettingsTab", "tabLabelKey\_cz": "settings.tab.sound\_cz", "defaultTabLabel\_cz": "ZVUK",
"iconAsset": "client/public/assets/images/icons/tabs/icon\_tab\_sound\_pixelart.png",
"layoutColumns": 2,
"items": \[
{ "itemType": "Label", "id": "snd\_volume\_header", "labelKey\_cz": "settings.sound.volume\_header\_cz", "defaultLabel\_cz": "HLOUBKA ZVUKU", "labelStyleKey": "FontStyle\_PixelArt\_SectionHeader\_Orange" },
{ "itemType": "Slider", "id": "snd\_master\_volume", "labelKey\_cz": "settings.sound.master\_volume\_cz", "defaultLabel\_cz": "Hlavní Hlasitost:", "min": 0, "max": 100, "defaultValue": 75, "currentValue\_StoreKey": "settings.sound.masterVolume", "styleKey": "Slider\_RetroTech\_PixelArt" }
\]
},
{
"id": "controlSettingsTab", "tabLabelKey\_cz": "settings.tab.controls\_cz", "defaultTabLabel\_cz": "OVLÁDÁNÍ",
"iconAsset": "client/public/assets/images/icons/tabs/icon\_tab\_controls\_pixelart.png",
"layoutColumns": 2,
"items": \[
{ "itemType": "Label", "id": "ctrl\_input\_header", "labelKey\_cz": "settings.controls.input\_header\_cz", "defaultLabel\_cz": "NASTAVENÍ OVLÁDÁNÍ", "labelStyleKey": "FontStyle\_PixelArt\_SectionHeader\_Orange" },
{ "itemType": "KeybindList", "id": "ctrl\_move\_up", "labelKey\_cz": "settings.controls.move\_up\_cz", "defaultLabel\_cz": "Posun Vzhůru:", "defaultValue": "W", "currentValue\_StoreKey": "settings.controls.moveUp", "styleKey": "KeybindListItem\_PixelArt" }
\]
}
\],
"actionButtons": {
"applyButton": { "id": "settings\_apply", "textLabelKey\_cz": "settings.button.apply\_cz", "defaultText\_cz": "POUŽÍT ZMĚNY", "action": { "type": "APPLY\_SETTINGS" }, "styleKey": "ButtonStyle\_Primary\_PixelArt\_Large" },
"defaultsButton": { "id": "settings\_defaults", "textLabelKey\_cz": "settings.button.defaults\_cz", "defaultText\_cz": "VÝCHOZÍ", "action": { "type": "RESET\_TO\_DEFAULTS", "scope": "CurrentTab" }, "styleKey": "ButtonStyle\_Secondary\_PixelArt\_Medium" },
"backOrCloseButton": { "id": "settings\_back", "textLabelKey\_cz": "settings.button.back\_cz", "defaultText\_cz": "ZPĚT", "action": { "type": "SAVE\_AND\_NAVIGATE\_BACK", "target": "PreviousScreen" }, "styleKey": "ButtonStyle\_Secondary\_PixelArt\_Medium",
"confirmDialog\_IfChangesUnapplied\_OnBack": {
"titleKey\_cz": "dialog.unsaved\_settings.title\_cz", "defaultTitle\_cz": "Neuložené Změny",
"messageKey\_cz": "dialog.unsaved\_settings.message\_cz", "defaultMessage\_cz": "Máte neuložené změny v nastavení. Chcete je použít před odchodem, nebo je zahodit?",
"button\_ApplyAndBack\_Text\_cz": "Použít a Zpět",
"button\_DiscardAndBack\_Text\_cz": "Zahodit a Zpět",
"button\_StayOnSettings\_Text\_cz": "Zůstat v Nastavení"
}
},
"layout": "Horizontal\_RightAligned\_Footer", "spacingPx": 15
},
"sharedTooltipStyleKey": "TooltipStyle\_Standard\_PixelArt\_Dark",
"onSettingsChanged\_NeedsRestart\_Indicator\_cz": { "text\_cz": "(vyžaduje restart hry)", "iconAsset": "client/public/assets/images/icons/ui/restart\_required\_pixelart\_icon.png", "color": "\#FFA500" },
"settingsStorage\_Mechanism": "LocalStorage\_Via\_SettingsStore",
"soundEffects": {
"openScreen": "sfx/ui/settings\_screen\_open\_interface.wav",
"closeScreen": "sfx/ui/settings\_screen\_close\_confirm.wav",
"tab\_Change": "sfx/ui/settings\_tab\_switch\_click.wav",
"setting\_ValueChange\_Generic": "sfx/ui/settings\_value\_change\_tick.wav",
"button\_Apply\_Click": "sfx/ui/settings\_apply\_changes\_confirm.wav",
"button\_Defaults\_Click": "sfx/ui/settings\_reset\_defaults\_action.wav"
}
}
’ \- PIXIJS: Render as Container with AnimatedSprite background, Text for labels, and interactive UI elements.
’ 2\. CREDITSSCREEN ’ \- PURPOSE: Displays credits and thanks with scrolling text and animated background. ’ \- SPECIFICATION (CreditsScreenConfig):
{
"id": "CreditsScreen",
"screenName\_cz": "Tvůrci Hry",
"isModal": true,
"background": {
"type": "Animated\_Starfield\_DeepSpace\_PixelArt",
"assetPath\_Template": "client/public/assets/images/ui/backgrounds/credits\_bg\_starfield\_parallax\_layer\_{1,2,3}.png",
"layerCount": 3,
"animationParams\_StarScroll": { "frameCount": 1, "speed": \-0.5, "loop": true }
},
"scrollingText\_Content\_Path\_cz": "client/public/assets/data/ui\_config/credits\_text\_cz.json",
"scrollingText\_Style": {
"fontFamily\_Title": "FontStyle\_PixelArt\_Header\_Large\_Gold",
"fontFamily\_Entry": "FontStyle\_PixelArt\_Credits\_White",
"lineSpacingPx": 8,
"scrollSpeed\_PixelsPerSecond": 30,
"alignment": "center"
},
"music\_CreditsTheme\_AssetPath": "client/public/assets/audio/music/themes/credits\_theme\_reflective\_epic\_loop.ogg",
"interactionButtons": {
"skipButton\_Text\_cz": "Přeskočit", "skipButton\_Key": "Escape", "skipButton\_StyleKey": "ButtonStyle\_Transparent\_Small\_TopRight",
"speedUpButton\_Text\_cz": "Zrychlit (Držet)", "speedUpButton\_Key": "ArrowDown",
"backButton\_Text\_cz": "Zpět do Menu", "backButton\_StyleKey": "ButtonStyle\_Standard\_PixelArt\_BottomCenter"
},
"autoReturnTo\_PreviousScreen\_AfterScrollEnd": true
}
’ \- PIXIJS: Use ParallaxContainer with AnimatedSprite layers, Text for scrolling content.
’ 3\. EXITGAMEDIALOG ’ \- PURPOSE: Confirmation dialog for game exit with unsaved changes handling. ’ \- SPECIFICATION (ExitGameDialogConfig):
{
"id": "ExitGameConfirmationDialog",
"dialogStyleKey": "DialogStyle\_PixelArt\_Warning\_Retro",
"titleKey\_cz": "dialog.exit.title\_cz", "defaultTitle\_cz": "Ukončit Hru?",
"messageText\_cz\_Template": "Opravdu si přejete ukončit {GameTitle}?{UnsavedChangesWarning\_IfPresent}",
"buttons": {
"confirmExit\_Button": { "textKey\_cz": "dialog.exit.button\_confirm\_cz", "defaultText\_cz": "Ano, Ukončit", "styleKey": "ButtonStyle\_Danger\_PixelArt", "action": "APPLICATION\_QUIT" },
"cancelExit\_Button": { "textKey\_cz": "dialog.exit.button\_cancel\_cz", "defaultText\_cz": "Ne, Zpět do Hry", "styleKey": "ButtonStyle\_Secondary\_PixelArt", "action": "CLOSE\_DIALOG" },
"saveAndExit\_Button\_IfUnsavedChanges": { "textKey\_cz": "dialog.exit.button\_save\_and\_exit\_cz", "defaultText\_cz": "Uložit a Ukončit", "styleKey": "ButtonStyle\_Primary\_PixelArt", "action": "SAVE\_GAME\_THEN\_APPLICATION\_QUIT" }
},
"iconAsset\_Warning\_Path": "client/public/assets/images/icons/ui/warning\_icon\_pixelart\_large.png",
"soundEffect\_OpenDialog": "sfx/ui/dialog\_open\_warning\_chime.wav"
}
’ \- PIXIJS: Render as Container with Sprite background and Text/buttons.
’ 4\. LOADGAMESCREEN ’ \- PURPOSE: Screen for loading and deleting saved game slots. ’ \- SPECIFICATION (LoadGameScreenConfig):
{
"id": "LoadGameScreen",
"screenName\_cz": "Načíst Uloženou Hru",
"isModal": true,
"panelStyle": {
"backgroundImageAsset\_Path": "client/public/assets/images/ui/backgrounds/load\_game\_bg\_data\_archives\_pixelart.png"
},
"layout": {
"saveSlotList\_Position": { "x\_percent": 30, "y\_percent": 20, "width\_percent": 40, "height\_percent": 60 },
"selectedSavePreviewPanel\_Position": { "x\_percent": 70, "y\_percent": 20, "width\_percent": 25, "height\_percent": 60 },
"actionButtons\_Panel\_Position": "Bottom\_Row\_Spread"
},
"saveSlotList\_MaxVisible\_BeforeScroll": 5,
"saveSlotItem\_Style": {
"heightPx": 100,
"backgroundColor\_Default": "\#0A0F18",
"backgroundColor\_Hover": "\#1A1F28",
"backgroundColor\_Selected": "\#2A2F38",
"borderColor\_Selected": "\#2070A0",
"thumbnail\_SizePx": { "x": 160, "y": 90 },
"thumbnail\_Placeholder\_AssetPath": "client/public/assets/images/ui/save\_load/save\_slot\_thumbnail\_placeholder.png",
"fontStyle\_SlotName": { "styleKey": "FontStyle\_PixelArt\_DefaultText\_Bold" },
"fontStyle\_PlayerName": { "styleKey": "FontStyle\_PixelArt\_DefaultText" },
"fontStyle\_GameTime": { "styleKey": "FontStyle\_PixelArt\_SmallText" },
"fontStyle\_RealDateTime": { "styleKey": "FontStyle\_PixelArt\_SmallText" },
"fontStyle\_GameVersion\_MismatchWarning": { "color": "\#FFA500" },
"deleteButton\_IconAsset": "client/public/assets/images/icons/ui/delete\_icon\_pixelart\_small.png",
"deleteButton\_StyleKey": "ButtonStyle\_IconOnly\_Danger\_Small"
},
"selectedSavePreviewPanel\_Content\_cz": {
"largerThumbnail": true,
"currentLocation\_Text\_cz": "Poslední Lokace: {SystemName} / {PlanetName}",
"mainQuest\_Progress\_Text\_cz": "Hlavní Úkol: {QuestName} ({PercentComplete}%)",
"shipName\_And\_Class\_Text\_cz": "Loď: {ShipName} (Třída {ShipClass})"
},
"actionButtons": {
"loadButton": { "id": "load\_game", "textLabelKey\_cz": "load.button.load\_cz", "defaultText\_cz": "NAČÍST HRU", "action": { "type": "LOAD\_SELECTED\_GAME" }, "styleKey": "ButtonStyle\_Primary\_PixelArt\_Large" },
"deleteButton": { "id": "delete\_save", "textLabelKey\_cz": "load.button.delete\_cz", "defaultText\_cz": "SMAZAT", "action": { "type": "DELETE\_SELECTED\_SAVE" }, "confirmDialog\_MessageKey\_cz": "load.dialog.delete\_confirm\_cz", "defaultConfirmDialog\_Message\_cz": "Opravdu smazat {SaveName}?", "styleKey": "ButtonStyle\_Danger\_PixelArt\_Medium" },
"backButton": { "id": "load\_back", "textLabelKey\_cz": "load.button.back\_cz", "defaultText\_cz": "ZPĚT", "action": { "type": "NAVIGATE\_BACK", "target": "PreviousScreen\_Or\_MainMenu" }, "styleKey": "ButtonStyle\_Secondary\_PixelArt\_Medium" }
},
"emptySaveList\_MessageKey\_cz": "load.message.no\_saves\_cz", "defaultEmptySaveList\_Message\_cz": "Žádné uložené hry nebyly nalezeny.",
"saveFileVersion\_CompatibilityCheck\_Logic\_cz": "Varovat hráče, pokud se snaží načíst uložení z nekompatibilní verze. Možnost 'Načíst na vlastní riziko'.",
"soundEffects": {
"openScreen": "sfx/ui/load\_game\_screen\_open\_data\_access.wav",
"slot\_Select": "sfx/ui/load\_game\_slot\_hover.wav",
"button\_Load\_Confirm": "sfx/ui/load\_game\_confirm\_systems\_online.wav",
"button\_Delete\_Confirm": "sfx/ui/load\_game\_delete\_confirm.wav",
"delete\_Success\_Sound": "sfx/ui/load\_game\_delete\_success.wav",
"delete\_Fail\_Sound": "sfx/ui/load\_game\_delete\_fail.wav"
}
}
’ \- PIXIJS: Use ScrollContainer for slots, Sprite for thumbnails, Text for details.
’ 5\. AI DIRECTIVES FOR TRAE ’ \- IMPLEMENT SETTINGSSCREEN: ’ \- Create SettingsScreen.tsx with tabs (Graphics, Sound, Controls) and UI elements. ’ \- Integrate with settingsStore for persistence. ’ \- Handle apply, defaults, and back logic with confirmation dialog. ’ \- IMPLEMENT CREDITSSCREEN: ’ \- Create CreditsScreen.tsx with scrolling Text and Parallax background. ’ \- Add skip, speed-up, and back controls. ’ \- IMPLEMENT EXITGAMEDIALOG: ’ \- Create ExitGameDialog.tsx with conditional buttons for unsaved changes. ’ \- Link to application quit logic. ’ \- IMPLEMENT LOADGAMESCREEN: ’ \- Create LoadGameScreen.tsx with slot list and preview panel. ’ \- Integrate with SaveLoadManager for metadata and deletion. ’ \- Add version compatibility check. ’ \- GENERATE ASSETS: ’ \- Settings: settings\_panel\_bg\_tech\_circuitry\_anim\_sheet.png, tab icons, UI styles. ’ \- Credits: starfield\_parallax\_layer\_{1,2,3}.png, fonts, music. ’ \- Exit: dialog\_warning\_bg\_pixelart.png, warning\_icon\_pixelart\_large.png. ’ \- Load: load\_game\_bg\_data\_archives\_pixelart.png, save\_slot\_thumbnail\_placeholder.png, delete\_icon\_pixelart\_small.png. ’ \- ENSURE: ’ \- Pixelart style with retro touch, Czech localization, responsive UI. ’ \- Test with SceneManager and StateManager. ’ \- OUTPUT: ’ \- List of new files and assets. ’ \- Screenshots of each screen/dialog.
’ DIAGRAM UPDATE ’ graph TD A\[Spuštění Aplikace\] –\> B(NS\_Prompt\_02: Úvodní Načítací Obrazovka); B –\> C{NS\_Prompt\_02: Hlavní Menu Hry}; C –\> |“NOVÁ HRA”| D(NS\_Prompt\_03: Přechodová Načítací Obrazovka); D –\> E\[NS\_Prompt\_03: Tvorba Nové Hry (Vícekroková)\]; E –\> |Zahájit Hru| D2(NS\_Prompt\_03: Přechodová Načítací Obrazovka
“Generuji Galaxii…”); D2 –\> F\_GAME\[NS\_Prompt\_42: Hlavní Herní Scéna\]; C –\> |“NAČÍST HRU”| G(NS\_Prompt\_03: Přechodová Načítací Obrazovka); G –\> H\[NS\_Prompt\_04: Obrazovka Načtení Uložené Hry\]; H –\> |Načíst| G2(NS\_Prompt\_03: Přechodová Načítací Obrazovka
“Načítám Hru…”); G2 –\> F\_GAME; C –\> |“NASTAVENÍ”| I\[NS\_Prompt\_04: Nastavení Hry (Modální)\]; I – Zpět –\> C; C –\> |“KNIHOVNA”| J\[NS\_Prompt\_19 & 47: Knihovna Znalostí (Modální)\]; J – Zpět –\> C; C –\> |“TVŮRCI”| K\[NS\_Prompt\_04: Obrazovka Tvůrců (Modální)\]; K – Zpět –\> C; C –\> |“UKONČIT HRU”| L\[NS\_Prompt\_04: Potvrzovací Dialog Ukončení\]; L – Ano –\> M\[Ukončení Aplikace\]; L – Ne –\> C; subgraph InGameInteractions \[Interakce ve Hře\] F\_GAME –\> N\[NS\_Prompt\_XX: Menu ve Hře (In-Game Menu \- Modální)\]; N –\> I\_GM\[NS\_Prompt\_04: Nastavení Hry (Modální)\]; I\_GM – Zpět –\> N; N –\> L\_GM\[NS\_Prompt\_04: Potvrzovací Dialog Ukončení\]; L\_GM – Ano –\> M; L\_GM – Ne –\> N; N –\> H\_GM\[NS\_Prompt\_04: Obrazovka Načtení Uložené Hry (Modální)\]; H\_GM – Zpět –\> N; N – Uložit Hru –\> O\[Obrazovka Uložení Hry (Modální)\]; O – Zpět –\> N; end style H fill:\#ff9900,stroke:\#fff,stroke-width:2px style I fill:\#ff9900,stroke:\#fff,stroke-width:2px style K fill:\#ff9900,stroke:\#fff,stroke-width:2px style L fill:\#ff9900,stroke:\#fff,stroke-width:2px style I\_GM fill:\#ff9900,stroke:\#fff,stroke-width:2px style L\_GM fill:\#ff9900,stroke:\#fff,stroke-width:2px style H\_GM fill:\#ff9900,stroke:\#fff,stroke-width:2px style O fill:\#ff9900,stroke:\#fff,stroke-width:2px
\#\#\# Podrobnosti pro Trae
1\. \*\*SettingsScreen\*\*:
\- Modal UI with tabs, integrated with settingsStore, and restart indicators.
2\. \*\*CreditsScreen\*\*:
\- Scrolling text with parallax starfield, interactive controls.
3\. \*\*ExitGameDialog\*\*:
\- Confirmation with unsaved changes logic.
4\. \*\*LoadGameScreen\*\*:
\- Slot list with preview, deletion, and version checks.
5\. \*\*Assets\*\*:
\- Detailed pixelart for backgrounds, icons, and UI styles.
|