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

Singularity and Tesla now require generator access to activate #32684

Closed
wants to merge 11 commits into from

Conversation

Lyroth001
Copy link
Contributor

@Lyroth001 Lyroth001 commented Oct 7, 2024

About the PR

Singularity and tesla generators + associated equipment with access readers now require the new generator access level. This level is given roundstart to Cap, HoP, CE, Atmos Techs and Station Engineers. Singulo + Tesla generators now spawn in locked by default, and must be unlocked before they can create their entity. There is a popup when they reach the power threshold but are locked.

Why / Balance

This is mostly designed to prevent TA raiders from being able to loose the moment the round starts, as no role that requires bare minimum playtime should really have an end the round button the way TAs do. This means well meaning TAs must get a full engi to come and check their work when trying to setup a generator (as they can still move all the parts into place), which also facilitates learning as well as preventing raiding.

This also limits mass station destruction for antags, as they are required to gain generator access somehow to loose via this method, since EMAGs do not break the lock on generators. I would consider adding an uplink item like an access card with just generator access available after 30 mins, but didnt want to put it in this PR. Relates to #20064 by limiting mass sabotage, especially if an uplink item is added for this.

Reason for new access level is there is no access TAs dont have but regular engies do; using CE or Atmos is theoretically possible but would likely make the roundstart yelling at engi bcs theres no power worse if regular engies can't get things going themselves

Overall will hopefully reduce admin workload a bit

Technical details

Add lock component and access reader to singulo and tesla generator prototypes, added if to SingularityGeneratorSystem to check if its locked, added access level to id card console. Rest is YAML

Media

image
image
image

2024-10-07.15-30-22.mp4
2024-10-07.15-40-16.mp4
2024-10-07.15-33-52.mp4

Requirements

Breaking changes

N/A I hope

Changelog

🆑
-tweak: Singularity and Tesla generators, and associated items, now require Generator access to unlock and use, available to all of engineering except assistants. Generators must be unlocked to create the Singularity or Tesla

@thebadman4662
Copy link

Something something "all intern roles must have same access as regular departament roles". 😆

@Nairodian
Copy link
Contributor

Nairodian commented Oct 7, 2024

This is mostly designed to prevent TA raiders from being able to loose the moment the round starts, as no role that requires bare minimum playtime should really have an end the round button the way TAs do. This means well meaning TAs must get a full engi to come and check their work when trying to setup a generator (as they can still move all the parts into place), which also facilitates learning as well as preventing raiding.

I respectfully disagree. Intern roles shouldn't be treated as inferiors mechanically, even more so when it's something that locks them out of actually learning a critical system to their job. Even if it's supposed to require a double check from a proper engineer, this'll likely result in some people shunting them away because they can't help with the majority of the work.

@Lyroth001
Copy link
Contributor Author

Something something "all intern roles must have same access as regular departament roles". 😆

Ok, CE and atmos only/j

I respectfully disagree. Intern roles shouldn't be treated as inferiors mechanically, even more so when it's something that locks them out of actually learning a critical system to their job. Even if it's supposed to require a double check from a proper engineer, this'll likely result in some people shunting them away because they can't help with the majority of the work.

I understand that, although most interns don't have the ability to single handedly end the round for the entire station. With this in place, they can still learn the system, as the engineer teaching them can still talk them through what to do, and they can still see UIs, just not unlock/toggle them. The vast majority of the setup can still be done by a TA, like they can still put everything in place. Its literally just turning on the generator and PA that they cant do currently

@LankLTE
Copy link
Contributor

LankLTE commented Oct 7, 2024

Other admins may have a different experience, but from mine since TA was locked behind a timer almost all raiders aren't playing it, but rather playing other roles and breaking into engineering. With that being the case all locking it for TAs will do is stop legitimate players from accessing it.

@Lyroth001
Copy link
Contributor Author

Other admins may have a different experience, but from mine since TA was locked behind a timer almost all raiders aren't playing it, but rather playing other roles and breaking into engineering. With that being the case all locking it for TAs will do is stop legitimate players from accessing it.

Thats fair, I could see an argument for it being standard engi access, although i still feel that as is it is too easy for one person to loose

@ArtisticRoomba
Copy link
Contributor

One of the points in the design document for these types of generators was making it so when particles were firing at a generator, the generator would call out that it was being activated and where it was, along with taking longer to activate. This way engineering could have a chance to interrupt someone activating the generator without permission.

This change is good. If it requires a compromise I think having engineering access in general to do this is fine, it stops the 50% of raiders that break into engineering to put the generator in front of the PA.

