space-station-14
space-station-14 copied to clipboard
NukeOps test failing
Description
TryStopNukeOpsFromConstantlyFailing CI test fails randomly, causing check failures on undeserving PRs.
So what's happening?
TryStopNukeOpsFromConstantlyFailing sets up a test round, adds the NukeOps rule and checks that everything started up okay.
The last step of that test runs the game a few ticks at a time and checks that the nukie commander isn't taking damage. I believe this was done because there was an issue with the nukie base map sometimes not getting initialized, and nukie rounds would end almost immediately as the whole nukie team suffocated (tragic).
I think that bug was resolved. But sometimes when the test runs, the nukie commander still takes suffocation damage and causes the test to fail.
Why is the commander so bad at breathing?
So, here's the thing: the dummy players used in tests use randomly generated characters. Sometimes the commander is a human; sometimes she's a lizard.
And sometimes they're a slimeperson.
Be slime, do crime
Slimepeople breathe nitrogen instead of oxygen. And that's fine: the nukie base is filled with the station's standard oxygen-nitrogen mix and slime people can breathe it just fine.
But nukies need to be equipped for potentially lengthy spacewalks, so the commander spawns with an extended capacity tank hooked up and internals turned on.
An extended capacity oxygen tank.
Oh.
Yep. The dummy nukie commander stands there in a perfectly breathable environment, sipping deadly oxygen from their air tank and slowly dying.
So how do we fix this?
That's a good question, and I'm posting this as an issue to gather input on what would be the best approach.
I would think that ideally the nukie commander should just spawn with an appropriate air tank for their race. Do loadouts apply to dummy test players? Is the nukie commander loadout configurable?
Alternatives include having the commander spawn with internals turned off, so they actually test the nukie base's air like the test intends.
Kindly post your thoughts on the best approach and we'll get this sorted out.