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.