Skip to content
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

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

PJB3005
Copy link
Member

@PJB3005 PJB3005 commented Oct 1, 2024

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:

  • Generic: tools
  • Engineering: 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.

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

  • Deleted various prototypes related to borgs, such as specialized borg chassis parts and PlayerBorgGeneric. Core borg code is unaffected.

Changelog

🆑

  • add: Borgs can now select their chassis type upon creation (construction or job spawn), immediately giving borgs access to all chassis types.
  • add: Borg chassis types now come with built-in modules depending on the type, so you can immediately do your job without help from science. Some upgrade modules must still be installed later however.
  • remove: Specialized chassis types have been removed from construction, as they are no longer necessary.
  • remove: Borg unlock access is no longer determined by their chassis, it's always science or command. This means the janitor can't unlock jani borgs anymore.

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.
@github-actions github-actions bot added Status: Needs Review This PR requires new reviews before it can be merged. Changes: UI Can be reviewed or fixed by people who are knowledgeable with UI design Changes: Sprites Should be reviewed or fixed by people who are knowledgeable with spriting or visual design. labels Oct 1, 2024
Copy link
Contributor

github-actions bot commented Oct 1, 2024

RSI Diff Bot; head commit 3974f8a merging into 440742f
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Textures/Interface/Actions/actions_borg.rsi

State Old New Status
select-type Added

Edit: diff updated after 3974f8a

@Sadopeer
Copy link

Sadopeer commented Oct 1, 2024

brilliant idea

@PJB3005
Copy link
Member Author

PJB3005 commented Oct 1, 2024

brilliant idea

I know, that's why I took it from SS13.

@VasilisThePikachu VasilisThePikachu added the Undergoing Maintainer Discussion This PR is currently going through the 72-hour discussion window as per maintainer policy label Oct 1, 2024
@Doru991
Copy link
Contributor

Doru991 commented Oct 2, 2024

Based, I wanted to do this too

@TheDoctor1977
Copy link

borg gameplay is about to become at least 3x better because of this

@icecreamjones
Copy link

how about name selection?

@Radezolid
Copy link

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.

@deltanedas
Copy link
Contributor

engiborg is now fully kitted out with no effort, why keep tool/rcd/constructipn modules since they cant be installed as duplicate modules

@BramvanZijp
Copy link
Contributor

IMO med should get a defib and engi should lose the rcd for standard loadouts

@WhiteGorila
Copy link

This would be an unbelievably based merge

@PJB3005
Copy link
Member Author

PJB3005 commented Oct 2, 2024

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???

@lzk228
Copy link
Contributor

lzk228 commented Oct 2, 2024

now if borg got emaged, it's 95% by a scientist
maybe we can leave engi access, like they also could change a battery and it becomes not that obvious which person has emaged the borg

@Ilya246
Copy link
Contributor

Ilya246 commented Oct 2, 2024

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

@PJB3005
Copy link
Member Author

PJB3005 commented Oct 2, 2024

Today on "PJB discovers SS14 inexplicably deviates from SS13 for some reason": yes in SS13 it works exactly as @Ilya246 describes.

@lzk228
Copy link
Contributor

lzk228 commented Oct 2, 2024

i mean, sci and engies have a reason to open a borg, while all others should catch the moment when a borg has open panel and nobody is around
image

@PJB3005
Copy link
Member Author

PJB3005 commented Oct 2, 2024

while all others should catch the moment when a borg has open panel and nobody is around

This should never happen except skill issues on science, this is not the game mechanic you think it is.

@ScarKy0
Copy link
Contributor

ScarKy0 commented Oct 2, 2024

I vote for letting emags break borg locks

@noldevin
Copy link

noldevin commented Oct 2, 2024

I'm all for being able to select Borg type and name but they should only come with modules available at round start.
And the departments should retain access to unlock departmental borgs, one so that science aren't the only ones who can emag them, and two in case a department needs to dismantle or upgrade one of their borgs.

@PJB3005
Copy link
Member Author

PJB3005 commented Oct 2, 2024

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).

one so that science aren't the only ones who can emag them

See discussion literally above your comment.

and two in case a department needs to dismantle or upgrade one of their borgs.

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.

@deltanedas
Copy link
Contributor

What kind of upgrades can other departments possibly be doing to their borgs?

sci can use mailing units to send modules, they can have batteries themselves (e.g. salv finding an antique cell)

@noldevin
Copy link

noldevin commented Oct 2, 2024

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).

one so that science aren't the only ones who can emag them

See discussion literally above your comment.

and two in case a department needs to dismantle or upgrade one of their borgs.

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.

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.
Other departments can mostly only upgrade the battery I guess. But if departments can't unlock their borgs then an emag should be able to unlock.

@Doru991
Copy link
Contributor

Doru991 commented Oct 2, 2024

Furthermore, in SS13 borgs can unlock their own cover (but not re-lock it). If we really need this we can add it.

They could do that before but it got removed, don't know for sure why though

@PJB3005
Copy link
Member Author

PJB3005 commented Oct 2, 2024

and they should probably be removed from research and just be available to print at round start.

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 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.

This is literally "content" that one job has purely by making another job suffer. It is not good content and not worth keeping.

Other departments can mostly only upgrade the battery I guess.

And where are they going to get better batteries..?

@perryprog
Copy link
Contributor

perryprog commented Oct 2, 2024

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.

@noldevin
Copy link

noldevin commented Oct 2, 2024

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.

Fair, I missed that.

This is literally "content" that one job has purely by making another job suffer. It is not good content and not worth keeping.

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.

And where are they going to get better batteries..?

Seclights, one of the lathes in engineering or cargo, salvage finds, etc

@Ilya246
Copy link
Contributor

Ilya246 commented Oct 2, 2024

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.

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
i think borgs should actually have roundstart means to do their job well and not be humans but worse that are only able to do one thing unless sci gets lucky with materials and points, borgs should be very good at their job and bad at everything else as a given rather than being bad at everything

Fix salvage borg modules still having research/lathe recipes

Engie borg has regular tool module, not advanced.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changes: Sprites Should be reviewed or fixed by people who are knowledgeable with spriting or visual design. Changes: UI Can be reviewed or fixed by people who are knowledgeable with UI design Status: Needs Review This PR requires new reviews before it can be merged. Undergoing Maintainer Discussion This PR is currently going through the 72-hour discussion window as per maintainer policy
Projects
None yet
Development

Successfully merging this pull request may close these issues.