This also makes singuloose and tesloose nukie strategies balanced. Now nukies actually have to kill an engineer at least, before they unleash something the crew just cannot realistically contend against.

@Cojoke-dot
Copy link
Contributor

something something... change the name of the access so it does not sound like you need it to start normal generators... something something... is this going to affect much for a raider to just kill an engi and use their id...

Changing the access on stuff just does not seem like its going to stop raiders, maybe if there were 2 consoles on both sides of the pa that both need to be hit by 2 different people? Idk, I'm not an admin but it seems kinda silly to stop a person from accessing something who is killing people by letting them access it by killing someone. It also kinda works logic wise, at least 2 people checking the containment setup would reduce the number of unexperienced engi from setting it up incorrect.

This change is good. If it requires a compromise I think having engineering access in general to do this is fine, it stops the 50% of raiders that break into engineering to put the generator in front of the PA.

Its already like this, is it not?

@Lyroth001
Copy link
Contributor Author

Lyroth001 commented Oct 7, 2024

Its already like this, is it not?

Currently if the pa has been turned on by engi, all you need to do is move the generator in front of the active pa to loose and destroy the station.

change the name of the access so it does not sound like you need it to start normal generators

Generator was the best I could come up with, Engine would just be too close to engineering, singularity excludes tesla and vice versa

I'm not an admin but it seems kinda silly to stop a person from accessing something who is killing people by letting them access it by killing someone

Imo its better to have something than nothing, since we can't exactly get an are you a raider pop up when you try to make a singulo. Ultimatly a sufficiently determined raider will loose no matter what, but we can put methods in place to try and dissuade it, and make it more effort on their part/more likely to be noticed beforehand. In this case, theyd need to kill another engi first, which already puts them on securities raider as well as potentially admin (since TAs cant be antags and have no legit reason to do this), as opposed to now where they can just do it

@ArtisticRoomba
Copy link
Contributor

Having a two person confirmation is an entirely different bag of worms and there are too many caveats to make it viable.

I don't think the PA has an access component as of right now, I believe anyone can operate it. Even then, it would just have an access wire. People could just snip it.

I think someone should kill someone to get access to kill other people... take armory access for example.

If it's really a problem we could have the generator have an EMAG component so it can be cracked by nukies with one ounce of foresight. But the whole message on activation thing should be implemented to help curb the issue a little bit.

I think giving the crew a chance and extra safeguard to prevent someone from just dragging the generator in front of the PA is better than having no chance. These engines end the round.

@Lyroth001
Copy link
Contributor Author

Lyroth001 commented Oct 7, 2024

I don't think the PA has an access component as of right now, I believe anyone can operate it. Even then, it would just have an access wire. People could just snip it.

PA does have an access component already for engineering

If it's really a problem we could have the generator have an EMAG component so it can be cracked by nukies with one ounce of foresight. But the whole message on activation thing should be implemented to help curb the issue a little bit.

One of my ideas for future PRs is a way for antags to get around this, I just didn't want to put it here to avoid a massive delay due to touching antag stuff lmao. I did explicitly want to avoid emag affecting this bcs it does too much already, you'll see i turn off the lock being breakable via emag

@Cojoke-dot
Copy link
Contributor

Cojoke-dot commented Oct 7, 2024

I don't think the PA has an access component as of right now, I believe anyone can operate it. Even then, it would just have an access wire. People could just snip it.

#30394, they don't have an access wire nor emag interaction iirc

Having a two person confirmation is an entirely different bag of worms and there are too many caveats to make it viable.

Explain? what kind of caveats?

I think someone should kill someone to get access to kill other people... take armory access for example.

That attacking captain, hos, or warden with a toolbox compared to an engineer with a slowdown from their hardsuit. That's not including going into the armory and not getting caught by all of security. I've seen it happen before through a raider getting cap id when power went out and security instantly killed them when they got into the armory. it also takes more skill to cause issues with guns over the pa.

@ArtisticRoomba
Copy link
Contributor

Explain? what kind of caveats?

Presume a two-person authentication (2PA) was required to activate the PA, with the following requirements:

  • Two separate people can activate the PA that have engineering access.
  • The CE, Captain, and HoP can also give explicit authority without requiring a second person.
  • 2PA is not required for changing power level or disabling the PA.

