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

Add a cvar to limit maxcap range & Lower it for wizards den #31437

Merged
merged 10 commits into from
Sep 10, 2024

Conversation

TurboTrackerss14
Copy link
Contributor

@TurboTrackerss14 TurboTrackerss14 commented Aug 25, 2024

About the PR

Praise be community feedback. Let the world be free of funny atmos bombs.
Single line comment out of the tankexplosion trigger.

Why / Balance

Usecase is so small that its almost always used to commit rulebreaks rather than reasonable usage.

  • Traitor without DAGD removes entire department(s)
  • Non-antag demolishes security for the tiniest slight
  • "accidental" maxcap creation disregarding the fact its a few specific steps to create.
  • painful optimization on the side of the player to create maxcap "grenades" to eliminate all risk to self.

While I do wish for there to be a cleaner and more efficient change to maxcaps.
Until such a change is proposed and implimented, this is fit for purpose.

Technical details

No more gastank explosions is likely to cause issues down the line for pipe bursting etc without being a maxcap.

Media

no media.

Requirements

  • I have read and I am following the Pull Request Guidelines. I understand that not doing so may get my pr closed at maintainer’s discretion
  • I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Changelog

🆑

  • remove: Gas tank explosions ("max caps") have a reduced range on WizDen servers until they can be reworked into a proper game mechanic.

@github-actions github-actions bot added the S: Needs Review Status: Requires additional reviews before being fully accepted label Aug 25, 2024
@deepdarkdepths
Copy link
Contributor

Holy based

@Just-a-Unity-Dev
Copy link
Contributor

Can this just be a cvar? I know many servers that would be very fine with having tankbombs enabled

@mirrorcult
Copy link
Contributor

why are you doing things like this with comments, add a cvar

Copy link
Member

@EmoGarbage404 EmoGarbage404 left a comment

Choose a reason for hiding this comment

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

Make it a CVAR and have the logic escape out early so we're not doing atmos calculation for no reason.

@Ilya246
Copy link
Contributor

Ilya246 commented Aug 25, 2024

should at most really be a nerf to make them more like grenades and not bombs

otherwise, i think they're good as a factor that adds a healthy amount of chaos to the round

@kurokoTurbo
Copy link

was there a discussion about it? can you please link it?

@BasedUser
Copy link
Contributor

why is max radius not a cvar yet anyway

@dvir001
Copy link
Contributor

dvir001 commented Aug 25, 2024

why is max radius not a cvar yet anyway

Fair

@Ilya246
Copy link
Contributor

Ilya246 commented Aug 25, 2024

actually yes just make max radius a cvar and if you want to remove maxcaps set it to 0 or at least something like 8 where they're mostly harmless

SpaceStation14.sln Outdated Show resolved Hide resolved
Content.Server/Atmos/EntitySystems/GasTankSystem.cs Outdated Show resolved Hide resolved
Content.Shared/CCVar/CCVars.cs Outdated Show resolved Hide resolved
@Ilya246
Copy link
Contributor

Ilya246 commented Aug 25, 2024

alternatively we could give them a special explosion damage type which does no structural and can't space floor, plus give it lower damage against people as well

@0x6273
Copy link
Contributor

0x6273 commented Aug 25, 2024

alternatively we could give them a special explosion damage type which does no structural and can't space floor, plus give it lower damage against people as well

This should be configurable in that case I think. But just limiting radius is probably good enough.

@cheltyi
Copy link

cheltyi commented Aug 25, 2024

yeah, nerf everything but buff security, we shouldn't have fun in a round

just a simple "No fun allowed"

@TurboTrackerss14 TurboTrackerss14 changed the title Removal of Maxcaps via a single line removal Removal of Maxcaps via cvar Aug 25, 2024
@0x6273
Copy link
Contributor

0x6273 commented Aug 25, 2024

remove: Gas Tank explosions have been removed. Including but not limited to maxcaps.

This changelog could be a bit misleading for downstreams since they are actually enabled by default, and only disabled in the wizden server config.

@0x6273
Copy link
Contributor

0x6273 commented Aug 25, 2024

As a game admin, I've had instances where I wish I could disable maxcaps temporarily, like I see atmos making a maxcap and I don't know what they intend to do with it. Like they could be a raider or maybe they just want to explode it in space for fun?

