new-frontiers-14 / frontier-station-14

A multiplayer game about paranoia and chaos on a space station. Remake of the cult-classic Space Station 13.
https://spacestation14.io
GNU Affero General Public License v3.0
79 stars 463 forks source link

Late join lobby UI fixes #1716

Closed whatston3 closed 1 month ago

whatston3 commented 1 month ago

About the PR

This PR keeps the latejoin lobby stateful. When a vessel/station has been selected, it should not be unselected until it is removed from the list or the user clicks on another one. If you filter for ships, even if they do not show up in the list, a selected ship should remain selected, and its jobs shown on the right.

The buttons on the job selection side of the UI respect whether or not the user can join into that role (as checked by the JobRequirementsManager). When somebody adds a job to a shuttle, buttons' states should remain consistent.

Why / Balance

Pretty annoying in practice.

How to test

  1. Connect two clients.
  2. On the first client, join in-game.
  3. On the second client, open the late join menu, select the NFSD outpost.
  4. Buy a ship in the first client. On the second client's window, the NFSD outpost should be selected. Any jobs that were available, if any, should remain constant.
  5. On the second client, select the ship that the first client bought.
  6. On the first client, sell the ship. On the second client's window, Frontier Outpost should be selected.
  7. On the first client, buy a ship.
  8. On the second client, select the ship. Its job listings should show up on the right.
  9. On the second client, enter text into the filter bar so that nothing shows up. You should still be seeing ships from the ship you last selected.
  10. On the first client, sell the ship. The second client's entry should be null, and the Crew Manifest button should be hidden.
  11. On the second client, remove the text from the filter bar. The first ship that shows up (Frontier Station if you remove all the text at once) should be selected, and the Crew Manifest icon should reappear.

Media

Should include footage of this working later, but the interface layout itself should not change.

Breaking changes

Changelog

:cl: