fish-station/Content.Client
Pieter-Jan Briers 1bebb3390c
Borg type switching. (#32586)
* Borg type switching.

This allows borgs (new spawn or constructed) to select their chassis type on creation, like in SS13. This removes the need for the many different chassis types, and means round-start borgs can actually play the game immediately instead of waiting for science to unlock everything.

New borgs have an additional action that allows them to select their type. This opens a nice window with basic information about the borgs and a select button. Once a type has been selected it is permanent for that borg chassis.

These borg types also immediately start the borg with specific modules, so they do not need to be printed. Additional modules can still be inserted for upgrades, though this is now less critical. The built-in modules cannot be removed, but are shown in the UI.

The modules that each borg type starts with:

* Generic: tools
* Engineering: advanced tools, construction, RCD, cable
* Salvage: Grappling gun, appraisal, mining
* Janitor: cleaning, light replacer
* Medical: treatment
* Service: music, service, clowning

Specialized borgs have 3 additional module slots available on top of the ones listed above, generic borgs have 5.

Borg types are specified in a new BorgTypePrototype. These prototypes specify all information about the borg type. It is assigned to the borg entity through a mix of client side, server, and shared code. Some of the involved components were made networked, others are just ensured they're set on both sides of the wire.

The most gnarly change is the inventory template prototype, which needs to change purely to modify the borg hat offset. I managed to bodge this in with an API that *probably* won't explode for specifically for this use case, but it's still not the most clean of API designs.

Parts for specific borg chassis have been removed (so much deleted YAML) and specialized borg modules that are in the base set of a type have been removed from the exosuit fab as there's no point to printing those.

The ability to "downgrade" a borg so it can select a new chassis, like in SS13, is something that would be nice, but was not high enough priority for me to block the feature on. I did keep it in mind with some of the code, so it may be possible in the future.

There is no fancy animation when selecting borg types like in SS13, because I didn't think it was high priority, and it would add a lot of complex code.

* Fix sandbox failure due to collection expression.

* Module tweak

Fix salvage borg modules still having research/lathe recipes

Engie borg has regular tool module, not advanced.

* Fix inventory system breakage

* Fix migrations

Some things were missing

* Guidebook rewordings & review

* MinWidth on confirm selection button
2024-11-14 11:08:35 -06:00
..
Access Add tooltips to the agent ID job icons and improve status icon prototypes (#28575) 2024-08-09 16:14:07 +10:00
Actions Adds real-time charge & disabled action information to Actions (#31821) 2024-09-25 10:27:28 -04:00
Administration Fix Set Outfit command/verb (#29672) 2024-09-19 18:02:37 +10:00
AlertLevel
Alerts Add a Walking alert (#32954) 2024-11-08 18:28:24 -06:00
Ame/UI Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Animations Fix effects (#27533) 2024-05-02 12:40:07 +10:00
Anomaly Fix Anomaly infections infinity growing after curing (#32259) 2024-09-18 00:19:34 +02:00
Arcade Fix arcade machines (#30376) 2024-07-26 10:30:49 -07:00
Armor Predicted armor (#20560) 2023-09-28 20:48:50 +10:00
Atmos Make atmos alert computer colors private variables (#32992) 2024-10-24 23:34:52 -07:00
Audio Fix RA0032 (#32514) 2024-09-29 02:25:21 +02:00
BarSign Selectable Bar Signs (#29068) 2024-07-01 02:20:57 +10:00
Beam Content update for NetEntities (#18935) 2023-09-11 09:42:41 +10:00
Bed Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Body/Systems Fix humanoid appearances for placement manager (#18291) 2023-08-05 14:25:47 +10:00
Botany Fix clientside storage Whitelists (#24063) 2024-02-02 00:33:57 +11:00
Bql Content update for NetEntities (#18935) 2023-09-11 09:42:41 +10:00
Buckle Make buckle mint (#32370) 2024-09-22 18:21:40 +10:00
Camera Random spontaneous cleanup PR (#25131) 2024-02-13 16:48:39 -05:00
CardboardBox prop hunt ss14 (real) (#26691) 2024-04-17 14:48:35 -07:00
Cargo Predict appraisal tool verb! (#32496) 2024-09-28 14:40:24 +10:00
CartridgeLoader Wanted list cartridge (#31223) 2024-09-19 12:22:02 +02:00
Changelog Remove calls to FormattedMessage obsolete methods (#31706) 2024-09-01 13:00:53 +02:00
CharacterInfo Random spontaneous cleanup PR (#25131) 2024-02-13 16:48:39 -05:00
Charges/Systems
Chasm Fix error when removing chasm falling component on a terminating entity (#28471) 2024-06-01 15:00:31 -04:00
Chat Add interaction rate limits (#32527) 2024-09-29 22:19:00 +10:00
Chemistry Replace instances of SolutionContainerSystem with SharedSolutionContainerSystem (#30084) 2024-09-02 13:26:04 +02:00
Clickable Make clickable 1% nicer (#29706) 2024-08-09 17:05:12 +10:00
Clock Watches (#29550) 2024-07-13 16:09:19 +10:00
Cloning/UI Update content vectors to numerics (#17759) 2023-07-08 14:08:32 +10:00
CloningConsole/UI Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Clothing Borg type switching. (#32586) 2024-11-14 11:08:35 -06:00
CombatMode Random spontaneous cleanup PR (#25131) 2024-02-13 16:48:39 -05:00
Commands change ShowHealthBars and ShowHealthIcons to use protoId (#32355) 2024-11-02 17:59:38 +01:00
Communications Add Communications Console button tooltips (#31217) 2024-08-19 22:36:36 +02:00
Computer Remove unused IoC dependency references. (#31704) 2024-09-01 23:22:50 +02:00
Configurable/UI Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Construction Power stuff (#31314) 2024-08-25 22:18:42 +10:00
ContextMenu/UI Verb tweaks (#31309) 2024-08-25 22:05:39 +10:00
Cooldown
Crayon fix crayon (#30263) 2024-07-23 12:22:59 +10:00
Credits Remove calls to FormattedMessage obsolete methods (#31706) 2024-09-01 13:00:53 +02:00
CrewManifest Power stuff (#31314) 2024-08-25 22:18:42 +10:00
CriminalRecords Remove calls to FormattedMessage obsolete methods (#31706) 2024-09-01 13:00:53 +02:00
Cuffs Update trivial components to use auto comp states (#20539) 2023-09-28 16:20:29 -07:00
Damage Random spontaneous cleanup PR (#25131) 2024-02-13 16:48:39 -05:00
DamageState Refactor serialization copying to use source generators (#19412) 2023-08-22 18:14:33 -07:00
DebugMon Fix coords monitor in replays (#29512) 2024-06-27 16:58:51 +02:00
Decals Add mapping editor (#23427) 2024-08-04 13:31:45 +10:00
DeviceLinking Predict two-way levers (#25043) 2024-02-11 14:19:45 +11:00
DeviceNetwork Code cleanup: radio jammer (#29052) 2024-06-20 01:13:40 +10:00
Devour
Dice
DisplacementMap Displacement maps big update (#30093) 2024-07-23 12:04:09 +03:00
Disposal Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
DoAfter Hide doafters if you're in a container (#29487) 2024-06-28 13:34:24 +10:00
Doors Add title to multitool door-access-configuration window (#31504) 2024-08-27 15:10:01 +02:00
Dragon Remove lights compref (#19531) 2023-09-11 19:18:06 +10:00
Drowsiness Add haloperidol, potassium iodide (#27454) 2024-08-03 03:12:08 +10:00
Drugs Disable rainbow overlay when reduced motion is enabled (#28496) 2024-06-01 18:41:06 -07:00
Drunk Random spontaneous cleanup PR (#25131) 2024-02-13 16:48:39 -05:00
Effects cham projector fixes/rewrite (#27111) 2024-11-08 12:15:41 +01:00
Electrocution
Emp
Ensnaring Predict stripping (#32478) 2024-09-27 17:12:10 +10:00
Entry Change the window titlebar to show the joined server (#32547) 2024-10-17 13:06:07 +02:00
Eui
Examine Fix examine flickering until you examine something around you (#32205) 2024-09-16 18:51:53 +10:00
Explosion move TriggerExplosion to shared (#30227) 2024-09-19 10:01:40 +10:00
Eye Content changes for engine exception tolerance PR (#27455) 2024-04-29 18:43:15 +10:00
Fax Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Flash let FlashArea be called from shared (#30343) 2024-09-19 09:58:10 +10:00
FlavorText Fix Flavor Text editor not saving correctly (#28122) 2024-05-19 02:23:44 +02:00
Fluids Replace xform.WorldPosition with xformSystem method for Setting/Getting (#30029) 2024-08-06 21:02:01 +10:00
Forensics Better DNA forensics & ReagentData (#26699) 2024-08-09 09:27:27 +10:00
Fullscreen Un-revert IPlayerManager refactor (#21244) 2023-10-28 09:59:53 +11:00
Gameplay Make clickable 1% nicer (#29706) 2024-08-09 17:05:12 +10:00
GameTicking/Managers Change the window titlebar to show the joined server (#32547) 2024-10-17 13:06:07 +02:00
Gateway/UI Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Ghost Change text for ghost visibility button (#30998) 2024-08-19 19:51:54 +02:00
GhostKick
GPS AstroNav GPS Cartridge (#32194) 2024-09-24 19:02:51 +02:00
Gravity Station Anchor (#26098) 2024-08-31 10:40:28 -04:00
Guidebook Add guidebook protodata tag: embed prototype values in guidebook text (#27570) 2024-09-12 13:31:56 +03:00
Hands Remove inaccurate admin log when moving a held item (#32525) 2024-10-14 15:05:40 +11:00
HealthAnalyzer/UI Add health analyzer unrevivability warning (#32636) 2024-10-26 19:22:08 +02:00
Holiday Automatic holiday sprites (#22929) 2023-12-24 23:52:43 -07:00
HotPotato Revert "Fix chat bubbles (#25643)" (#25645) 2024-02-28 00:51:20 +11:00
Humanoid Localization of the slot (#31008) 2024-08-14 20:06:32 -04:00
IconSmoothing Replace obsolete map functions in IconSmoothSystem (#30958) 2024-08-16 00:55:20 -04:00
IdentityManagement
Implants Various item status fixes/tweaks (#27267) 2024-04-25 00:01:31 +10:00
Info Fix playtime formatting (#32974) 2024-10-28 19:00:00 +01:00
Input Add keybinds for rotating and flipping objects (#30540) 2024-08-13 23:36:41 +10:00
Instruments replace all uses of TryGetContainingContainer with non-obsolete overload (#30583) 2024-08-04 15:38:53 +10:00
Interactable Improve InteractionSystem range & BUI checks (#27999) 2024-05-24 15:03:03 +10:00
Interaction Strip drag drop test (#30754) 2024-08-08 12:12:01 +10:00
Inventory Borg type switching. (#32586) 2024-11-14 11:08:35 -06:00
IoC Change the window titlebar to show the joined server (#32547) 2024-10-17 13:06:07 +02:00
Items replace all uses of TryGetContainingContainer with non-obsolete overload (#30583) 2024-08-04 15:38:53 +10:00
Jittering Fix animation looping bugs. (#29457) 2024-07-04 18:02:43 +10:00
Kitchen Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Kudzu Refactor serialization copying to use source generators (#19412) 2023-08-22 18:14:33 -07:00
Labels Improvements to hand labeler UI (#31833) 2024-09-04 16:20:00 +02:00
LateJoin JobRequirement refactor (#30347) 2024-08-05 14:25:49 +10:00
Lathe Make printing from ore procecssors slightly more bearable (#31074) 2024-08-17 15:12:55 +10:00
Launcher Copy button for ban/disconnect reason (#30760) 2024-08-20 23:31:09 +02:00
Light Remove unused IoC dependency references. (#31704) 2024-09-01 23:22:50 +02:00
Lightning/Components Refactor serialization copying to use source generators (#19412) 2023-08-22 18:14:33 -07:00
Lobby Disable resizing of lobby character editor (#32313) 2024-09-20 21:47:29 +10:00
Lock/Visualizers LockVisualizer (#25224) 2024-02-16 16:52:31 -07:00
MachineLinking/UI Remove unused IoC dependency references. (#31704) 2024-09-01 23:22:50 +02:00
Magic Magic Refactor + Wizard Grimoire (#22568) 2024-05-11 19:06:49 -04:00
MagicMirror Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
MainMenu Update MainMenu.cs to use ISawmill (#29988) 2024-07-14 13:05:39 +10:00
Mapping Fix separated game screen bumping (#33046) 2024-10-29 16:07:57 +11:00
Maps Replace xform.WorldPosition with xformSystem method for Setting/Getting (#30029) 2024-08-06 21:02:01 +10:00
MapText Implement map text (#28705) 2024-06-09 15:18:54 -04:00
Markers Refactor serialization copying to use source generators (#19412) 2023-08-22 18:14:33 -07:00
MassMedia Save unpublished news articles (#31491) 2024-09-09 13:38:49 -06:00
Materials Recycler Overhaul (#30802) 2024-08-18 21:39:00 -06:00
Mech Fix Ripley control panel (#30325) 2024-07-24 23:23:52 -06:00
Medical Crew Monitor filter (#31659) 2024-09-19 12:23:45 +02:00
MedicalScanner Refactor serialization copying to use source generators (#19412) 2023-08-22 18:14:33 -07:00
Message Remove calls to FormattedMessage obsolete methods (#31706) 2024-09-01 13:00:53 +02:00
Mind Mind tweaks & fixes (#21203) 2023-10-24 10:23:56 -04:00
Mining Mineral Scanner (#31390) 2024-09-07 00:05:53 +10:00
Morgue/Visualizers
MouseRotator Fix MouseRotator on rotated grids (#29663) 2024-07-02 23:04:15 +10:00
Movement/Systems Fully Revert Clown Waddling (#32652) 2024-10-06 15:33:02 +02:00
NetworkConfigurator Replace xform.WorldPosition with xformSystem method for Setting/Getting (#30029) 2024-08-06 21:02:01 +10:00
Ninja/Systems item toggling giga rework + full ninja refactor (#28039) 2024-07-11 15:55:56 +10:00
NodeContainer Replace xform.WorldPosition with xformSystem method for Setting/Getting (#30029) 2024-08-06 21:02:01 +10:00
NPC Replace xform.WorldPosition with xformSystem method for Setting/Getting (#30029) 2024-08-06 21:02:01 +10:00
Nuke Nuke Now Requires the Disk to be Inserted to Toggle Anchor (#29565) 2024-09-09 13:30:26 -06:00
NukeOps Fix war declarator (#30221) 2024-07-21 17:17:59 +10:00
Nutrition/EntitySystems Metamorphosis - FoodSequence 3 (#31012) 2024-09-08 02:22:27 -04:00
Objectives/Systems Objectives ecs rework (#19967) 2023-09-16 16:18:10 +10:00
Options Power stuff (#31314) 2024-08-25 22:18:42 +10:00
Orbit Remove obsolete usages of AnimationPlayerComponent (#20806) 2023-10-14 10:28:06 -07:00
Outline Make clickable 1% nicer (#29706) 2024-08-09 17:05:12 +10:00
Overlays Borg type switching. (#32586) 2024-11-14 11:08:35 -06:00
PAI
Paper Fix accidental erase of paper contents by spamming save action (#32598) 2024-10-02 14:00:31 +02:00
Parallax Random spontaneous cleanup PR (#25131) 2024-02-13 16:48:39 -05:00
ParticleAccelerator Adding an AccessReader to a particle accelerator with engineering access (#30394) 2024-07-30 14:29:32 +03:00
PDA Set default PDA uplink and music visibility to false (#28373) 2024-09-14 00:19:32 +10:00
Physics Add a Walking alert (#32954) 2024-11-08 18:28:24 -06:00
Pinpointer Visualized regions for NavMapControl (#31910) 2024-10-23 14:49:58 +02:00
Placement/Modes Update content vectors to numerics (#17759) 2023-07-08 14:08:32 +10:00
Players Fix role ban loading bugs (#32725) 2024-10-14 14:30:31 +11:00
PneumaticCannon
Pointing Fix pointing arrow trajectory (#25061) 2024-02-11 23:45:09 -07:00
Points Update trivial components to use auto comp states (#20539) 2023-09-28 16:20:29 -07:00
Polymorph/Systems cham projector fixes/rewrite (#27111) 2024-11-08 12:15:41 +01:00
Popups Predict stripping (#32478) 2024-09-27 17:12:10 +10:00
Power Make APC UI work correctly with multiple users (#32465) 2024-10-12 19:21:43 +11:00
PowerCell Speed Boots [Tier 3 Civ-Service] (#21438) 2023-11-07 18:25:43 -07:00
Projectiles Move TimedDespawn to engine (#20515) 2023-09-30 14:35:32 +10:00
Radiation Remove obsolete functions from RadiationDebugOverlay (#31111) 2024-08-17 13:12:45 +10:00
Radio Power stuff (#31314) 2024-08-25 22:18:42 +10:00
RatKing Rat King Milsim + Buffs (#20190) 2023-09-22 15:01:05 -05:00
RCD Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Remotes Door Remote now shows Mode in UI (#26162) 2024-03-21 20:19:52 -04:00
Replay Fix replay load error screens (#32115) 2024-09-13 23:58:02 +10:00
Research Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Resources Revert "Update submodule to 175.0.0 (#21318)" (#21319) 2023-10-29 15:29:30 +11:00
Revenant Remove AlertType and AlertCategory (#27933) 2024-05-23 22:43:04 -04:00
Revolutionary Cleans up StatusIconSystem and fixing some bugs (#28270) 2024-06-03 12:12:21 -04:00
Robotics Remove calls to FormattedMessage obsolete methods (#31706) 2024-09-01 13:00:53 +02:00
Roles Add codeword highlighting (#30092) 2024-08-23 11:14:38 +02:00
Rotation Fixed buckled players thrashing while speaking in beds (#29653) 2024-07-01 23:30:53 -04:00
RoundEnd Remove calls to FormattedMessage obsolete methods (#31706) 2024-09-01 13:00:53 +02:00
Salvage Add space debris to salvage magnet (#31113) 2024-08-24 12:09:36 +10:00
Sandbox Replace obsolete xform.ToMap() with xformSystem.ToMapCoordinates() (#30010) 2024-07-13 23:05:22 +02:00
Screenshot
SensorMonitoring Auto-scale sensor monitoring graph (#29559) 2024-06-30 09:48:20 -04:00
Sericulture Sericulture fixes (#19193) 2023-10-01 16:46:09 -04:00
Shuttles Coordinates under IFF Label on Mass Scanners and Shuttle Consoles (#31501) 2024-09-19 11:25:47 +10:00
Silicons Borg type switching. (#32586) 2024-11-14 11:08:35 -06:00
Singularity Fix singularity overlay mouse position correction when zooming (#30509) 2024-07-31 10:14:49 +10:00
Smoking Refactor serialization copying to use source generators (#19412) 2023-08-22 18:14:33 -07:00
Sound
Speech/EntitySystems
SprayPainter Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Sprite Add sprite exporting (#29874) 2024-07-31 11:14:19 -04:00
SSDIndicator Cleans up StatusIconSystem and fixing some bugs (#28270) 2024-06-03 12:12:21 -04:00
Stack Replace DetachParentToNull() with DetachEntity() (#29992) 2024-07-13 20:59:33 +10:00
Station Space Ninjas auto-toggle internals after spawning (#25083) 2024-05-03 11:24:21 +10:00
StationRecords Power stuff (#31314) 2024-08-25 22:18:42 +10:00
StatusIcon Cleans up StatusIconSystem and fixing some bugs (#28270) 2024-06-03 12:12:21 -04:00
Stealth Replace xform.WorldPosition with xformSystem method for Setting/Getting (#30029) 2024-08-06 21:02:01 +10:00
Sticky/Visualizers full sticky prediction (#30230) 2024-08-09 09:36:15 +10:00
Storage Storage BUI bandaid (#31506) 2024-08-28 13:21:52 +10:00
Store/Ui feat: #26107 uplink discounts for traitors (no nukies for now) (#26297) 2024-09-05 22:12:39 +10:00
Strip Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Stunnable Fix stun baton throwing and visual effect (#18777) 2023-08-08 12:19:31 -08:00
Stylesheets Padded ItemStatus Text (#29560) 2024-09-19 17:51:33 +10:00
SubFloor Allow t-ray to penetrate carpets and puddles (#25276) 2024-02-16 16:37:56 -07:00
SurveillanceCamera Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Tabletop Replace xform.WorldPosition with xformSystem method for Setting/Getting (#30029) 2024-08-06 21:02:01 +10:00
Teleportation
TextScreen cancelable brig timers (#26557) 2024-03-31 16:44:02 -04:00
Thief Reapply "Remove some BUI boilerplate" (#30214) (#30219) 2024-07-21 14:48:13 +10:00
Throwing Improve throwing precision (#29726) 2024-07-08 19:03:53 +10:00
Tips Move PaperSystem to Shared (#30592) 2024-08-05 14:23:23 +10:00
Toggleable Candles (#21087) 2023-11-03 22:53:51 -07:00
Tools THE RETURN OF ITEM STATUS (#22986) 2024-04-21 23:16:23 +10:00
Traits Fix AudioSystem nullability checks for engine PR (#32233) 2024-09-18 11:43:30 +10:00
Trigger Unrevert audio (#21330) 2023-11-27 22:12:34 +11:00
UserInterface Collapsible ghost roles menu (#32717) 2024-11-04 01:49:42 +01:00
VendingMachines Enhance Vending Machine UI: Adjust Minimum Height for better User Experience (#32851) 2024-10-16 23:34:31 -05:00
Verbs Entity menu lookup changes (#32395) 2024-09-23 17:28:42 +10:00
Viewport Replace Matrix3 with System.Numerics.Matrix3x2 (#27443) 2024-06-02 14:07:41 +10:00
VoiceMask Voice Mask refactor (#30798) 2024-09-26 18:55:59 +02:00
Voting Allow votekicks to be initiated in the lobby (#32528) 2024-10-31 21:52:55 -04:00
Wall Make shuttle walls/windows constructable (#19255) 2023-11-20 17:20:24 -08:00
Weapons Changes to "Burst" firemode; Drozd, WT550 and C20-r (#31292) 2024-11-06 15:39:16 +01:00
Weather Fix AudioSystem nullability checks for engine PR (#32233) 2024-09-18 11:43:30 +10:00
Wires Wires ui tooltip localization (#32284) 2024-09-18 21:10:53 +02:00
Xenoarchaeology Remove calls to FormattedMessage obsolete methods (#31706) 2024-09-01 13:00:53 +02:00
Zombies Cleans up StatusIconSystem and fixing some bugs (#28270) 2024-06-03 12:12:21 -04:00
AssemblyInfo.cs
Content.Client.csproj Remove some wayward folder includes in the csproj (#31244) 2024-08-22 13:19:29 -04:00
Content.Client.csproj.DotSettings
GlobalUsings.cs
Program.cs