I think having a cvar for this can be very useful, but since disabling maxcaps by default on wizden is so controversial, I think that should be done in a separate pr instead.

@Killerqu00
Copy link
Contributor

yeah, nerf everything but buff security, we shouldn't have fun in a round

just a simple "No fun allowed"

reading comprehension 0 + security and command gets overwhelmed 9/10 rounds already :/

@Ilya246
Copy link
Contributor

Ilya246 commented Aug 25, 2024

i've said this on discord before, but repeating this here:

this PR will prevent atmosians from making maxcaps; however, the syndies (or even the self-antags) doing it aren't going to go anywhere, so they will just do other things
i suspect that we will instead get plasmafloods or stronger, which can and likely will be be even worse than maxcaps via being essentially always evac-worthy and affecting everyone and not a particular area if done properly

(edit) also, consider that plasmafloods are much easier to do than maxcaps, require no real knowledge, and can be done in like a minute

therefore, i wish for us to take into consideration that this PR will likely not cause the following changes, cause them to a lesser extent than expected, or even worsen the related situations:

  • stop self-antags causing mass death
  • lower admin pressure
  • lower sec pressure
  • stop non-DAGD atmos traitors from causing mass death

@LankLTE
Copy link
Contributor

LankLTE commented Aug 25, 2024

"removing maxcaps is a bad idea because then antags will just do something WORSE" is a bad argument because then we can just.. also nerf those worse things?

@cheltyi
Copy link

cheltyi commented Aug 25, 2024

"removing maxcaps is a bad idea because then antags will just do something WORSE" is a bad argument because then we can just.. also nerf those worse things?

Yeah, as I said before, no fun allowed, buff security, nerf everything

@Ilya246
Copy link
Contributor

Ilya246 commented Aug 25, 2024

"removing maxcaps is a bad idea because then antags will just do something WORSE" is a bad argument because then we can just.. also nerf those worse things?

then do nerf them? if you consider myself right you're admitting we should either nerf neither or both things at once

@TurboTrackerss14
Copy link
Contributor Author

TurboTrackerss14 commented Aug 28, 2024

Since we are on the topic of nerfing maxcaps, how about something like reducing range, increasing damage, and reducing structural damage or something like that?

Point 4 why/balance

Also "accidental" maxcaps are the same as "accidentally" connecting plasma to distro, and for maxcaps is even harder, i doubt theres a single person that has accidentally maxcapped, and i dont think it should be taken into account as a reason to nerf them

Yes thats why it was in big quotes, its "accidentally" not accidentally. The classic "I didn't know tanks blew up I just wanted to make a hot canister what"

How about something like the smaller the range the more damage they do? it wouln't make much sense tho, but from a gameplay perspective, maybe it could help with those issues?

Point. 4. Why/Balance.

@Cojoke-dot
Copy link
Contributor

I need to get a DAGD to show people why this is an issue… maxcaps are exclusively used for mass murder, as per the point of a massive bomb. Sure, nerf the damage and range then… what? Nobody uses it because it's still a secret people keep that's not all that strong as strong as an bomb that chem can make that's much easier to identify? Nobody likes getting hit by a big bomb that kills them and nobody likes wimpy bombs that do not affect anyone. There is no counter for an atmos walking into med with a tank and a canister. 0 sound, a timer long enough for the person deploying it to get away, a tossable projectile.

I have 2 ideas that could replace them:

  1. A randomization to the formula so Atmos has to test and it can't be made 5:00 into the shift
  2. Maxcaps go “poof”, rapidly filling a room with the gas in the canister. Rapid sleep bombs, plasma canister scare, refill a room with air. More utility than a direct bomb(trigger would have to be different too)

@0tito
Copy link
Contributor

0tito commented Aug 28, 2024

The painful optimizations are not painful, and its the fun part, having the ability to play around with values and get different result is what makes them fun, and like a breath of fresh air after making frezon for the 50th time. (Obviously if someone plays around with the values in game and not on localhost its on them), also, the risk to self part, why should there be a risk to self? if i get dagd, i can plasma flood, hot vapor flood, singuloose, tesloose. If im a chem syndie i can make explosives, lethal foams, deadly poisons. If im a scientist i can make a borg army. All this has almost no risk, maybe the borg army.