You could run into certain situations like:

  • A lone engineer has to ask for the captain or HoPs permission to authorize. In the beginning of the round, this may take too long and lead to brownouts before getting authentication. We could expand the override to command members which partially alleviates this issue but this might have its own set of complications. It doesn't feel right for HoS to have authority for something inherently engineering related. It can be discussed further later.
  • Someone can easily turn the PA off quietly. An engineer that discovers the PA would have to scramble to find an engineer or authorized person to turn it on. The engine may decay in the time it takes to find someone.
  • The system would have to be tuned to make sure that it could not be easily activated by one person with engineering access.

These are just very specific examples and I'm sure half of the time a 2PA would be fine. But this presents a lot of problems for regular engineers that need control over the PA quickly.

@Cojoke-dot
Copy link
Contributor

You could run into certain situations like:
A lone engineer has to ask for the captain or HoPs permission to authorize. In the beginning of the round, this may take too long and lead to brownouts before getting authentication. We could expand the override to command members which partially alleviates this issue but this might have its own set of complications. It doesn't feel right for HoS to have authority for something inherently engineering related. It can be discussed further later.

Sure, but how often is there a single engi in the entire department? That seems like a fair price to pay for having someone double check the setup used. I've met many an engi who set the singulo wrong and loose early in the shift.

  • Someone can easily turn the PA off quietly. An engineer that discovers the PA would have to scramble to find an engineer or authorized person to turn it on. The engine may decay in the time it takes to find someone.

If they wanted to disable the pa they could just deconstruct one part, if they wanted to disable the pa this is not going to change much. Maybe even make it less likely for people to destroy a pice completely.

  • The system would have to be tuned to make sure that it could not be easily activated by one person with engineering access.

That's the point yes

These are just very specific examples and I'm sure half of the time a 2PA would be fine. But this presents a lot of problems for regular engineers that need control over the PA quickly.

Edge cases are always like that, I mean the issue that brought it up is people destroying the entire station using it. I think having engi work as a team more often and force people who try to learn it themself without asking to at least have a check from someone in the department.

@Sarahon
Copy link
Contributor

Sarahon commented Oct 8, 2024

Sure, but how often is there a single engi in the entire department? That seems like a fair price to pay for having someone double check the setup used. I've met many an engi who set the singulo wrong and loose early in the shift.

Seen it happen quite a bit in lower population servers.

@Sarahon
Copy link
Contributor

Sarahon commented Oct 8, 2024

Truthfully I am concerned with how much power this gives to command. CE's can already be obnoxious about power (Their job I suppose) but mechanically locking it all out just makes it a hassle and really the easiest fix to this kind of problem is just making the time requirement for engineering higher - it honestly already should be higher.

Engineering currently already has a massive glaring issue and that it's speedrun simulator, this can add an extra layer of headache to it, especially if you get short staffing. I've see engineering multiple times have only TA's or only 1 or 2 people in it - low population hours exist, this will cause problems with the current engineering setup. Shit I've even seen situations where there's no command a very little engi staff - what do you do then?

Somebody also mentioned it before, but this also completely alienates TA's. Even less reason for engineering to interact with a TA now that the TA can't even actually set it up in any capacity, they gotta watch and that's it. No hands-on experience for them. The whole appeal to engineering is power, not fixing hull breaches.

Like I'd take a much more slow and easily to handle singulo that we can reasonable fight vs total mechanical lockup in hopes to beat the raider. I know at least on some ss13 servers, a singuloose is not really at all a threat, it's usually some silly fuckup.

E.G I watched a guy try to set up singulo, in the middle of it he accidentally turned on one of the shields, it stuns him and pushed him into the singulo and it loosed. Engineering took a stroll to cargo, bought the decelerator, got rid of the singulo and proceeded to fix the damage and then repower the station. And evac was recalled after. It would be nice to have a balance like that vs total destruction before your power source suddenly loosed to some nonsense.

Possibly have the power sources only reach maximum threat level when it's at the 30 minute mark - meaning all looses before that really aren't round ending?

I'm really not convinced this stops raiders, more than it gives far more control to CE, cap and HOP(?) and less control to engineers. CE's will definitely abuse this. This level of mechanical lockup is why I avoided other servers.

@ArtisticRoomba
Copy link
Contributor

Truthfully I am concerned with how much power this gives to command. CE's can already be obnoxious about power (Their job I suppose) but mechanically locking it all out just makes it a hassle and

CE should be partially annoying about power. They have the final say in all things about their department. I do agree that the two-person authentication system shouldn't really be implemented; there should just be more safeguards and simple steps in turning on an engine, so people have more of a chance to stop it. This is part of the design doc for engineering.

really the easiest fix to this kind of problem is just making the time requirement for engineering higher - it honestly already should be higher.

Personally I think the problem is that engineering has very bland resources for introducing people into the department and teaching them. I am fixing this in #32622.

