About The Pull Request
Adds the Enhanced Interrogation Chamber as a BEPIS reward.
This security-only machine is able to implant a deep-rooted trigger phrase onto a subject; if they hear that phrase after the procedure, they will immediately enter a state of hypnotic trance, which can be used to demand truthful answers for your ongoing investigation.
The enslavement of criminal and non-criminal subjects is frowned upon by space law. Do not abuse the Enhanced Interrogation Chamber for personal gain.
Bad choice or mishandling of trigger words may lead to loss of control over the subject.
Side effects include dizziness, nausea, confusion, vomit, loss of eyesight, violent tendencies, loss of sanity, depression, oppression, loss of free will, spontaneous hypnotic trance, loss of hair, death.
Use with care.
Why It's Good For The Game
Make your own Manchurian Candidate!
Allows "rehabilitation" of dangerous criminals by security, which is more interesting than straight-up execution.
Could lead to fun situations if a team antag is caught and forced to be a mole.
It could also be used by any antag who manages to get to the sec protolathe.
However, the "conversion" is still shaky! The main cure is surgery, as the triggered trance is effectively just a brain trauma, healable with surgery. On top of this, even if the subject is unable to hear their trigger phrase, if someone else knows it they can override commands at any time. Even if that doesn't happen, it's possible that another message sneaks in before you can give your command, intercepting the hypnosis.
On top of this, the chamber has a 10% chance of giving the hypnotic stupor trauma instead of the triggered trance, making the subject even more of a wildcard.
Effectively, this is a very powerful tool in the antag-vs-security conflict, but over-reliance on it will probably bite back in amusing ways.
Changelog
cl
add: Added the Enhanced Interrogation Chamber as a BEPIS researchable tech.
add: The EIC can be used to implant trigger phrases in subjects that cause an instant hypnotic trance.
/cl
* Removed from code
* Removes cloners from maps
* Some more references, now compiles.
* Reduces availability of replica pods
* DNA scanner and tech disk rebranding
* pubby door name, cargo pack description
* Unicode support Part 2 -- copytext()
This is the transition of all copytext() calls to be unicode aware and also some nearby calls in the same functions. Most things are just replacing copytext() with copytext_char() as a terrible character limiter but a few others were slightly more involved.
I replaced a ton of
````
var/something = sanitize(input())
something = copytext(something, 1, MAX_MESSAGE_LEN)
````
with a single stripped_input() call. stripped_input() already calls html_encode(), trim(), and some other sanitization so there shouldn't be any major issues there.
This is still VERY rough btw; DNA is a mess, the status displays are complete ass, there's a copytext() in code\datums\shuttles.dm that I'm not sure what to do with, and I didn't touch anything in the tools folder. I haven't tested this much at all yet, I only got it to compile earlier this morning. There's also likely to be weird bugs until I get around to fixing length(), findtext(), and the rest of the string procs.
* Makes the code functional
* Assume color hex strings are always # followed by ascii.
Properly encodes and decodes the stuff in mob_helpers.dm which fixes some issues there.
* Removes ninjaspeak since it's unused
* Unicode support Part 1
Makes all calls to ascii2text() and text2ascii() unicode aware as well as all calls in code/__HELPERS/text.dm.
Adds defines for the footext_char() procs to maintain 512 support.
I did some cleanup on the text helpers since a lot of them were really, really bad.
reject_bad_text() and reject_bad_name() have an arg to reject non-ascii chars which defaults to TRUE.
* Give travis a more recent beta
* Ultimate compat
Added the _char procs I was missing
Test the build instead of the version because Lummox is a goddamn moron
* Suggested fixes, removes the last of the dd_ helpers
* Reading the reference is very important!
* Minor code improvements and a comment
* Typo
About The Pull Request
This PR allows people with the split personality trauma to communicate with the stranger and vice versa through an action button. I also considered adding an option for the active player to release control but I felt that would be breaking the spirit of brain traumas a bit much.
Why It's Good For The Game
Split personality has always been a situation where the second player's only real option is "How many times can I shout "I'm Gay"/WGW over radio and try and avoid surgery until I inevitably get removed?" Don't get me wrong, you can still do that, but I aim in this PR to give players another option to get some of that sweet RP in. The main argument I can see coming up against this change is that traumas are supposed to be negatives, but how I see it, this doesn't make Split Personality a positive trauma so much as it allows roleplay similar to how you can roleplay as a paraplegic war veteran or as an ex-security officer who developed a phobia following an 'incident'. I'm happy to add a cooldown to the action if it proves to be an issue.
Changelog
cl
add: Split personalities can now communicate with an action button
/cl
About The Pull Request
Converts every single usage of playsound's vary parameter to use the boolean define instead of 1 or 0. I'm tired of people copypasting the incorrect usage.
Also changes a couple of places where a list was picked from instead of using get_sfx internal calls
This was done via regex:
(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\)) to match 1
(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\)) to match 0
full sed commands:
/(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\))/\1TRUE\2/ 1 to TRUE
/(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\))/\1FALSE\2/ 0 to FALSE
I'm not very good with regex and these could probably be optimized, but they worked.
Why It's Good For The Game
Code usability
About The Pull Request
Re-opening of #42644
Adds two new traumas in the trauma pool.
Mind Echo: a mild trauma that records what the patient hears and says, and occasionally replaces heard or spoken messages with one of the recorded ones.
Existential Crisis: a special trauma that causes spontaneous temporary non-existence, which works like a desynchronizer does.
Why It's Good For The Game
More variety in traumas!
Changelog
cl XDTM
add: Added two new traumas in the trauma pool: Mind Echo (mild) and Existential Crisis (special).
/cl
hear_intercept is removed in favor of having the things that care register for the COMSIG_MOVABLE_HEAR signal instead.
The signal has been changed to be like the speech one with an args list.
Nanite datums no longer register for the hearing signal just in case, only the voice sensor nanite program does.
Dead code has been removed from to_chat, the savefile/sound checks being just-in-case boilerplate checks made during the conversion to to_chat, the replacetexts sidestepping a byond bug that was fixed in 512.1420.
About The Pull Request
This PR removes speech message and span hooks from dna, mutations, pierrot throat disease, species, tongues, masks, hats, held items, brain traumas and a carbon proc overload handling tonguelessness.
Tonguelessness is now handled by tongue removal registering for the speech signal and the hook being deregistered by having a tongue put in.
Also cleans up some /atom/movable/proc/get_spans() overloads that called the empty parent or overloaded the parent to do the exact same thing as the parent proc did.
Also cleans up calls to radio.talk_into() where the caller would often, as a result of copypasta, provide the proc with fresh copies of the proc's default values for proc args, and makes say_quote() better by giving it a default spans value so that none of the callers have to provide the same default one.
Why It's Good For The Game
Changelog
cl Naksu
code: Cleaned up saycode
/cl
* start with this
* oh man this looks so good
* hats are dead
* /obj/item/proc/speechModification is dead
* brain traumas and get_held_item_speechspans() are dead
* these should be static
* unfortunately we still need this
* /mob/living/carbon/treat_message(message) is kill
* clean up get_spans()
* dunk get_spans, modifies_speech for brain traumas, some superfluous static stuff
* move stuff around
* return values
* new mutation: simple speech
* finalize simple speech and fix word list apostrophes
* Is now a brain trauma instead
* fix merge conflict
* grammer fix
* cleanup cause I'm an idiot
* made the suffix list a bit easier to read
* fix traits.dm
* staves
* projectiles
* sapped event
* last of the staves (need to sprite and get sounds)
* last of the projectiles
* Squash is a single-use plant in Plants vs. Zombies and returns as a premium plant in Plants vs. Zombies 2.
* removes staff of cooperation, adds fly magic status effect
* a couple things with flight + tweaks
* removes old bolts/staves, finishes and adds parts of the new set
* fixes
* fetching + flying fixes, added chill and wipe
* and done
* cobblestone's review
Hypnosis no longer runtimes forever if it can't generate a valid regex
from the user phrase
Hypnosis also no longer constantly regenerates the regex and instead
just matches using the existing regex
* adds 5 new (minor) negative mutations
also adds a mutation conflict system
* removes debug comments and to_chat(world)s
* addresses reviews
* further review addressing, new message
and a message given to the subject when a mutation fails to manifest because of conflicts
* cooldown on acid flesh message
🆑
add: Adds the Paraplegic quirk for -3 points. You start with unhealable leg paralysis
(persists through cloning), and have a wheelchair to move around the station.
/🆑
This is really popular for some reason.
This required a surprising amount of small code tweaks for it to "feel"
right in edge cases like being a job that had items in their hands or
joining on the arrivals shuttle.
Justification for -3 points: You move REALLY slowly, in a game that's
about generally running from security/the guy with the esword. And if
you die and get cloned and don't have your chair, you move even slower.
* Traumas are copied when a person is cloned
🆑 coiax
add: When a person is cloned, any mental traumas are cloned as well.
/🆑
If the cloner is going to recreate your delicate personality, it's going
to have to recreate anything wrong with your brain as well. After all,
where does one greytider's legitimate fear of security end, and another
one's irrational fear begin?
Essentially, traumas could be easily gotten rid of by cloning, or death
would rob a person of a rare positive trauma. Now you're stuck with them
until you get rid of them.
* Suggested changes
* adds station positions global list
* She don't believe in shootin' stars But she believe in shoes and cars Wood floors in the new apartment Couture from the store's department
* missed comma
* embarassing
* Update code/modules/antagonists/creep/creep.dm
Co-Authored-By: tralezab <40974010+tralezab@users.noreply.github.com>
* parentheses
* shiver me timbers
* Hey, great work Mac! Now let's take down the next circuit!
* a plethora of fixes
🆑 coiax
tweak: The creep trauma/antagonist is no longer gained via brain damage.
/🆑
Stops self-antaging from repeated brain damage/healing, and also just
generally leaves it only assigned via the event or admins.
cl
add: Added a new antagonist, the Creep!
add: Chosen from a random event, the Creep will become obsessed with one person, feeling amazing around them and terrible when they aren't. They will have objectives to steal heirlooms, take pictures, hug, and kill coworkers. They also have to kill the obsession but some objectives can only be completed while the obsession is alive, requiring you to protect the obsession!
/cl
There really is no reason to betray people, generally. Maybe some stuff with security and traitors working things out, but a traitor based around betrayal and the general insane creep idea is just cool.
One Creep can show up, and they get objectives to mess with their obsession leading to the obsession's death. Here is their objectives:
A random creepy objective. It could be taking a photo with them in it, hugging them, etc
After your are done with your objectives, kill them. you can't complete the objectives when they are dead!
Creeps do not get the determination mood. Instead, when they are around their obsession, they feel AMAZING! If they are around too long, they will stutter, cough, and generally spaghetti out when talking near their obsession. So if you are going to talk near them, do it when you aren't entranced.