All the explosives on the syndicate uplink have almost 0 risk to self, except for getting detected. Wouldn't a change like this have the same effect? If you see an atmos walk, throw a tank and it explodes, since now it has less range, theres a high chance people will witness it and survive, different from actual maxcaps in wich no witness survives.

Also this would make it so that its decently dodgeable, like grenades, and it would force atmos players to use those "painful" optimizations to tune the bombs to have fewer ticks till explosion, since it would be harder to aim at/hit people with less range.

Also Cojoke-dot, if they were weaker than chem bombs then theres no reason to remove them, being weaker shoulnt be a reason to just remove it, and what im saying is to nerf the range but buff the damage, so it woulnt be a wimpy bomb.

Also yeah, people dont like being blown up, but explosives are a thing in the game, unless we remove all explosives & meteors, dying to an explosion being boring is not a reason for removing just maxcaps (if they had the range nerfed, how they are right now, yeah, its too big you cant even see it and you die)

So what i propose is just turning a weapon of mass destruction into a tool you can use to target specific people and kill them.

Also, for your point 2, tanks have only 5l and for rapidly filling the room with the content of the canister i can just open it, it would basically be the same as removing maxcaps, cause if i want to fill a room with the contents of a canister i can alredy do that

@Cojoke-dot
Copy link
Contributor

The painful optimizations are not painful, and its the fun part, having the ability to play around with values and get different result is what makes them fun, and like a breath of fresh air after making frezon for the 50th time.

Turbo is referring to people making programs to maximize time - power. Get enough time to get away while dealing enough damage to remove a department. Removal of the risk that is meant to be inherent with using maxcaps through optimization. I figured out maxcaps with a tip here and there and did experiments. Fun times in atmos till I almost loosed the singularity and blew up the teg in one shift 🙃

All the explosives on the syndicate uplink have almost 0 risk to self, except for getting detected. Wouldn't a change like this have the same effect? If you see an atmos walk, throw a tank and it explodes, since now it has less range, theres a high chance people will witness it and survive, different from actual maxcaps in wich no witness survives.

Yes… none of the bombs are silent, disguised, and have a meaningful radius. The most you have is a pen bomb which is just a c4. 1/5 of your TC for one bomb compared to the infinite you can make at atmos.

Also this would make it so that its decently dodgeable, like grenades, and it would force atmos players to use those "painful" optimizations to tune the bombs to have fewer ticks till explosion, since it would be harder to aim at/hit people with less range.

Its a tank, if someone throws a tank at you, you are not going to go into evasive maneuvers and flee for your life.

Also Cojoke-dot, if they were weaker than chem bombs then theres no reason to remove them, being weaker shoulnt be a reason to just remove it, and what im saying is to nerf the range but buff the damage, so it woulnt be a wimpy bomb.

They already one shot people, how much more would you wan to buff the damage? Craftable mini bombs that deal 200 blunt and have no beep?

Also, for your point 2, tanks have only 5l and for rapidly filling the room with the content of the canister i can just open it, it would basically be the same as removing maxcaps, cause if i want to fill a room with the contents of a canister i can alredy do that

Maybe it can force a bit of the gas into people's lungs who have internals on and will not have a cap on pressure. It would be only useful in larger rooms.

@0tito
Copy link
Contributor

0tito commented Aug 28, 2024

Turbo is referring to people making programs to maximize time - power. Get enough time to get away while dealing enough damage to remove a department. Removal of the risk that is meant to be inherent with using maxcaps through optimization. I figured out maxcaps with a tip here and there and did experiments. Fun times in atmos till I almost loosed the singularity and blew up the teg in one shift 🙃

I mean thats voluntary work, he made that program cause he wanted, i doubt he felt it was painful, and some atmos stuff requires calculations, i dont think this is an issue.
Also testing maxcaps in the middle of atmos in a normal round is on you, if you are going to test explosives, test them either in a platform in space, or in a localhost.

Its a tank, if someone throws a tank at you, you are not going to go into evasive maneuvers and flee for your life

They already one shot people, how much more would you wan to buff the damage? Craftable mini bombs that deal 200 blunt and have no beep?

We could add sprite once the tank reaches more than 1500kpa or something, and maybe a sound when it reaches 3000kpa+

Also, yeah maxcaps one shot people, but smaller atmos bombs dont, the idea would be that smaller atmos bombs also kill, to discourage the use of bigger radius.