Engineering currently already has a massive glaring issue and that it's speedrun simulator, this can add an extra layer of headache to it, especially if you get short staffing. I've see engineering multiple times have only TA's or only 1 or 2 people in it - low population hours exist, this will cause problems with the current engineering setup. Shit I've even seen situations where there's no command a very little engi staff - what do you do then?

Somebody also mentioned it before, but this also completely alienates TA's. Even less reason for engineering to interact with a TA now that the TA can't even actually set it up in any capacity, they gotta watch and that's it. No hands-on experience for them. The whole appeal to engineering is power, not fixing hull breaches.

I agree on all of these points.

Like I'd take a much more slow and easily to handle singulo that we can reasonable fight vs total mechanical lockup in hopes to beat the raider. I know at least on some ss13 servers, a singuloose is not really at all a threat, it's usually some silly fuckup.

Engineering needs to have a destructive Engine to have a consequence for failing. Singulooses are already a round-ending thing, even if it wanders off into space often times the crew are adamant in going home, even though the danger is over. Although, maybe the singularity buster rocket launcher would be interesting to see as an alternative to the particle decelerators.

E.G I watched a guy try to set up singulo, in the middle of it he accidentally turned on one of the shields, it stuns him and pushed him into the singulo and it loosed. Engineering took a stroll to cargo, bought the decelerator, got rid of the singulo and proceeded to fix the damage and then repower the station. And evac was recalled after. It would be nice to have a balance like that vs total destruction before your power source suddenly loosed to some nonsense.

I agree. There should be more systems to prevent some tomfoolery happening as outlined in the design doc.

Possibly have the power sources only reach maximum threat level when it's at the 30 minute mark - meaning all looses before that really aren't round ending?

I think this extreme amount of mechanical enforcement makes the game a bit weird, maybe even unfun; why would a singularity all of a sudden get 10 times as bigger at the 30 minute mark? In the future Traitor Reputation will alleviate mass sabotage at the 30 minute mark. Obviously that's a bit in the future so maybe someone can think of a better solution now.

I'm really not convinced this stops raiders, more than it gives far more control to CE, cap and HOP(?) and less control to engineers. CE's will definitely abuse this. This level of mechanical lockup is why I avoided other servers.

Fair, I just provided examples on why this would have been a bit of a bad idea. And CE's being despots is more of an IC problem than anything. You're supposed to listen to your team leader. I do agree that CE's shouldn't just have the entire keys to the house and lock everything behind their explicit permission.

Back to talking about the actual PR: I think that Engineering access for generators is fine, rather than having it be an explicit Generator access. Good for TAs that want to learn and the edge cases that surround them. It's better than no system in place to stop someone dragging a engine in front of a PA.

@Sarahon
Copy link
Contributor

Sarahon commented Oct 8, 2024

Possibly have the power sources only reach maximum threat level when it's at the 30 minute mark - meaning all looses before that really aren't round ending?

I think this extreme amount of mechanical enforcement makes the game a bit weird, maybe even unfun; why would a singularity all of a sudden get 10 times as bigger at the 30 minute mark? In the future Traitor Reputation will alleviate mass sabotage at the 30 minute mark. Obviously that's a bit in the future so maybe someone can think of a better solution now.

Maybe, it'd be more like a power curve if anything, though there's just not an easy answer to it. Problem with looses, 9 out of 10 times they are round ending, and they can happen consecutively and that's when the complaining starts. They want to find a way to mechanically enforce it to not loose before 30 minutes, and maybe the answer really is just...making engineering not a speedrun? Having some sort of power source that lasts that long and allowing engineers to just put up power at their own pace is a better direction and would make looses feel later?

@ArtisticRoomba
Copy link
Contributor

They want to find a way to mechanically enforce it to not loose before 30 minutes, and maybe the answer really is just...making engineering not a speedrun? Having some sort of power source that lasts that long and allowing engineers to just put up power at their own pace is a better direction and would make looses feel later?

I don't think that engineering isn't that crazy of a speedrun to get everything up and running. Competent engineers and a good CE get power up well before the station browns out, although I do agree that a disjointed team can easily lead to brownouts.

There is a general goal with SMES mapping: engineering should have 10 minutes to get a power source up and running with AME assistance.

@Krovotushka
Copy link

As CE main i can say that speedrunning power does not require special advanced engineering skills, also regarding long lasting power source at round start: JUST SET UP AME AND CONNECT PACMAN GENERATORS TO THE GRID PLEASE (Pacman gens easily fill needed power loads gap when it all work with AME)

