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