Yes… none of the bombs are silent, disguised, and have a meaningful radius. The most you have is a pen bomb which is just a c4. 1/5 of your TC for one bomb compared to the infinite you can make at atmos

Well, chem can also mass produce bombs, 0 tc cost, that instakill, but with a smaller range, and chemicals that round remove people.

Maybe it can force a bit of the gas into people's lungs who have internals on and will not have a cap on pressure. It would be only useful in larger rooms.

Sounds cool honeslty, but i feel like it would only be useful if we were to add other gasses that have different effect when inhaled, right now, only gasses that would be useful to force inject into people are n2o and frezon, and if im going to make all the people in a room be in contact with a gas i made, first, it would only be useful for mass murder anyways, even more now with the cold slowdown nerf (cause before the cold was useful if you injected yourself with cryox).

Second, why frezon or n2o flood a room when i can flood it with hot vapor and insta kill everyone? Why force people to breathe n2o when they can wake up and toggle internals, instead of flooding with n2o its simply better to flood with frezon, wich will also make n2o and it has the benefit of also dealing damage to people that dont have internals. So you'd only flood a room with either frezon, or superheated gasses, both will end in mass murder, just that the hot gas will also round remove

Now, i cant deny that these changes would take more work than making maxcaps a cvar, to turn them to 0 and kill them, but i think it would be a healthier change. But i guess the answer i will get is wyci :godo:

@Partmedia
Copy link
Contributor

@TurboTrackerss14 I pushed some minor nitpicky changes directly to your branch. I'm not super sure how Subs.CVar works, but does this correctly call UpdateMaxRange() on init when the CVar is set to something else (e.g. 0) in the config file? If you can't look into this I'll take a look at this a bit later.

@TurboTrackerss14
Copy link
Contributor Author

@TurboTrackerss14 I pushed some minor nitpicky changes directly to your branch. I'm not super sure how Subs.CVar works, but does this correctly call UpdateMaxRange() on init when the CVar is set to something else (e.g. 0) in the config file? If you can't look into this I'll take a look at this a bit later.

Changes look fine to me
(Fuck I forgot to delete the shutdown method entirely aswell thanks for that)

@TurboTrackerss14
Copy link
Contributor Author

I blindly trusted the comments from contrib-voice during my shitcode fixing stream.
Subs.CVar is a magical entity to me that I made work.

If you are willing to prettify my code I would be more than allowing of it.

@Cojoke-dot
Copy link
Contributor

I mean thats voluntary work, he made that program cause he wanted, i doubt he felt it was painful, and some atmos stuff requires calculations, i dont think this is an issue.

