spaceship/ui
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Claude 693919dadb Let a dialog opened over another dialog be closed
The "no research data" explainer is the only dialog in the game that opens
ON TOP of another one - the skill tree or the ship lab, from the button that
was just refused. IconButton._blocked_by_modal() refuses input to any button
sitting behind an open panel, and it had no notion of stacking order: it saw
the lab still visible, saw it was not an ancestor of the popup's close
button, and killed the touch. Every button in the explainer was dead,
including the only way out of it. Reported from the game.

The check now compares draw order. A panel that this button's own panel is
drawn on top of is behind it, not over it, and is ignored; a panel drawn
above it still blocks, so the lab's own buttons stay dead while the popup
covers them. Buttons belonging to no panel - the HUD - are unchanged and
still blocked by anything open.

The existing test missed this because it dismissed the popup by calling
close_menu() directly, which is not what a player can do. Case D presses the
button, and asserts the reverse too. Verified in both directions: with the
fix reverted it fails with "the explainer close button is blocked by the lab
behind it - the dialog is inescapable".

172/172.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019AJMdB7iuHuLFZM1aBu3GD
2026-09-08 22:31:56 +02:00
..
menus Stop redrawing what only needs moving 2026-09-08 11:35:45 +02:00
AbilityButtonLayout.gd Arrange fleet abilities around fire stick 2026-09-03 23:00:52 +02:00
AbilityButtonLayout.gd.uid Buy fleet berths with Fleet Offices 2026-09-05 17:09:27 +02:00
BreachOverlay.gd #125: slow the prologue down, and give the breach a real black hole 2026-08-24 13:25:10 +02:00
BreachOverlay.gd.uid Add the .uid files for the newest tests 2026-08-24 20:50:51 +02:00
DevMenuButton.gd Add a free-costs sandbox tool 2026-09-04 22:34:36 +02:00
DevMenuButton.gd.uid Turn dev mode into sandbox menu 2026-09-03 20:05:33 +02:00
FormationEditor.gd #118/#121: the speed fader and the formation editor under a mouse 2026-08-23 21:59:24 +02:00
FormationEditor.gd.uid #84: move 215 root files into a folder hierarchy 2026-08-21 19:44:14 +02:00
GarrisonPanel.gd #102/#103 (#97d/#97e): the outpost, and the garrison you compose for it 2026-08-23 14:02:20 +02:00
GarrisonPanel.gd.uid Add the .uid files Godot generated for the new scripts 2026-08-23 19:23:50 +02:00
IconButton.gd Let a dialog opened over another dialog be closed 2026-09-08 22:31:56 +02:00
IconButton.gd.uid #84: move 215 root files into a folder hierarchy 2026-08-21 19:44:14 +02:00
LoadingScreen.gd Resolve pending gameplay tickets 2026-09-02 13:43:56 +02:00
LoadingScreen.gd.uid #166-#173: plainer words, a point to shoot at, and a catalog that says when it is broken 2026-08-30 14:04:46 +02:00
MainMenu.gd tmp 2026-08-30 16:53:08 +02:00
MainMenu.gd.uid #84: move 215 root files into a folder hierarchy 2026-08-21 19:44:14 +02:00
MainMenu.tscn Smooth boosted fleet travel 2026-09-04 20:01:56 +02:00
NarrationBanner.gd Polish dialog and intro transitions 2026-09-02 20:18:44 +02:00
NarrationBanner.gd.uid Add the .uid files Godot generated for the newest scripts 2026-08-24 12:10:41 +02:00
NeonNumber.gd #84: move 215 root files into a folder hierarchy 2026-08-21 19:44:14 +02:00
NeonNumber.gd.uid #84: move 215 root files into a folder hierarchy 2026-08-21 19:44:14 +02:00
NeonPanel.gd Draw the neon components in the editor, not just at runtime 2026-09-08 14:13:51 +02:00
NeonPanel.gd.uid #84: move 215 root files into a folder hierarchy 2026-08-21 19:44:14 +02:00
PaletteEntryButton.gd Take planets by killing what defends them 2026-09-05 13:31:25 +02:00
PaletteEntryButton.gd.uid #84: move 215 root files into a folder hierarchy 2026-08-21 19:44:14 +02:00
PlanningPanel.gd #106/#107 (#98a/#98b): the Planning Center 2026-08-23 14:21:52 +02:00
PlanningPanel.gd.uid Add the .uid files Godot generated for the new scripts 2026-08-23 19:23:50 +02:00
PriceTag.gd Resolve pending gameplay tickets 2026-09-02 13:43:56 +02:00
PriceTag.gd.uid #136, #137, #134: one build grid that cannot stack, one way to show a price 2026-08-28 15:05:20 +02:00
QuestPanel.gd #166-#173: plainer words, a point to shoot at, and a catalog that says when it is broken 2026-08-30 14:04:46 +02:00
QuestPanel.gd.uid #140: the objective moves behind a button next to the map's 2026-08-28 15:37:13 +02:00
ResourceBar.gd Implement #160, #161, #162, #163, #164 and #165 2026-08-30 02:27:44 +02:00
ResourceBar.gd.uid #84: move 215 root files into a folder hierarchy 2026-08-21 19:44:14 +02:00
ResourceReadout.gd #84: move 215 root files into a folder hierarchy 2026-08-21 19:44:14 +02:00
ResourceReadout.gd.uid #84: move 215 root files into a folder hierarchy 2026-08-21 19:44:14 +02:00
ResourceTransferList.gd #84: move 215 root files into a folder hierarchy 2026-08-21 19:44:14 +02:00
ResourceTransferList.gd.uid #84: move 215 root files into a folder hierarchy 2026-08-21 19:44:14 +02:00
ScannerGuidance.gd Stop redrawing what only needs moving 2026-09-08 11:35:45 +02:00
ScannerGuidance.gd.uid Buy fleet berths with Fleet Offices 2026-09-05 17:09:27 +02:00
ScannerGuidance.tscn Sharpen upgrades, mark the convoy's destination, and give the world sound 2026-09-05 12:16:17 +02:00
SkillTreeView.gd Implement #160, #161, #162, #163, #164 and #165 2026-08-30 02:27:44 +02:00
SkillTreeView.gd.uid #84: move 215 root files into a folder hierarchy 2026-08-21 19:44:14 +02:00
SpeedFader.gd #118/#121: the speed fader and the formation editor under a mouse 2026-08-23 21:59:24 +02:00
SpeedFader.gd.uid #84: move 215 root files into a folder hierarchy 2026-08-21 19:44:14 +02:00
TouchJoystick.gd Draw the neon components in the editor, not just at runtime 2026-09-08 14:13:51 +02:00
TouchJoystick.gd.uid #84: move 215 root files into a folder hierarchy 2026-08-21 19:44:14 +02:00
WaveAlert.gd #100 (#97b): waves replace the roaming enemy spawner 2026-08-23 13:37:42 +02:00
WaveAlert.gd.uid Add the .uid files Godot generated for the new scripts 2026-08-23 19:23:50 +02:00