Merged
Conversation
* 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
* 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
porting AL borg subtypes
…ixes Borg rsi fixes
Swapping default borg chassis
Swapping default borg chassis
…and the system is kinda stupid anyway.
…on/HardLight into port-subtype-switchable
…the OG borg frames.
…on/HardLight into port-subtype-switchable
Just 1 linter fail? Surely not
God damn it.
Contributor
Author
|
this should not be changing as many files as it is... |
Contributor
Author
|
Okay it turns out those sprites are in fact busted and I lack the technological skill to fix it. So instead, I'll have to remove them. Sorry. |
undoing changes so the RSI passes.
commenting out k4t_ninja pending sprite fixes
Contributor
|
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
commenting out k4t_ninja pending sprite fixes
Contributor
|
do you want me to have a look at the sprites? |
Contributor
Author
Free to try but Fur is seemingly also working on it |
B3CKDOOR
referenced
this pull request
in SandwichStation/SandwichStation-HL
Apr 16, 2026
* 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 * 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 * Guh messed up the ID... * Merge pull request #1804 from Road-Train/borg-subtypes porting AL borg subtypes * commenting as of yet unused tags. * Merge pull request #1383 from ss14Starlight/borg-rsi-fixes Borg rsi fixes * port subtypes * Merge pull request #1961 from R3v3l4t1on/change-default-borg-chassis Swapping default borg chassis * Merge pull request #1961 from R3v3l4t1on/change-default-borg-chassis Swapping default borg chassis * Customization should be free! * Remove pricing logic because I can't be arsed to fix it for 1 sprite and the system is kinda stupid anyway. * BEGONE ENT * Fixing several sprite paths and PROPERLY applying the restoration of the OG borg frames. * Tallborg sprites (Not yet added to the subtypes) * Delete the AL port due to possible licensing issues * Add the CD version of the system instead. My sanity is at ease. * Leftover changes. * Another one! Guuuuh * Gonna kill myself with all these fucking typos * Why the fuck will this just not work... * I am genuinely lost for why this is not working. * Fairly sure I've fucked up SEVERAL rsi's but... I just want this shit to work man... * WHYYYYY JUST WORK GOD DAMN IT * SERVER LAUNCHES, SELECTING A BORG CRASHES IT. BUT BY GOD. IT'S PROGRESS. * VICTORY!!!!! * Duplication moment Just 1 linter fail? Surely not * Fixing RSI's of several borgs so they work properly. * Borgs use labels instead of tooltips since it is more convenient (need to adjust the location though). Also fixed medical standard not using an .rsi (and updated ID's to match the SL convention) * refactor ChassisSpriteSelection.xaml.cs - Remove code duplication by changing CreateDefaultSubtypeButton into CreateSubtypeButton which can create both the default and other buttons. Also hopefully fixed the labels being slapped RIGHT on top of the borg sprites? * Further refactoring: Pass only the subprototype instead of the entire action. * UI works... several of the borgs are a tad broken though time to look into that. * Removed unnecesary subtype mentions from the FTL file, hopefully fixed all the broken dummy protos. * Yeah no I am not redoing all of the quadborgs as well. That's a future me problem. * Fixing ID's. * Fixed engi quadborg accepting arms, reinstated all the borg legs/torso/heads so quadborgs can still be built. To be removed when quadborgs become switchable. * Reinstated the removed modules, but moved them to be craftable at base so quads don't get cucked. * Whoops forgot to re-parent the heads. * Tags moment. * Split the Civilian folder into Jani/Service. Also, prototyped all the Tallborgs. * FUCKASS TYPOS * I swear I can't read BUT THIS TIME I'VE GOT IT. * I swear I have eyes. I just. Can't seem to use them. * Create borg_types.yml Secborgs soontm * Update borg_types.yml Add an actual definition for the security borg. * Create borg_chassis.yml WHY IS THIS DIRECTORY NAMED CYBORG AND NOT CYBORGS COME ON * Update borg_subtype_chassis.yml Added: Cargo to mining (for now, to be redone if cargo borg is ported) Ninja to generic Peacekeeper to generic Security subtypes Syndie subtypes to security (for now) * Update borg_subtypes.yml Added the subtypes. k4t_alt_cargo's rsi doesn't have the extension. I cannot fix this currently. * Create base_borg_subtypes.yml * Fleshing out the security cyborg. Deliberately omitting the jetpack here because well it seems that one's being made useless. * Remove jetpacks from normal borgs. Livy's update is removing the key functionality that made me want them added. Now that it is gone it is no longer required for them to have one. * Rename meta.json to meta.json ayeee you can fix it! * 5 million renames incoming * Rename borg-tipped.png to borg-tipped.png * Rename borg-wreck.png to borg-wreck.png * Rename borg.png to borg.png * Rename borg_e.png to borg_e.png * Rename borg_e_r.png to borg_e_r.png * Rename borg_l.png to borg_l.png * Rename credit.png to credit.png * whoops wrong comps * Fixed MOST of the linter fails... just gotta see the silicon laws. * RobocopLawset != Robocop God damn it. * Fix meta THESE ARE 64X32 NOT 32X32 * Holy shit this meta was fucked up. Bleeeegh * Update meta.json undoing changes so the RSI passes. * Update borg_subtype_chassis.yml commenting out k4t_ninja pending sprite fixes * Update borg_subtypes.yml commenting out k4t_ninja pending sprite fixes --------- Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com> Co-authored-by: FoxxoTrystan <45297731+FoxxoTrystan@users.noreply.github.com> Co-authored-by: Matthew Herber <32679887+Happyrobot33@users.noreply.github.com> Co-authored-by: Rinary <rinary.super@gmail.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
About the PR
Removes k4t_ninja from selectable borgs as the sprites are broken
Why / Balance
k4t_ninja's rsi only has 2 directions for sprites, but you need 1/4/8. Because I am unable to fix this, I am commenting it out. Sprites are being left in due to a request of author for the collection to remain complete.
Technical details
Commented prototypes in borg_subtype_chassis and borg_subtypes
How to test
Spawn PlayerBorgBattery
Press 4
Select Generic
Look for K4T_NNJ
Media
Nuh
Breaking changes
N/A
Changelog
🆑 R3v3l4t1on