Skip to content

feat: a mission lists the ships its loadout offers - #1338

Merged
vdmkenny merged 3 commits into
mainfrom
fix/loadout-only-ship
Oct 28, 2026
Merged

vdmkenny merged 3 commits into
mainfrom
fix/loadout-only-ship

Conversation

@vdmkenny

@vdmkenny vdmkenny commented Oct 27, 2026 •

Copy link
Copy Markdown
Collaborator
  • records.missions[N].loadout_ships lists the ships a mission's loadout offers, in order, in place of those the tier and the rank open, even ships they don't open yet. Without it, the tier and the rank decide as before.
  • Mission 23's Shroud is now the game's own value: a list of one. The original offers every ship and hides all but the Shroud. That looks the same, but its page changes take longer, because the hidden ships still sink and rise. The hidden-ship code goes, and with it the bug that compared a ship's place on the arc with its type number.
  • A loadout that offers one ship has no ship on the arc. Its missiles now rise at once, and the ship page comes back once the missiles have sunk and the ship has turned back. Before, it stayed busy on the way to the missile page, which a game mode with a one-ship list has hit since 0.10. Checked in the game with mission 23.
  • The loadout offers a mission's list the way it offers a game mode's loadout_ships. A mission's list comes before its mode's, so a mode's records script can limit one mission.
  • A loadout that offers a mission's list starts on the ship chosen last where the list has it, else on the first, with the tier's missiles, as mission 23 does.
  • only_ship is deprecated and stays as an alias for a list of one ship: reading gives the ship where the list holds one alone, setting a ship sets the list, and nil clears it.

zabka14's campaign needs no extra mission: records.missions[1].loadout_ships = { "mirage" } with records.missions[1].tier = 1.

Missiles stay by tier. A loadout_missiles list can follow if a campaign needs one.

BEGIN_COMMIT_OVERRIDE
feat: a mission lists the ships its loadout offers, even ones its tier doesn't open yet (#1337)
feat: CampaignMission.only_ship is deprecated in favour of loadout_ships
fix: a loadout that offers one ship turns to the missile page and back
END_COMMIT_OVERRIDE

Closes #1337

…open

A campaign can now give its first mission a ship that the campaign only offers later, such as the
Mirage IV at the first tier. The loadout showed only the arc's ship whose place equalled the only
ship's type number, which holds for the original's one case, mission 23's Shroud among all
twelve, but not for a ship the tier doesn't open yet or for a mod's ship type. The only ship now
joins the ships offered where they lack it, and the loadout keeps its place, so nothing depends on
how the game numbers its ships.

Closes #1337
A campaign can limit a mission's loadout to any ships, even ones its tier doesn't open yet, such as
the Mirage IV in its first mission. records.missions[N].loadout_ships replaces the one-ship
special case, only_ship, which copied the original's mission 23: the Shroud is now that mission's
list of one. The loadout offers a list as it offers a game mode's, and a mission's list stands
before the mode's. Without a list, the tier and the rank decide, as before. The hidden ships of
mission 23 go, and with them the comparison of a ship's place on the arc with its type number,
which held only for the game's twelve fighters in order.

only_ship stays as a deprecated alias for a list of one ship.

Closes #1337
@vdmkenny vdmkenny changed the title fix: a mission's only ship is offered whatever the tier and the rank open feat: a mission lists the ships its loadout offers Oct 27, 2026
With one ship offered, such as mission 23's Shroud alone or a game mode's
one-ship list, no ship stands on the arc. None sinks to start the missiles
rising, and none rises to bring the ship page back, so the loadout stayed
busy. The missiles now rise at once, and the ship page comes back once the
missiles have sunk and the ship has turned back from belly up.

The pass also rewords the docs, comments and API text this change touches
in plain English, decides where the loadout's ships come from in one place,
and keeps the mission's list type private to the loadout.
@vdmkenny
vdmkenny requested a review from zabka14 October 28, 2026 03:28
@vdmkenny
vdmkenny merged commit 8e374b5 into main Oct 28, 2026
4 checks passed
@vdmkenny
vdmkenny deleted the fix/loadout-only-ship branch October 28, 2026 03:28
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.

A mission's only ship is missing from the loadout when the tier and the rank don't open it

1 participant