-
Notifications
You must be signed in to change notification settings - Fork 249
Missile orders #5771
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
amnykon
wants to merge
54
commits into
ZeroK-RTS:master
Choose a base branch
from
amnykon:missile-orders
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Missile orders #5771
Changes from all commits
Commits
Show all changes
54 commits
Select commit
Hold shift + click to select a range
77243b7
Add missile widget from ZeroK-widgets
claude 91c1f7b
Remove team messaging feature from missile widget
claude e7ecd5e
Add slow missile (Zeno) to command center widget
claude 31f64c1
Add Missiles tab to command menu above Orders tab
claude b84a180
Remove floating window UI from missile widget
claude 4e7be09
Add safety checks to prevent crashes after missile launch
claude dd3fe28
Hide Missiles tab until missile units are built
claude 6d7a261
Add missile count display to command buttons
claude 3d83d6b
Add missile build progress display to command buttons
claude d5f3a7d
Add visual progress bar support for missile commands
claude 5606e56
Consolidate progress bar logic into missile widget
claude dd43a39
Add proper visual progress bar support via helper widget
claude 608fac6
Merge progress bar logic into missile widget
claude 3437dab
Add tab badge support with missile unit icon and count
claude da09486
Implement all 5 widget improvements
claude 7173b99
Fix #4: Centralize missile command IDs to prevent duplication
claude 812e693
Fix remaining 7 code review issues
claude 908d1bb
Fix widget name: 'missle' → 'missile'
claude f083735
Improve missile configuration with metadata dictionary
claude 757d44d
Refactor missile config: rename missileCmdIDs to missileCmds and embe…
claude 5a70f50
Fix missile widget: crashes, tab layout, tooltips, count/progress bar
amnykon 40349a3
Fix stockpile build progress source for missile buttons
amnykon fe9a8e8
Keep missiles tab visible and usable with no selection
amnykon 1bfac14
Add second tab row for the missiles tab
amnykon afe7a9e
Fix missile launch order and command descriptor
amnykon 7f56fb6
Missiles tab badge: per-type icons with count and build progress
amnykon dbfbda8
Remove misleading (N) hotkey label from tabs without their own hotkey
amnykon 6078092
Missile launch preview: relocate blast ring to terrain that blocks th…
amnykon 1bb6c0e
Missile block preview: learn crest distance for a truer dive angle
amnykon 47e54b8
Missile widget cleanups: fix names, dedupe stockpile, rename tab to L…
amnykon 990893d
Merge upstream/master into missile-orders
amnykon ca90b4d
Missile launch preview: share Attack AoE's exact impact simulation
amnykon 3836ec0
Missile menu: drop second tab row (topRow) for the Launch tab
claude b225774
Integral menu: add hidden-tab reveal API (OpenTab/CloseHiddenTab)
claude ea710ab
Core selector: silo button opens the missiles Launch tab
claude 1680e39
Core selector: show missile count on the silo button
claude 9a4566e
Core selector: single launch button with a 2-column missile grid
claude 6a880c4
Core selector: launch button opens the launcher menu on click
claude ed0733e
Missile launch tab: make it a hidden tab, remove dead per-cell code
claude 899a89e
Core selector: grow the launch button by half a button per grid row
claude bf1506f
I guess it is time for an AI policy.
GoogleFrog 1c8eda9
Integral menu: keep the Launch tab button hidden, drop the dead secon…
amnykon f20aae1
Core selector: fix launch grid cell sizing and resize timing
amnykon 5d1bc8e
Core selector: fix launch count label z-order/jitter and scale it wit…
amnykon 4c60a8f
Launch button: appear promptly when a missile starts building
amnykon 1898071
Missile launcher: core-selector button, build/Zenith, config-driven t…
amnykon 3d45ca7
Merge branch 'master' into missile-orders
amnykon 1daeda9
Missile launcher: launch hotkey, open-state highlight, capacity-safe …
amnykon 3a2e595
Revert seemingly irrelevant integral changes.
GoogleFrog 82a87a9
More revert.
GoogleFrog 046d4bb
Missile launcher: register commands, keep selection after firing
amnykon 412d126
Merge remote-tracking branch 'origin/missile-orders' into missile-orders
amnykon 3d6ee9e
Missile launcher: deselect on tab close, launch-button polish
amnykon d3e5ede
Missile launcher: PR review fixes, simpler tab state, Zenith preview
amnykon File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,85 @@ | ||
| -- Missile launcher configuration. Shared by the Missile Command Center widget | ||
| -- (launch/build behaviour) and integral_menu_config.lua (Launch tab layout), so a | ||
| -- missile type is described in exactly one place. One entry per launch button, in | ||
| -- display order. Command ids are assigned automatically from CMD_BASE below. | ||
| -- | ||
| -- Entry fields: | ||
| -- key - internal id (widget command table key). | ||
| -- unit - unit def name; supplies the button icon. | ||
| -- label - display name. | ||
| -- col, row - position in the Launch tab grid. | ||
| -- tooltip - button tooltip. | ||
| -- cmdType - "ICON_MAP" (default) or "ICON_UNIT_OR_MAP" (can target a unit). | ||
| -- siloBuild - unit this type is built as at a missile silo (enables Alt-click build). | ||
| -- zenith - true for the Zenith meteor controller (special, non-stockpile behaviour). | ||
| -- controllerScope - "separate": this button only exists when Eos/Scylla are NOT combined. | ||
| -- launch - list of launchable unit types, each: | ||
| -- unit - unit def name that carries/fires this missile. | ||
| -- cmd - "ATTACK" or "MANUALFIRE". | ||
| -- weaponId - weapon index on that unit. | ||
| -- stockpile - "silo" (sits on a silo pad) or "engine" (GetUnitStockpile); omit for Zenith. | ||
| -- scope - "combine": active only when Eos and Scylla are combined. | ||
|
|
||
| local CMD_BASE = 39610 | ||
|
|
||
| local missiles = { | ||
| { key = "zenith", unit = "zenith", label = "Zenith", col = 1, row = 1, | ||
| zenith = true, cmdType = "ICON_UNIT_OR_MAP", | ||
| tooltip = "Zenith (Meteor Controller)\nRains meteors on the target for a few seconds.", | ||
| launch = { { unit = "zenith", cmd = "ATTACK", weaponId = 1 } }, | ||
| }, | ||
| { key = "trinity", unit = "staticnuke", label = "Trinity", col = 2, row = 1, | ||
| tooltip = "Launch Trinity (Strategic Nuke)\nLong-range nuclear missile.", | ||
| launch = { { unit = "staticnuke", cmd = "ATTACK", weaponId = 1, stockpile = "engine" } }, | ||
| }, | ||
| { key = "reef", unit = "shipcarrier", label = "Reef Missile", col = 3, row = 1, | ||
| cmdType = "ICON_UNIT_OR_MAP", | ||
| tooltip = "Launch Disarm Missile\nDisables units temporarily.", | ||
| launch = { { unit = "shipcarrier", cmd = "MANUALFIRE", weaponId = 2, stockpile = "engine" } }, | ||
| }, | ||
| { key = "scylla", unit = "subtacmissile", label = "Scylla", col = 4, row = 1, | ||
| controllerScope = "separate", | ||
| tooltip = "Launch Scylla (Tactical Nuke)\nSubmarine-launched tactical nuke.", | ||
| launch = { { unit = "subtacmissile", cmd = "ATTACK", weaponId = 1, stockpile = "engine" } }, | ||
| }, | ||
| { key = "eos", unit = "tacnuke", label = "Eos", col = 1, row = 2, | ||
| siloBuild = "tacnuke", | ||
| tooltip = "Launch Eos (Tactical Nuke)\nTactical nuclear missile with high damage.\nAlt-click the map to build one.", | ||
| launch = { | ||
| { unit = "tacnuke", cmd = "ATTACK", weaponId = 1, stockpile = "silo" }, | ||
| -- Scylla folds in here only when the Combine Eos and Scylla option is on. | ||
| { unit = "subtacmissile", cmd = "ATTACK", weaponId = 1, stockpile = "engine", scope = "combine" }, | ||
| }, | ||
| }, | ||
| { key = "seismic", unit = "seismic", label = "Seismic", col = 2, row = 2, | ||
| siloBuild = "seismic", | ||
| tooltip = "Launch Seismic\nArea denial seismic missile, slows units.\nAlt-click the map to build one.", | ||
| launch = { { unit = "seismic", cmd = "ATTACK", weaponId = 1, stockpile = "silo" } }, | ||
| }, | ||
| { key = "shockley", unit = "empmissile", label = "Shockley", col = 3, row = 2, | ||
| siloBuild = "empmissile", | ||
| tooltip = "Launch Shockley (EMP)\nElectromagnetic pulse missile disables units.\nAlt-click the map to build one.", | ||
| launch = { { unit = "empmissile", cmd = "ATTACK", weaponId = 1, stockpile = "silo" } }, | ||
| }, | ||
| { key = "inferno", unit = "napalmmissile", label = "Inferno", col = 4, row = 2, | ||
| siloBuild = "napalmmissile", | ||
| tooltip = "Launch Inferno (Napalm)\nNapalm missile with persistent damage.\nAlt-click the map to build one.", | ||
| launch = { { unit = "napalmmissile", cmd = "ATTACK", weaponId = 1, stockpile = "silo" } }, | ||
| }, | ||
| { key = "zeno", unit = "missileslow", label = "Zeno", col = 5, row = 2, | ||
| siloBuild = "missileslow", | ||
| tooltip = "Launch Zeno (Slow Missile)\nSlow homing missile with lingering damage.\nAlt-click the map to build one.", | ||
| launch = { { unit = "missileslow", cmd = "ATTACK", weaponId = 1, stockpile = "silo" } }, | ||
| }, | ||
| } | ||
|
|
||
| -- Command ids come from the shared registry (LuaRules/Configs/customcmds.lua) so they | ||
| -- are reserved ZK commands, keyed MISSILE_<KEY>. Fall back to the sequential range if the | ||
| -- registry is not available (both resolve to the same 39610.. block). | ||
| local registeredCmds = Spring.Utilities and Spring.Utilities.CMD | ||
| for i = 1, #missiles do | ||
| local m = missiles[i] | ||
| m.cmd = (registeredCmds and registeredCmds["MISSILE_" .. string.upper(m.key)]) or (CMD_BASE + i - 1) | ||
| end | ||
|
|
||
| return missiles |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why are these here and hardcoded?