lizardqueenlexi / orbstation

The official repository of the Orbstation SS13 server, a fork of /tg/station.
https://www.orbstation.space/
GNU Affero General Public License v3.0
7 stars 18 forks source link

Genericized changeling infiltrator and added two variants. #618

Closed lizardqueenlexi closed 1 year ago

lizardqueenlexi commented 1 year ago

About The Pull Request

Refactors/extends #105.

This PR genericizes changeling infiltrator into an extendable "pod infiltrator", of which changeling infiltrator is now a subtype. All of the code that is not specific to the lingfiltrator antag has been moved to this generic type, which handles the pod itself as well as the spawning of the infiltrator. A good number of things have been renamed in light of this.

In addition to the refactoring, the system has been extended with two new types of "infiltrator".

The first is the "Smuggled Syndicate Agent", a traitor who arrives on a pod to infiltrate the station from space. This agent works the same as a traitor, with the normal primary/secondary objectives and all. However, to make up for the fact that not being a crewmember makes things challenging, they get a few perks. First, they get a free uplink implant and 25 starting TC. Second, their reputation starts at whatever the "global" amount is - since they can't spawn until 30 minutes in, this means they'll have access to all uplink items and they shouldn't be tasked to do petty crimes like graffiti. Finally, they get a free chameleon outfit, an agent ID, and a syndicate toolbox disguised as an emergency one (these last items are shared between all infiltrators). In the future, the Agent could possibly be extended with unique uplink items, but I have not done that yet.

The second is the "Disaster Survivor", someone unfortunate enough to be the sole survivor of a disaster on some ship or station, who has been adrift on a tiny pod for months and has been lucky enough to drift close to the station. They are not an antag, merely a random event, and their only real goal is to reach the station and survive. They start out very hungry, to encourage trying to steal food (or maybe ask for it?). They still get the chameleon gear and agent ID, with the flavor that it was stolen from some dead Syndicate agent during the disaster. Due to the way that ghost events work, and the fact that I didn't want to add a unique option for it, you will only be offered to play a Survivor if you have Fugitives enabled.

Finally, all infiltrators now have their species randomized, using the same whitelist added in #514.

Thank you Sol for having this idea!

Why It's Good For The Game

First, having multiple roles that can potentially spawn in the scary escape pod means that spotting one does not immediately tell the crew "there is a changeling aboard". Plausible deniability is very useful to fend off meta-knowledge like that. Additionally, the fact that one of the infiltrators is not an antag means that there's always a chance you can trust the strange new person that just showed up...

Second, more variety in ghost roles is nice. You might get a chance to play as a desperate survivor, which has fun RP potential, or you might get to play a very different sort of traitor. The smuggled agent should be an interesting twist to the usual formula, as they are something of a middle ground between a traitor and a lone operative - a well-equipped lone agent infiltrating the station to wreak havoc, but on a smaller scale than "nuking the station". It will probably be significantly more difficult than a regular traitor, but hopefully this is fun.

Randomizing species is also good for infiltrators - humans are far from the most-played species on Orbstation, so the person you don't recognize always being a human might be suspicious. If you get lucky, you might even be able to pose as an ashwalker or something! It'll be fun.

And lastly, the system has been rewritten to be more extendable - if anyone has a good idea for another type of infiltrator antag, it shouldn't be too difficult to add on. Incidentally, this extensibility serves as enrichment for admins, as the spawn_infiltrator proc can be fed any type of ghost spawner in the game. Get ready for Beach Bum Infiltrators!

Changelog

:cl: add: Added "smuggled Syndicate agent" ruleset/event - a well-equipped traitor that has to infiltrate the station from outside. add: Added "disaster survivor" event - the hapless survivor of a space disaster has arrived at Space Station 13... balance: All infiltrators now have a randomized species refactor: Made changeling infiltrator generic, with multiple subtypes /:cl:

lizardqueenlexi commented 1 year ago

Removing the events from the two antag ones doesn't seem to have impacted much, so those are gone. I've also noticed a small "issue", in that randomized names for infiltrators are always from the human name list regardless of species. However, because we don't have name conventions we actually stick to on Orb, and because I don't like the name conventions for moths and lizards as is, this is fine to me.