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

Loadouts: Fallbacks as defaults, less redundancy, harpy/diona fixes #1717

Closed whatston3 closed 1 month ago

whatston3 commented 1 month ago

About the PR

Uses fallback items as defaults to be selected as defaults for empty or invalid loadouts. For completely empty loadouts, we take as many fallback items exist until we reach the maximum number of supported items per loadout group. For existing loadouts, we assume the user intended to remove items, so we restore a minimal number of items.

Added subgroups to loadoutGroups to reduce redundancy. Subgroups append their loadout entries to the menu in the Character Setup UI, checking the effects on each before being appended. This solves the issues brought up in #1721 regarding the STC shoes needing to copy every entry from the Contractor shoes.

Added "hideEffects" LoadoutEffects to each loadout - these are used both for validation, and to hide entries from the loadout selection window. A harpy character, for instance, shouldn't be presented with options for jumpsuits with pants when they can't ever wear them. Diona also shouldn't be presented with the options for shoes.

Additionally, this PR adds loadout effects for harpy-compatible items to all non-skirt jumpsuits. NOTE: certain items (monastic robes, kilt) should probably be individually marked as HarpyClothing. All shoes have also been marked as invalid for diona.

NOTES:

Why / Balance

1700 provided good motivation to provide medical insurance trackers for default characters, and the discussion motivated the possibility of an encryption key-less loadout.

How to test

  1. Open the character selection screen.
  2. Create a new character.
  3. Set their species to Harpy. Their appearance should immediately swap into a skirt.
  4. Open the Contractor loadout, swap to the Jumpsuit tab. Only skirts should be listed.
  5. Close the loadout, swap species.
  6. Open the Contractor loadout, swap to the Jumpsuit tab, select a non-skirt jumpsuit.
  7. Swap species to Harpy again. Your character should swap back into a jumpskirt, but currently, this does not happen.
  8. Save your character. The outfit the paper doll is wearing should return to a jumpskirt.
  9. Open the STC loadout selection. Go to the Shoes tab. Laceups should be available for free. Scroll down, there should be no other entries for laceup shoes.

Media

The in-game Contractor jumpsuit selection screen for a harpy. Note how no jumpsuits with pants are available. image

The in-game Mercenary headgear selection screen for a harpy. The pilot's helmet is being appended from the PilotHead subgroup, and everything below is being appended from the ContractorHead subgroup. image

Breaking changes

Changelog

:cl:

github-actions[bot] commented 1 month ago

This pull request has conflicts, please resolve those before we can evaluate the pull request.

whatston3 commented 1 month ago

Pushed a few fixes consolidating NFSD loadouts into common groups. Added trenchcoats to detective loadouts, and added mail messenger bag variants to their backpack pool.

whatston3 commented 1 month ago

Added mask fallbacks (emulating prior survival box behaviour). Unfortunately, this puts a mask on your character, which makes screenshots/previews tricky.

A possible solution is to put the mask in the backpack (won't show up on the paper doll as-is).