Skip to content

Yet another missile silo panel widget#5782

Open
danfireman wants to merge 3 commits into
ZeroK-RTS:masterfrom
danfireman:missile-silo-ux-widget
Open

Yet another missile silo panel widget#5782
danfireman wants to merge 3 commits into
ZeroK-RTS:masterfrom
danfireman:missile-silo-ux-widget

Conversation

@danfireman

Copy link
Copy Markdown
Contributor

Competing with #5771:

image

Only review if you're interested in this sort of approach/think it's a viable starting point/like the look, otherwise it can be closed.

Deliverable

A movable, factory-queue-styled strip for missile silos that aggregates all owned silos into one panel, with a button per missile type showing ready / queued / build progress and a shared slots meter.

  • Left-click a type: arm fire-mode; click again, or when none are ready, to queue one instead.
  • Middle-click: queue one at the best-placed silo. Right-click: cancel one (never destroys a finished missile).
  • Hover or arm a type to preview each silo's range ring (solid/bright when that silo can fire it, dim/dashed otherwise) plus the AoE falloff at the cursor, mirroring the stock Attack-AoE indicator.

The panel auto-hides when you own no silos. Fire dispatches CMD.ATTACK to the specific ready missile of the chosen type, matching cmd_missile_silo's force-fire semantics (ground point, or unit-tracking for the homing Zeno).

Questions unanswered

Unsure on how/whether to include Scylla/Reef (I definitely think Trinity should be handled differently, its more strategic and doesn't have the very fiddly UX).

Unsure on a good hide/expand silo panel UX (e.g. where the little tab should live)

danfireman and others added 2 commits July 7, 2026 23:02
A movable, factory-queue-styled strip for missile silos that aggregates
all owned silos into one panel, with a button per missile type showing
ready / queued / build progress and a shared slots meter.

- Left-click a type: arm fire-mode (a real hidden engine command, so the
  guihandler owns mutual-exclusion and map/UI hit-testing); click again,
  or when none are ready, to queue one instead.
- Middle-click: queue one at the best-placed silo. Right-click: cancel one
  (never destroys a finished missile).
- Hover or arm a type to preview each silo's range ring (solid/bright when
  that silo can fire it, dim/dashed otherwise) plus the AoE falloff at the
  cursor, mirroring the stock Attack-AoE indicator.

The panel auto-hides when you own no silos. Fire dispatches CMD.ATTACK to
the specific ready missile of the chosen type, matching cmd_missile_silo's
force-fire semantics (ground point, or unit-tracking for the homing Zeno).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Apply PR ZeroK-RTS#5771 review points to the missile silo launch UI:

- Expose the Attack AoE falloff renderer as WG.DrawAoEPreview in gui_attack_aoe.lua and consume it, instead of duplicating the ring-drawing code.

- Use Spring.Utilities.Vector.DistSq for squared distance rather than a hand-rolled helper.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@GoogleFrog

Copy link
Copy Markdown
Contributor

I had a few comments but it looks good overall from the code. Here are some ideas to pursue.

  • Register it with the top left area (like the cheat sheet button) once it becomes active.
  • Put some settings in Settings/Interface/HUD Panels. There should be a tickbox that controls whether it is automatically enabled when a silo is built, and one that toggles whether it is visible (and all options should be hotkeyable by default).
  • Attack AoE knows whether a missile is projected to impact the terrain. Use this as a filter on whether missile should be picked.

@danfireman

Copy link
Copy Markdown
Contributor Author
image Suitable icon?

@sprunk

sprunk commented Jul 8, 2026

Copy link
Copy Markdown
Member

Perhaps the radar icon for missile silo?

Three items from GoogleFrog's review:

- Register a toggle button in the top-left GlobalCommandBar (like the
  Cheat Sheet button) once the player owns a silo, to show/hide the panel.
- Add Settings/HUD Panels/Missile Silo options: "Auto-show when a silo is
  built" and "Show panel" (both bool, hotkeyable by default).
- Filter fire target selection by projected terrain impact: prefer a silo
  whose vlaunch arc reaches the target over one blocked by a hill, using
  the Attack AoE widget's trajectory projection (new WG.GetVlaunchTerrainImpact),
  falling back to a blocked silo so a fire click never silently no-ops.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@danfireman

Copy link
Copy Markdown
Contributor Author
202607~2 Missile filtering working

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants