-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Borg type switching. #32586
base: master
Are you sure you want to change the base?
Borg type switching. #32586
Conversation
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.
brilliant idea |
I know, that's why I took it from SS13. |
Based, I wanted to do this too |
borg gameplay is about to become at least 3x better because of this |
how about name selection? |
Engineering cyborg recieves T2 tech for free while the rest get the basic. I would say either all of them get the advanced or none. |
engiborg is now fully kitted out with no effort, why keep tool/rcd/constructipn modules since they cant be installed as duplicate modules |
IMO med should get a defib and engi should lose the rcd for standard loadouts |
This would be an unbelievably based merge |
Oh I completely forgot to mention: I removed the panel access for borgs having access specific to their selected chassis. This means janitors can't unlock jani borgs anymore, because why the hell could they before??? |
now if borg got emaged, it's 95% by a scientist |
emag on a locked borg should break the lock so you can then open and emag the borg to emag again, though this'll have the downsides of the borg being instantly valid if nonsci can unlock it and spending 2 emag charges on it |
Today on "PJB discovers SS14 inexplicably deviates from SS13 for some reason": yes in SS13 it works exactly as @Ilya246 describes. |
This should never happen except skill issues on science, this is not the game mechanic you think it is. |
I vote for letting emags break borg locks |
I'm all for being able to select Borg type and name but they should only come with modules available at round start. |
Many of the modules we had in the research trees in SS14 were equipment like RCDs borgs should have round start (as they do in SS13).
See discussion literally above your comment.
What kind of upgrades can other departments possibly be doing to their borgs? They don't have access to the exosuit fabricator to print any upgrades. Furthermore, in SS13 borgs can unlock their own cover (but not re-lock it). If we really need this we can add it. |
sci can use mailing units to send modules, they can have batteries themselves (e.g. salv finding an antique cell) |
I mean if the borgs are going to start with advanced modules, they should all get the advanced modules not just engi, and they should probably be removed from research and just be available to print at round start. The RCD is especially OP since it's infinite. And the advanced tools are a big upgrade with the infinite welder. This also takes away from scientist content as there won't be nearly as much to do as a roboticist without borgs asking for chassis swaps or upgrades. |
They could do that before but it got removed, don't know for sure why though |
As clearly listed in the PR description, the modules were, in fact, removed from research in this PR. And there is no use case for printing them as they are alwyas in the only borg that can accept them.
This is literally "content" that one job has purely by making another job suffer. It is not good content and not worth keeping.
And where are they going to get better batteries..? |
Sec can offer high capacities before they're researched, salv is able to find antique cells. Pre-lock change I've had people switch out my battery to charged ones during things like power outages when there were no science folks or captain around. If you're a salv borg (which are extremely extremely rare, to be fair—but that's another issue) then you'll probably want to be able to have your battery swapped while out mining or what have you. |
Fair, I missed that.
If you want to make that argument, it applies to almost everything locked behind research. Why don't engineers start with advanced tools too? Why doesn't janitor start with an advanced mop? Or the janiborg and medborg for that matter. Progression isn't suffering it's a reward.
Seclights, one of the lathes in engineering or cargo, salvage finds, etc |
there's reasonable levels of it and unreasonable levels for it, for example you wouldn't take mops away from jani and lock them behind research |
Fix salvage borg modules still having research/lathe recipes Engie borg has regular tool module, not advanced.
IMO this PR focuses too much on the "roundstart borgs" over the general gameplay. Borgs are just that, robots with modules and should not be better than humans in ways that matter in specific jobs, they are already OP so to speak in their way (don't care about atmos, cannot be stunned, easy to get back to full health, not to mention infinite RCD)
Fully support this idea. Let them pick the type but that's it, leave them with basic tool module so they could ask for modules.
Emergency battery change was always a thing by the way...
Good.
You know what else isn't good content? Making borgs into engineer/medic/janitor/scientist/salvager but better in most if not all ways from get go, with zero requirement from science in terms of research/materials. |
I'm in favor of borgs being "job but better" because they're massively limited in versatility. The only thing they CAN do is their job, as opposed to crew who can do ANY job, as well as have hands. |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
Some things were missing
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
You continue to work on the Borgs? |
? |
About the PR
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:
Specialized borgs have 3 additional module slots available on top of the ones listed above, generic borgs have 5.
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.
Why / Balance
Playing borg round-start is just awful. The only module you have access to is the basic tools, and you basically have to pray science cares enough to upgrade you. Not to mention that having to always be disassembled to become a specialized borg is just insane. In SS13 there is none of this friction, you just select what borg type you want to play this round and hit go.
Technical details
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.
Supersedes #30406
Media
Content.Client_EsPPyBEKOx.mp4
Requirements
Breaking changes
PlayerBorgGeneric
. Core borg code is unaffected.Changelog
🆑