Painful as in breaking the intent of the reaction, not physically or mentally painful(I've talked with him about it). If you want the most powerful max caps you can plug the numbers you want in and you don't need to test anything, one screenshot of the results is enough to let anyone make one. You can make 20 tile handheld maxcaps that can disable a department with stuff you can get in almost any department.

Also testing maxcaps in the middle of atmos in a normal round is on you, if you are going to test explosives, test them either in a platform in space, or in a localhost.

Me being silly before I set up my dev environment, not meant to be used as a point. More meant to be a funny story when I was making my own max cap formula and stuff.

We could add sprite once the tank reaches more than 1500kpa or something, and maybe a sound when it reaches 3000kpa+
Also, yeah maxcaps one shot people, but smaller atmos bombs dont, the idea would be that smaller atmos bombs also kill, to discourage the use of bigger radius.

That's an option I guess, but then it comes down to “why use maxcaps when they are this bad and takes a lot of effort and advanced knowledge?”. I could do a maxcap or get a hypo pen or make a fire bomb in chem? I would much prefer a different solution to maxcaps than a plain nerf.

Well, chem can also mass produce bombs, 0 tc cost, that instakill, but with a smaller range, and chemicals that round remove people.

Chems leave evidence of what happened(puddle on floor, unique damage types) and have counters(easy to identify chemicals, ways to stop chemicals in someones body, give up to prevent round removal). On top of that antagonists can get advantage with chems like special chems or equipment sets.

Second, why frezon or n2o flood a room when i can flood it with hot vapor and insta kill everyone? Why force people to breathe n2o when they can wake up and toggle internals, instead of flooding with n2o its simply better to flood with frezon, wich will also make n2o and it has the benefit of also dealing damage to people that dont have internals. So you'd only flood a room with either frezon, or superheated gasses, both will end in mass murder, just that the hot gas will also round remove

You can already do this so… meh? I get round removed too often by random maints trit events and they don't even have no2.

Co-authored-by: Partmedia <kevinz5000@gmail.com>
@github-actions github-actions bot added S: Needs Review Status: Requires additional reviews before being fully accepted and removed S: Awaiting Changes Status: Changes are required before another review can happen labels Aug 29, 2024
@TurboTrackerss14
Copy link
Contributor Author

Looks to be all set 🫡

@slarticodefast
Copy link
Member

slarticodefast commented Sep 10, 2024

Hey everyone, we had a very long discussion and multiple votes with the maintainers and admins. We came to the conclusion that max caps are some kind of tradition from SS13 and an interesting result of our atmos simulation, that deserves to be kept in some form in the future. However, due to problems with their current mechanics and the huge burden on our game admins, we have decided to limit their explosion radius using a cvar until we can rework some of the mechanics behind maxcap production and turn them into a proper feature. Servers that wish to keep them as they currently are can simply change that cvar.

Current problems:

  • From a WizDen server rule perspective the DAGD objective is currently the only acceptable reason to maxcap.
  • Even more problematic are the timed, easily mass-producable minicap grenades with smaller radius, that allow the user to run off with zero risk to themselves, allowing players to do massive station destruction.
  • If we were to reduce the cvar to anything high enough so that it would not affect these, it would only further encourage their mass production.
  • Most players making maxcaps simply follow a recipe without doing their own research and experimentation. From a gameplay perspective atmos should be more than a list of steps you have to follow.
  • The steps to make a maxcaps are unknown enough so that many players don't notice it, even when done in plain sight and there is no warning or way to stop the bomb.

What a good solution for a rework should include:

  • They should be turned into a proper game mechanic with a need for experimentation and a chance of failure.
  • They should be properly telegraphed, so there is a way to stop the bomber.
  • Their production should not be easily repeatable using a recipe and they should not be mass producable.

Some ideas we will investigate:

  • Make the canister the exploding part instead of the tank. This means a lot more gas will be needed for a single bomb and they cannot be thrown.
  • Randomly vary the heat capacities of gases by a few percent each round. This won't be noticable for normal gameplay, but will ensure that maxcaps are not a simple recipe that you can look up somewhere. Instead the player would have to do some experiments and apply the scientific method to find out the current values, then adjust the recipe.
  • Make them require more items than tanks and canisters. This could be a piping setup at the location of the explosion or a traitor only item.

@slarticodefast slarticodefast dismissed stale reviews from metalgearsloth and EmoGarbage404 September 10, 2024 21:52

addressed

@slarticodefast slarticodefast merged commit 4b357a3 into space-wizards:master Sep 10, 2024
11 checks passed
@deltanedas
Copy link
Contributor

Randomly vary the heat capacities of gases by a few percent each round. This won't be noticable for normal gameplay, but will ensure that maxcaps are not a simple recipe that you can look up somewhere. Instead the player would have to do some experiments and apply the scientific method to find out the current values, then adjust the recipe.

would just mean measure some gases heat capacity at the start then recalculate the ratios, gatekeeping it a bit but thats all

@cfif126

This comment was marked as off-topic.

@deepdarkdepths

This comment was marked as off-topic.

Meguneri added a commit to Meguneri/space-wizard that referenced this pull request Sep 11, 2024
@VasilisThePikachu VasilisThePikachu changed the title Removal of Maxcaps via cvar Add a cvar to limit maxcap range & Lower it for wizards den Sep 11, 2024
@VasilisThePikachu
Copy link
Member

VasilisThePikachu commented Sep 11, 2024

I updated the title for server owners (well the commit already made it in now soo)

If you don't like this change for your FORK you don't have to revert this pr.

The default value is the same as before if you don't have the cvar set, only wizards den servers are effected

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changes: Atmospherics Code Changes: Might require knowledge of atmospherics code & calculations. S: Needs Review Status: Requires additional reviews before being fully accepted S: Undergoing Maintainer Discussion Status: Currently going through an extended discussion amongst maintainers, as per procedure.
Projects
None yet
Development

Successfully merging this pull request may close these issues.