* Converts A && A.B into A?.B (#54342)
Implements the ?. operator, replacing code like A && A.B with A?.B
BYOND Ref:
When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call.
* Converts all A && A.B into A?.B
Co-authored-by: ZeWaka <zewakagamer@gmail.com>
About The Pull Request
I observed someone request to be perma'd round start and then they just chilled in perma the whole shift. Security isn't always going to be up for putting people in perma and players who have been placed in perma tend to go catatonic. This allows players who are interested in having a chill shift doing the stuff in perma and acting like they've done crimes the opportunity to do that.
Why It's Good For The Game
Crew content. I'm not saying it's mindblowing but if we add it in as a role it will open the door for people to look at perma and what could be done with prisoners.
Prisoners spawn with a prison ID, a jumpsuit, and shoes. They are also currently spawning with a backpack and I'm uncertain about whether or not I want to do anything with that.
This is ready for a testmerge and worked for me locally.
Thanks to Tralezab for assistance with merge conflicts.
Thanks to EOBGames for the plasmaman prisoner sprites.
Thanks to Quill-Weave for encouragement.
Feedback is of course welcome, and I'd appreciate suggestions re: balancing this role. Maybe they should be roundstart pacified or something.
Changelog
cl
add: Adds prisoner role
/cl
Non-antagonists can be brought on a shuttle without endangering an escape alone victory provided they're kept locked in the brig.
Escaping to syndicate space abord the nuke op shuttle is now a valid way to escape in terms of objectives.
Resolves a similar sort of deal in monkey
Note to self: if a mode has a hard return in the child before ..() you NEED to be sure continuous_sanity_checked is handled in the child.
Note to future self: remove all hard returns in child modes, they are shit and cause all the mulligan bugs
Players who would otherwise qualify to play as an implanted job will spawn as the most wanted not implanted job they qualify for if they are an onstation antagonist. If they don't qualify for any job in this way depending on preferences they will either spawn as an assistant or a random job (which also makes sure they don't end up in an incompatible job).
Note this doesn't impact late join antagonists or mulligan antagonists. Roundstart only.
Fixes monkeys not getting a special role when made with jungle fever because of a runtime
Fixes check_monkey_victory runtiming and always defaulting to "the monkeys won!"
Adds a check for monkey modes that end on station because all the monkeys died and continuous is off (it is by default off)
Fixes a runtime relating to trying to change a monkey's mutantrace (don't do this)
Adds a check to not end the round if all the monkeys died but there are still people waiting to become monkeys because they got bit.
Maybe some other tiny monkey fixes I'm not even sure at this point I wasted a sunday night fixing monkey mode problems
a disease may now have more than one spread type
added "infectivity" variable which replaces a prob(65), defaults to 65
affected_species is now viable_mobtypes, and lists typepaths, this is due to us actually having a species system now so it's confusing
adds defines for a bunch of stuff
The game will not load the empty goon and beta tester files on startup.
Moved modes that are broken/unfinished into the unused section.
Powersinks will eat more power
Firedoors should be fixed now.
Engineering solars moved away from engineering.(there is currently an empty room where one was. I dont have any good ideas for things to put in there atm so if you want to add something go ahead)
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1017 316c924e-a436-60f5-8080-3fe189b3f50e