@icecreamjones
Copy link

Bad for training and REALLY bad for lowpop, overall I feel like this is a wrongheaded approach to any problem

@Lyroth001
Copy link
Contributor Author

Truthfully I am concerned with how much power this gives to command. CE's can already be obnoxious about power (Their job I suppose) but mechanically locking it all out just makes it a hassle and really the easiest fix to this kind of problem is just making the time requirement for engineering higher - it honestly already should be higher.
I'm really not convinced this stops raiders, more than it gives far more control to CE, cap and HOP(?) and less control to engineers. CE's will definitely abuse this. This level of mechanical lockup is why I avoided other servers.

I mean. This doesnt give command much more power, considering all engineers can unlock the generators except TAs, which is a large part of why I didn't just set it to CE access (Although Imo CE should really be overseeing engine setup usually anyways but yk). HoP has access partly to mirror it having all non-command access and also as an additional failsafe in a low/no engi environment (on lowpop rounds I've seen command often sets up power when theres no engis)

@Sarahon
Copy link
Contributor

Sarahon commented Oct 9, 2024

They want to find a way to mechanically enforce it to not loose before 30 minutes, and maybe the answer really is just...making engineering not a speedrun? Having some sort of power source that lasts that long and allowing engineers to just put up power at their own pace is a better direction and would make looses feel later?

I don't think that engineering isn't that crazy of a speedrun to get everything up and running. Competent engineers and a good CE get power up well before the station browns out, although I do agree that a disjointed team can easily lead to brownouts.

There is a general goal with SMES mapping: engineering should have 10 minutes to get a power source up and running with AME assistance.

problem is new players. You don't always get competent engineers - a solo engineer who knows what they are doing can run engi, but multiple confused engis cause a blackout. It's just unforgiving really.

@ArtisticRoomba
Copy link
Contributor

I agree that the goal of roundstart power with zero brownouts has little room for incompetence.

Because of the depth and the amount of interconnected systems engineering has, it's difficult to grasp for new players. Sometimes being thrown into the frying pan is a good way to learn, although this can simply be frustrating for people.

On the topic of the PR, I think having it just be engineering access is perfectly fine. Maintainers might want to have it be EMAGable. We'll have to see.

@chavonadelal
Copy link
Contributor

you read my mind, interns shouldn't have access to this

@SlamBamActionman SlamBamActionman added the S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. label Nov 14, 2024
Copy link
Contributor

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

@github-actions github-actions bot added the S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted label Nov 20, 2024
Comment on lines 49 to 56
return;
if (_lock.IsLocked(uid))
{
_popup.PopupEntity(Loc.GetString("singularity-generator-component-locked"), uid);
SetPower(uid, 0, comp);
return;
}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hugboxing?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean the main idea is to try to lower the amount of both raider loosing by adding more friction to the process, and also engi loosing roundstart by trying to get someone vaguely experienced to okay a generator setup, since immediate evacs due to looses just aren't particularly fun and are for all intents and purposes unrecoverable, which can lead to feelsbads for a lot of people (e.g. nukies loosing their roll, or honestly any actual antag)

@ScarKy0 ScarKy0 added P2: Raised Priority: Item has a raised priority, indicating it might get increased maintainer attention. T: New Feature Type: New feature or content, or extending existing content D2: Medium Difficulty: A good amount of codebase knowledge required. S: Needs Review Status: Requires additional reviews before being fully accepted A: Engineering Area: Engineering department, including Atmospherics. T: Of Admin Interest Type: Affects administration work a lot, and might require admins to weigh in on and removed S: Untriaged Status: Indicates an item has not been triaged and doesn't have appropriate labels. labels Nov 22, 2024
Copy link
Contributor

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

@Lyroth001
Copy link
Contributor Author

closing this as #33358 was merged, which is a better implementation of the same concept

@Lyroth001 Lyroth001 closed this Nov 25, 2024
@Lyroth001 Lyroth001 deleted the singuloSafe branch November 25, 2024 16:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A: Engineering Area: Engineering department, including Atmospherics. D2: Medium Difficulty: A good amount of codebase knowledge required. Merge Conflict P2: Raised Priority: Item has a raised priority, indicating it might get increased maintainer attention. S: Merge Conflict Status: Needs to resolve merge conflicts before it can be accepted S: Needs Review Status: Requires additional reviews before being fully accepted T: New Feature Type: New feature or content, or extending existing content T: Of Admin Interest Type: Affects administration work a lot, and might require admins to weigh in on
Projects
None yet
Development

Successfully merging this pull request may close these issues.