* Converts slapcrafting into a bespoke element (#84226)
## About The Pull Request
Converts slapcrafting into a bespoke element, used to be ac omponent
## Why It's Good For The Game
Noticed this was a big C and realized there was no real reason for that.
It's the same recipe shared across different items.
## Changelog
N/A
---------
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Converts slapcrafting into a bespoke element
---------
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* Fixes fireproof reagent containers (#84607)
Fixes: https://github.com/tgstation/tgstation/issues/84592
## About The Pull Request
Reagent containers had a duplicated fire_act proc which somehow resulted
in fireproof reagent containers of all kinds.
This is now deleted.
## Why It's Good For The Game
Fixes a bug.
## Changelog
🆑
fix: Reagent containers are no longer mysteriously fireproof.
/🆑
* Fixes fireproof reagent containers
---------
Co-authored-by: hyperjll <105099113+hyperjll@users.noreply.github.com>
* Improves performance of 2 reagent operations (#84411)
## About The Pull Request
1. Removes **2 WHOLE** `update_total()` calls from `trans_to()`. This is
the hottest proc in plumbing & in a large majority of other reagent
operations so it's a big win. `add_reagent()` & `remove_reagent()`
already calls `update_total()` for us so we don't need them. Its free
performance!!
2. `remove_reagent()` only calls `update_total()` & `handle_reactions()`
once when removing subtypes of a reagent compared to repeatedly calling
these hot procs every iteration
## Changelog
🆑
code: Improves cpu performance of transferring & removing reagents
/🆑
* Improves performance of 2 reagent operations
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
* Slime extracts can now be ground once again (#84482)
## About The Pull Request
Slime extracts now have reagents by default and lose them when used
instead of only acquiring them **upon** being blended.
Closes#84444
## Changelog
🆑
fix: You can grind slime extracts in reagent grinders once more.
/🆑
* Slime extracts can now be ground once again
---------
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
## About The Pull Request
Gives the Detective a roundstart skillchip which allows them to unlock
the hidden potential of their tastebuds. With this, they can identify
chemicals by taste, and even identify bloodtypes in the same way.
## Why It's Good For The Game

I've been watching a lot of detective stuff and I think it's really
funny how often they stick their fingers into random goo/blood and
taste/smell it.
The idea of a detective chugging a glass of unidentified liquid to
identify that there's a lethal chem mix in there is equally funny to me.
Imagine you're recovering from a mugging in the medbay and the detective
comes in, takes a blood sample from you, and downs it in one go.
## Changelog
🆑 Wallem
add: The detective now starts with the DET.ekt Skillchip, which allows
them to identify chemicals and bloodtypes by taste.
/🆑
* Add pouring sounds to pouring reagents (#84371)
## About The Pull Request
Adds liquid sloshing sound when pouring reagents between containers.
Not sure if this is loud enough tho gimme feedback
## Why It's Good For The Game
More sound cues are pretty good when youre pouring reagents
https://github.com/tgstation/tgstation/assets/92416224/174a07cf-439b-47a3-b1fe-6eda3fcec32e
## Changelog
🆑
sound: added liquid pouring sounds to pouring of any reagents
/🆑
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@ users.noreply.github.com>
Co-authored-by: Afevis <ShizCalev@ users.noreply.github.com>
* Add pouring sounds to pouring reagents
---------
Co-authored-by: FinancialGoose <92416224+TheBoondock@users.noreply.github.com>
Co-authored-by: SyncIt21 <110812394+SyncIt21@ users.noreply.github.com>
Co-authored-by: Afevis <ShizCalev@ users.noreply.github.com>
* Xenobio Slime Extract Nerfs (#84314)
Oil, Adamantine, Orange, and Gold slime extracts require 15 units of
liquid plasma (up from 1 unit) to activate their plasma reaction. Yellow
requires 15 units of blood to activate a blood reaction (up from 1
unit). Gold slime extracts spawn 4 hostile mobs (down from 5) during a
plasma reaction. Yellow slime extracts have an EMP range of 5 (down from
7) during a blood reaction. Oil slime extracts have a 1,2,4 explosion
range (down from 1,3,6). All of this is to compensate for xenobio
effectively being sped up by 3x from a previous PR i made. Adamantine
golem shells require 3 (up from 1) adamantine sheets to make.
(https://github.com/tgstation/tgstation/pull/84278)
## About The Pull Request
In the comments of the previous PR, a rather good point was made about
how spamable a certain few of the extracts were, and i've taken the
liberty of making a few nerfs to compensate.
## Why It's Good For The Game
Increasing the plasma cost of certain slime extracts to fifteen likely
won't slow anyone down from using them, but it does ensure the user will
drain their plasma supply quickly and limit how many slime cores they
can use. Of course, restocking plasma isn't super difficult in
xenobiology alone but it WILL ensure both downtime between assaults as
the user will seek out a grinder for liquid plasma and force the user to
spend time stocking up on plasma in the first place.
If that wasn't enough, i took the liberty of nerfing Gold, and Oil
plasma reactions, also after some thinking, Yellow blood reactions. We
also don't want golem armies (as fun as that was to fight).
Having an abundance of monster parties, explosive grenades, or emp
grenades is likely frustrating to deal with, so more nerfs were
necessary.
## Changelog
🆑
balance: Due to selective breeding of slimes, some species require
roughly 3x more plasma than normal to activate a plasma reaction. Slime
extracts affected are: Oil, Adamantine, Orange, and Gold. Yellow slimes
require 3x more blood to activate a blood reaction.
balance: Oil slime extracts have become less potent during a plasma
reaction due to selective breeding conditions.
balance: Gold slime extracts give rise to one less monster during a
plasma reaction due to selective breeding conditions.
balance: Yellow slime extracts have become less potent during a blood
reaction due to selective breeding conditions.
balance: Adamantine golem shells require 3 sheets rather than 1, due to
unknown circumstances.
/🆑
* Xenobio Slime Extract Nerfs
---------
Co-authored-by: hyperjll <105099113+hyperjll@users.noreply.github.com>
* Adds a glug sound to welding fuel tank leaks (#84146)
## About The Pull Request
When a fuel tank leaks it makes a quiet "glug" sound.
https://github.com/tgstation/tgstation/assets/51863163/21d5665e-c06c-49db-9c61-1479be0f0b7a
## Why It's Good For The Game
I noticed that there was absolutely no fx associated with dragging a
leaking tank which was very off putting to me so I thought a glug glug
glug gas can sound would sound good.
Maybe doesn't sound the best when dragging at max speed but it sounds
funny anyways so.
## Changelog
🆑 Melbert
sound: Glug-glug sound when dragging a leaking gas tank
/🆑
* Adds a glug sound to welding fuel tank leaks
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
* Adds pen clicking, changes most pen typechecks into writing implement checks (#84186)
## About The Pull Request
Fixes#84170
Adds pen clicking and changes some of edagger and pendriver code to use
it instead.
Also replaces most pen typechecks to writing implement checks where it
makes sense, so now you can rename things with everything you can write
with (crayons)

Twisting pen caps (for traitor uplinks) has been moved to ctrl + click
instead.
* Adds pen clicking, changes most pen typechecks into writing implement checks
---------
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
* Fix chem reaction spawning issue (#84139)
## About The Pull Request
Adds the instant reaction flag to the recipes for medicated sutures,
advanced regenerative mesh, and mourning poultice.
## Why It's Good For The Game
Fixes https://github.com/tgstation/tgstation/issues/84128.
Full disclosure, I don't really know why this works, I kinda just copied
SyncIt21's solution from
https://github.com/tgstation/tgstation/pull/83354, and it worked locally
without any runtimes.
Edit : I've updated the linked issue with a better explanation of the
bug.
## Changelog
🆑
fix: Medicated suture, advanced regenerative mesh, and mourning poultice
reactions should more consistently spawn the items they are meant to
produce.
/🆑
* Fix chem reaction spawning issue
---------
Co-authored-by: the-orange-cow <76538214+the-orange-cow@users.noreply.github.com>
* Fixes cleaning spray being blocked by everything (#83941)
## About The Pull Request
Fixes#62873, a very old bug. It looks like someone else added code that
affected the lifetime of a chemical spray, so I just took the simple
option and removed that bit of code.
## Why It's Good For The Game
Bug fix.
## Changelog
🆑
fix: When on 'stream' mode, the cleaning spray from a bottle of space
cleaner should no longer be blocked by just about everything.
/🆑
* Fixes cleaning spray being blocked by everything
---------
Co-authored-by: GPeckman <21979502+GPeckman@users.noreply.github.com>
* Pretties up the Chemical Analyzer's output (#83866)
## About The Pull Request
This just wraps the chem analyzer's output in an examine block, like so:

## Why It's Good For The Game
It looks better, and is less of a pain to read if you're scanning
multiple things.
## Changelog
🆑
qol: Prettied up the Chemical Analyzer's output in chat, making it
easier to read, especially when scanning multiple things.
/🆑
* Pretties up the Chemical Analyzer's output
---------
Co-authored-by: Lucy <lucy@absolucy.moe>
* Fixes free chemsplosion reagent purging by replacing it with the same thing but dangerous (#83195)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
https://github.com/tgstation/tgstation/pull/83168
From the above, it became clear to me that the penthrite combinations
were likely never going to happen, because that requires the cooperation
of miners, who are a notoriously fickle and treasure hungry lot. So
instead, I reworked the methods that you can purge with reagent
explosions.
If you pair an explosion of at least 1 power in someone's bloodstream
with omnizine and any of the purging reagents, it purges the chems from
their blood. So omnizine, calomel, and 20u each of potassium and water
will purge their blood in exchange for a hefty bit of damage and some
slight delimbing.
Penthrite + atropine and penthrite + epinephrine explosions will still
clear your blood, too. I kept that in to prevent miner penstacking and,
if somehow medbay gets hold of the chem combinations, for simple
chemsplosion blood purging.
You can also force people to vomit by causing an explosion of at least 1
power in their stomach, but that only purges everything in their
stomach. This interaction doesn't require omnizine and a purging
reagent.
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
## Why It's Good For The Game
Chemsplosion purging in its current state is a longstanding bug that's
been left implemented because blood filtering is otherwise boring and
takes a long time. This makes it exciting and very quick but it will
also fucking kill somebody if you're not careful.
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->
## Changelog
Unilateral blood purging with pseudo explosions has been replaced with
blood purging explosions via pairing a minimum explosive power of 1 with
omnizine and a purging reagent. You can also purge blood with penthrite
+ epinephrine and penthrite + atropine, though the latter will very
likely gib the purged person in question.
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑 Bisar
balance: Replaced the free reagent purging with actually purging by
exploding someone in the blood while they have omnizine and a purgative
in their bloodstream. Let's go practice medicine!
fix: Fixed the free reagent purging mechanic from causing an explosion
so weak that it doesn't cause any damage.
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
* Fixes free chemsplosion reagent purging by replacing it with the same thing but dangerous
---------
Co-authored-by: Joshua Kidder <49173900+Metekillot@users.noreply.github.com>
* Significantly increases stamina recovery on most effects that provide it (#83556)
## About The Pull Request
Currently, stamina healing is a niche side effect on many drugs, besides
a few effects (mostly heretic powers, an obscure side effect of some
drinks) that actually contribute to a significant shift in gameplay
style when you use them. In this PR I significantly increased the
stamina recovery on almost every drug and some effects that provide it.
Points of interest (not completely inclusive):
Syndicate stimulants heal 12 instead of 5 stamina damage. This will
bring you out of stam crit in two cycles, and let you heal out of the
slowdown from the stamina damage from a baton strike. The current rate
of 5 takes 5 seconds to heal out of stam crit, and the stamina reset
takes place before you heal out of stamina damage slowdown.
Bath salts heal stamina at the rate stimulants used to. Meth heals
stamina slightly slower.
Changeling adrenaline will instantly bring you out of stam crit if
you're in it; otherwise, it will heal 10 stamina damage.
Ephedrine heals 4 stamina per life, instead of 1.
Being so drunk that you black out and give up your body to ghost control
will make you heal stamina more quickly than an ascended rust heretic.
You will also likely be dying of liver damage.
## Why It's Good For The Game
At the levels they are set, most of these stamina healing effects have
almost no effect on gameplay whatsoever except in the case of tanking a
couple of extra disabler shots (only in the case of the high end drugs),
or being able to do stamina consuming tasks slightly longer (breaking
boulders, grinding with pestle and mortar, working out, ???).
Adjusting these numbers would make these drugs an actual factor in
combat situations that rely on stamina crit (stun batons, ebows, stamina
damaging poisons and diseases). Most of the drugs already have side
effects such as brain and organ damage, which in the current state
hugely outweighs any reason to use most of them besides a few that give
a movespeed buff or prevent baton knockdown (ephedrine, stimulants).
This only affects stamina healing. There has been no change to any other
interactions with things that knock down or cause any other kind of
stun.
These changes are in consideration of the fact that taking stamina
damage puts you in a cooldown before you can recover your stamina
naturally. Effects that cause steady stamina damage will bottom out your
stamina the way they do now, unless you use something to heal it.
## Changelog
🆑
balance: Stamina healing has been significantly increased for most
reagents and passive effects.
/🆑
* Significantly increases stamina recovery on most effects that provide it
---------
Co-authored-by: Joshua Kidder <49173900+Metekillot@users.noreply.github.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
* lowers mutadone pill volume from 50 to 5 (#83713)
## About The Pull Request
This pr lowers the volume for roundstart mutadone pills from 50 to 5
## Why It's Good For The Game
Realisticly you only need a single unit of mutadone and it will wipe all
your mutations 50 units in roundstart bottles were overkill it would
mean genetics would start with 250 units of mutadone which would have
upto 250 uses lowering the amount will also be more player friendly that
uses a pill to change a mutation or something quick and not have 50
units run trough their system and unable to add powers to themselves for
the next 10 minutes
## Changelog
🆑
balance: Roundstart mutadone pills now have less chems in them from 50
to 5
/🆑
* lowers mutadone pill volume from 50 to 5
---------
Co-authored-by: Nick <jughu1@hotmail.com>
* Sneeze Rework: Projectile Combat Edition (#83361)
## About The Pull Request
Reworks sneezing. Instead of a range check that checks if you're facing
someone, it is now a skill check
https://github.com/tgstation/tgstation/assets/7501474/c11ffa16-9bd2-4ed1-8022-2094360657bc
All sneezes shoot projectiles, but depends on the virus if they're
infectious. Using the sneeze emote is the only method that doesn't shoot
a sneeze
## Why It's Good For The Game
I think the invisible infection mechanics are unfun. A lot of station
dangers challenge your knowledge and mechanical skill, while viruses are
gotten by being around people in a roleplay game. You can get a round
seriously ruined if you walk past someone with a sneezing virus and
don't immediately rush spaceillin or chemistry, which I don't think is
mechanically interesting.
Now if you get infected, it's a skill issue. Get good and dodge the
sneeze
Note that this is just one method of infection. I didn't touch coughing
and airborne viruses, which do constant area checks and infect everyone
around. I plan to, but not now. I'll probably make coughing do a cone or
something, and ignore the airborne viruses since they can't be modified
and are generally less broken
## Changelog
🆑
balance: You can now dodge sneezes
balance: Infectious simple diseases that use sneezes now infect with
sneezes and have lowered airborn transmission
balance: Damageless attacks, projectiles, hugs etc no longer drain
shields
/🆑
- [x] Make sneezes shoot to your cursor so you can either intentionally
sneeze on people or sneeze away from people if you react fast
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Sneeze Rework: Projectile Combat Edition
---------
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Moves "sprite accessories" (e.g. Hair, Undergarments, Mutant Bits) from `GLOB` to a datasystem
* Merge branch 'master' of https://github.com/tgstation/tgstation
* Moves everything I can think of to the subsystem
* Seems to be working fine now
* makes it compile
---------
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Waterpig <wtryoutube@seznam.cz>
* Fixes some coffee inconsistencies (#83607)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
Coffee varieties now cause jittering when overdosing on the chemical,
and not as part of the baseline effects of the coffee. This is
consistent with the base form of coffee.
Pumpkin lattes actually function like the latte varieties rather than
doing nothing at all.
## Why It's Good For The Game
I think some of these were oversights, or simply not well thought
through decisions. I particularly felt it was ridiculous that people
were jittery from drinking a latte. Did the person who added this ever
actually drink coffee?
## Changelog
<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->
🆑
qol: Coffee types are overall more consistent, causing jittering only
from the overdose effect.
fix: Pumpkin lattes will actually work like coffee.
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
* Fixes some coffee inconsistencies
---------
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* Mutadone restores your original monkey status (#83720)
## About The Pull Request
Before PR:
Giving mutadone to a monkey turns it into a human
Giving mutadone to a human does nothing about its human status
After PR:
Giving mutadone to a monkey created from a monkey cube does nothing
about its monkey status
Giving mutadone to a monkey which was originally a human restores it to
being a human
Giving mutadone to a human who has never been a monkey does nothing
about its human status
Giving mutadone to a human who was originally a monkey returns it to
being a monkey
I couldn't think of any better way to achieve this than putting a trait
on the monkey typepath but if anyone has one, I'd love to hear it
(actually, maybe I could just typecheck the mob... but that seems
equally gross)
## Why It's Good For The Game
Treating "being a monkey" as a mutation makes sense from the perspective
of the DNA console but not from the perspective of certain other game
mechanics.
A chemical which "removes all mutations" should _intuitively_ restore
people to the state they were in at the start of the round (so monkeys
turned into humans should return to monkey, and vice versa) rather than
unilaterally enact rapid evolution upon monkeys.
At least, I don't _think_ it's meant to be a lore implication that all
test apes on the station are transformed humans...
This has a couple of side effects, both of which I think are desirable.
Firstly- some mechanics work on humans but not monkeys (see #83698), and
can be circumvented by spraying mutadone gas into a monkey pen. This
will now only be achievable by individually mutating each monkey, which
requires more effort for whatever your desired result is.
Secondly- this adds a downside to the common "cure-all" surgical method
of turning a monkey into a human and transplanting a brain into it. This
new body will still genetically remember being a monkey, adding some
element of risk to this otherwise undramatic means of curing basically
any ailment in the game.
Thirdly- Some people have admitted to using mutadoned monkeys to create
a large number of humans to kill for Heretic and Changeling progression,
which I also don't want them to do, so making this take longer is a
positive.
## Changelog
🆑
balance: Mutadone restores your originally monkey status, rather than
always turning monkeys into humans
/🆑
* Mutadone restores your original monkey status
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Probital and disgust vomit are knockdowns, not stuns (#83475)
## About The Pull Request
Disgust vomit knocks you down rather than stunning you.
Mitogen Metabolism Factor knocks you down rather than stunning you.
## Why It's Good For The Game
> Disgust vomit knocks you down rather than stunning you.
With the recent update to rust causing disgust on tiles, you end up
vomiting, getting stunned, accruing even more disgust on the tile,
vomiting again. An endless cycle of misery. Vomits should suck, but I
don't think they should stunlock.
> Mitogen Metabolism Factor knocks you down rather than stunning you.
Similarly, Mitogen Metabolism Factor makes you vomit when overdosed.
This is normally fine, but fermichem always finds a way to ruin things -
it can be made via inverse Probital and is a guaranteed chain-stunner
for far too little effort.
Easy, cheap, hard-to-escape stunlocks are bad.
* Probital and disgust vomit are knockdowns, not stuns
---------
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
* Refactored ghetto chem separator (#83275)
## About The Pull Request
This completely reworks how ghetto chem separator works & brings more
depth & immersion to it. To understand the new system let's compare it
with the current one
**Old System**
1. You insert a beaker containing the reagents you want to separate.
2. You use a lighter/whatever to light a flame, Flame has _magic &
unrealistic_ properties such as
- It will never heat the beaker above 100k
- It doesn't burn oxygen or use fuel source to sustain it
- Distillation rate is a constant 5u/s. It doesn't increase as the
solution boils hotter
3. The apparatus sorts the reagents alphabetically? & transfers the 1st
reagent from sorted list to the target beaker. It does not care if each
individual reagent has their boiling points & how to separate them based
on that etc. It's just bland overall
**New System**
1. You insert a beaker containing the reagents you want to separate,
just lke the old system
2. You use a lighter/whatever to light a flame just like the old system,
however flame behaves in a more realistic fashion as follows
- It will heat the beaker all the way to 1000k if you let it run long
enough
- It now burns oxygen & uses a fuel source(a secondary beaker which you
must insert containing flamable reagents like oil, welding fuel etc).
When oxygen is the fuel source no O2 gas is required
- Distillation rate starts at 2u/s & increases with rising temps
- Intensity of the flame depends on the quality of reagents used as
fuel, Oil has best flammable quality & will heat the beaker faster,
other reagents mixed in various proportions can produce better quality
flames which you can understand by examining the aparatus
- The flame intensity can be adjusted via the burner knob setting
3. Each reagent now has their _boiling computed_ computed from their
mass allowing for realistic interactions, like having to control the
temp's just right to separate your required reagent
4. Temps automatically cooldown and you can install a condenser to
Facilitate faster cooling
Here's the demo video explaining everything
https://github.com/tgstation/tgstation/assets/110812394/ba591859-3fff-4d06-90f8-024c7266f830
## Changelog
🆑
refactor: ghetto chem separator has been reworked from scratch. See PR
83275 for details
qol: adds examines & screentips for ghetto chem separator
/🆑
* Refactored ghetto chem separator
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Reworks Adrenaline Glands into Repurposed Glands (Realingment) (#83474)
Adrenaline Glands have been removed and replaced with Repurposed Glands.
This ability removes use of your arms in exchange for regenerating your
legs, breaking cuffs, giving you speed, damage slowdown immunity, and
regenerating and doubling your stamina temporarily.
It's probably a bit overtuned right now. I remembered how useless this
ability is and it made me mad.
I'm tired of AG being a completely useless noob trap that doesn't do
anything of value and isn't even accurate to its description or flavor.
Taking inspiration from Realignment, this turns it into what skoglol
tried and failed to turn it into: An escape plan that can't be used as
free stimulants.
🆑
balance: Reworks Adrenaline Glands into Repurposed Glands (Realingment).
Lose the use of your arms, but you can escape any situation!
/🆑
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
## About The Pull Request
This pr increases the metabolism rate from 0.25 to 1 for oculine and
adds a 30u threshold and changes the amount of oculine a carrot contains
from 100 potency from 25 units to 10 units(still very reasonable amount
since you usually farm in batches of 10)
## Why It's Good For The Game
Oculine at the moment gives you soft night vision lets me give you a
comparision
This is without Oculine in system

This is with Oculine in system

Currently how it is you make 90 units beaker and it lasts you a hour
trough the round its pretty easy to make
Which is kinda ridicilous because at that point it just becomes chug a
beaker and have bootleg NV this PR
Will make the chem a little more situational it still will lost long
enough to benefit in a combat scenario
just not enough to chug a beaker and not care about for it the rest of
the round
## Changelog
🆑
balance: Adds a threshold to oculine and increases metabolism, and
reduces the amount of oculine in a carrot
/🆑
* Fix moon rocks, saturnx globs, and blastoff ampoules recipe reagents disappearing into the ether (#83382)
## About The Pull Request
When making moon rocks, saturnx, or blastoff I'd notice it'd sometimes
use more reagents than expected. Testing around a bit, it'd sometimes
just eat the reagents without making anything.
Looking into it, this seemed to be due to it trying to react and eating
the reagents to do so before actually reaching the minimum reagent
count.
Adding the `REACTION_INSTANT` flag to these reactions fixes this.
## Why It's Good For The Game
Fixes reagents disappearing without doing anything.
## Changelog
🆑
fix: Mixing the reagents for moon rocks, bLaSToFF ampoules, or SaturnX
globs in amounts less than the minimum for the recipe no longer eats the
reagents without doing anything.
/🆑
* Fix moon rocks, saturnx globs, and blastoff ampoules recipe reagents disappearing into the ether
---------
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
* Trimming the fat
* Trimming the fat
* Update mushpeople.dm
* Adds colorblindness as a mild brain trauma (#76527)
What the title says.
The brain trauma makes the whole screen monochrome until cured.

I feel like the current pool for mild brain traumas is quite lame, this
helps spice it up a bit with something that is quite annoying and
distracting but not game breaking (as mild brain traumas should
generally be).
🆑
add: Added colorblindness as a mild brain trauma.
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
* Fix species `var/hair_color` not being used for, well, hair color (#82168)
`var/hair_color` for species was intended to be used as a "this species
uses this type of hair color thing"
But at some point that got completely lost and now it's only used for
sprite accessories
This fixes that. That means Slimepeople now have properly slimey hair.
And Ethereals are less snowflake once more.
🆑 Melbert
fix: Fixed Slimepeople's hair not matching their slimey colors.
/🆑
* Revert "Fix species `var/hair_color` not being used for, well, hair color (#82168)"
This reverts commit c4cb756.
* Revert "Adds colorblindness as a mild brain trauma (#76527)"
This reverts commit eb815f5.
* Update _species.dm
* unused var
* Caps list..
* Update mushpeople.dm
* Update mushpeople.dm
* Update mushpeople.dm
* Update mushpeople.dm
* Update mushpeople.dm
* Attempts to fix CI errors
* Update cap.dm
* Update _external_organ.dm
* Update monkey.dm
* Revert "Update monkey.dm"
This reverts commit 29f54c8.
* Revert "Update _external_organ.dm"
This reverts commit 8de5ea7.
* Update _external_organ.dm
* Revert "Update _external_organ.dm"
This reverts commit 644cc56.
* Fix CI maybe?
* Update cap.dm
* Update DNA.dm
* Some cleanup/updating to upstream
* Update global_lists.dm
* Mush
* Update mushpeople.dm
* Hopefully the last fix
* Doing this differently
* Update organ.dm
* Update organ.dm
* Update organ.dm
* Update organ.dm
* Update organ.dm
* OK
* Update organ.dm
* Update podpeople.dm
* maybe
* Hm
* Hm
* Will this break things?
* Revert "Will this break things?"
This reverts commit bd288c6.
* Test
* Update organ.dm
* Update organ.dm
* Revert "Update organ.dm"
This reverts commit ca77ff9.
* Update organ.dm
* .
* .
* .
* Update snail.dm
* Monkeys now use height offset (and monkey tail works) (#81598)
This PR adds the ability for monkeys to wear any jumpsuit in the game,
and adds support for them to wear things like coats, gloves, and shoes
(though this cannot be obtained in-game and is solely achieved through
admins, which I also improved a bit upon by adding a defined bitfield
for no equip flags).
This reverts a lot of changes from
tgstation/tgstation#73325 - We no longer check
height from limbs and such to bring sprites down, instead monkeys now
work more similarly to humans, so the entire PR was made irrelevant, and
I didn't really want to leave around dead code for the sake of having a
human with longer legs.
I've now also added support for Dwarfism, which makes monkeys look even
smaller. Very minor change but at least now the mutation doesn't feel
like it does literally nothing to monkeys (since they can already walk
over tables).
Here's a few examples of how it can appear in game (purely for
demonstration, as it is currently intentionally made impossible to
obtain in-game, though if someone wants to change that post-this PR now
that support is added, feel free):
Tails have been broken for a while now, the only reason you see them
in-game is because they are baked into the monkey sprites. This fixes
that, which means humans can now get monkey tails implanted into them
(hell yeah) and monkeys can have their tails removed (also hell yeah)
* Removes unneeded files
* Revert "Removes unneeded files"
This reverts commit 6469d37.
* .
* ok
* Update tails.dm
* Update monkey.dm
* Fix monkey screenshot test
* Update species.dm
* Update reinf_walls.dm
* Maintenance
---------
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Mal <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: ChungusGamer666 <82850673+ChungusGamer666@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: vinylspiders <13398309+vinylspiders@users.noreply.github.com>
## About The Pull Request
- Fixes#83347
This issue title is misleading because the actual problem is with the
monkey reaction
Because this reaction is currently not instant it will only require
`CHEMICAL_QUANTIZATION_LEVEL`(0.0001)u of reagents to be present for the
reaction to occur. This means even though the actual requirements are
50u power & 1u water in reality you only need 0.005u(50 * 0.0001) powder
& 0.0001u(1 * 0.0001) water for the reaction to occur.
This is expected behaviour for non instant reactions because we still
want reactions to occur but yield less products when less required
reagent amounts are present but it's not ideal for monkey reactions
## Changelog
🆑
fix: Monkey power reactions are instant and won't occur when exact
reagent requirements (50u power & 1u water) or above aren't met. Stops
players from cheesing monkeys from plumbing factories
/🆑
* Buff Antihol's purge rate up (#83281)
## About The Pull Request
Buff Antihol's purge rate to 8u when pure (6u minimum)
## Why It's Good For The Game
Antihol in its current state is pretty worthless when its better than
multiver and calomel by 1u WHEN PURE and equal to them otherwise.
It does a pretty shit job when its supposed to purge a single category
of reagents (Alcoholic drinks) and the biggest offenders for poisoning
from massive volumes in the blood, This should make it actually worth
something even if its still inferior to potassium water purging.
## Changelog
🆑
balance: Buffs Antihol's purge rate to 8u/tick when pure (6u/tick
minimum).
/🆑
* Buff Antihol's purge rate up
---------
Co-authored-by: starrm4nn <139372157+starrm4nn@users.noreply.github.com>
* Anacea can't be bruteforced by Multiver (#83300)
## About The Pull Request
Multiver will stop purging all chems when Anacea is present in the blood
## Why It's Good For The Game
Anacea is supposed to be countered by 2 specific chems (Pentetic Acid or
Calomel), Bruteforcing it with the most common purging chem on station
is pretty lame.
## Changelog
🆑
balance: Multiver stops purging when Anacea is present in the
bloodstream.
/🆑
* Anacea can't be bruteforced by Multiver
---------
Co-authored-by: starrm4nn <139372157+starrm4nn@users.noreply.github.com>
* Assorted minor alt-click reskinning fixes, primarily context-based (#83105)
## About The Pull Request
This is a collection of tiny alt-click context fixes that I found during
testing #82920, but I felt were not right to put in there.
Most of the following explanation is for posterity, like they're mostly
one-liners, there's only so much explanation to do.
First off, the emotion mask would reset `current_skin` for infinite
reskinning, while we have the `INFINITE_RESKIN` flag:
0c562fd742/code/modules/clothing/masks/costume.dm (L16-L19)
We set this to `INFINITE_RESKIN` for sanity's sake.
Then, `/obj/item/clothing/under/add_context(...)` would call its parent,
but sometimes return `NONE` when its parent returned
`CONTEXTUAL_SCREENTIP_SET`:
0c562fd742/code/modules/clothing/under/_under.dm (L83)
This is bad, because reskinning context is handled on the parent
(`/obj/item`), and we have an item inheriting this which can be
reskinned, the mech pilot's suit:
0c562fd742/code/modules/clothing/under/costume.dm (L224-L240)
So we make this return the parent return value rather than `NONE`:
```dm
return changed ? CONTEXTUAL_SCREENTIP_SET : .
```
Next up, `/obj/item/clothing/accessory/add_context(...)` would never
actually call the parent and thus neither the reskinning context. It
also checks for whether you have an item in your active hand when
context is added, even though the context it adds actually only applies
when the accessory itself is in your active hand.
0c562fd742/code/modules/clothing/under/accessories/_accessories.dm (L205-L210)
So we instead make it call the parent first, check for whether the
accessory itself is in our active hand, and return the parent value if
not:
```dm
/obj/item/clothing/accessory/add_context(atom/source, list/context, obj/item/held_item, mob/user)
. = ..()
if(held_item != source)
return .
(...)
```
This resolves our issue.
We're almost there!
`/obj/item/reagent_containers/spray/medical/add_context(...)` exists,
but is entirely redundant due to this now being handled on the base
item, and also misses some of the checks it has.
0c562fd742/code/modules/reagents/reagent_containers/spray.dm (L442-L447)
So we just remove it.
Finally, what is to me the funniest one:
9145ecb7e1/code/game/objects/items_reskin.dm (L8-L9)
To add reskinning context, we check `item_flags` for `INFINITE_RESKIN`,
while it is actually on `obj_flags`.
So, instead, we were checking for the equivalent value in `item_flags`,
being `IN_STORAGE`.
9145ecb7e1/code/__DEFINES/obj_flags.dm (L15)9145ecb7e1/code/__DEFINES/obj_flags.dm (L34)
And thus reskinning context for infinitely reskinnables would only show
up if they were in storage.
For now, we just update this to use `obj_flags` instead.
That's everything I found so far, which this should all fix.
## Why It's Good For The Game
Having working item usage context tends to be a good thing.
## Changelog
🆑
fix: Emotion masks no longer use a janky workaround for infinite
reskinning.
fix: Mech pilot suit shows reskinning usage context correctly.
fix: Accessories show "wear above/below suit" usage context
appropriately.
fix: Accessories don't block reskinning usage context when they
shouldn't.
fix: Showing reskinning usage context cares about the infinite
reskinning flag, rather than whether it's in storage or not.
del: Removed redundant reskinning usage context code from medical
sprays, now shows reskinning usage context like other reskinnables.
/🆑
* Assorted minor alt-click reskinning fixes, primarily context-based
---------
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
## About The Pull Request
Turf rusting is now based on knowledge instead of RNG; toxic damage on
spells has been replaced with disgust; rust walkers are a bit easier to
summon and show up early in the tree.
Rust ascension spread has been massively increased and immunities while
on Rust have been updated.
## Why It's Good For The Game
This is a massive list of changes, but the tl:dr is Rust heretic design
is pretty barebones and dated in its current state. I'm going to try my
best to explain why that is and why it needs to change.
### RNG on rusting is bad
**Problem** : quite a lot of turfs cannot be rusted, and reinforced
turfs rusting is tied to RNG, the emergency shuttle floors are also
unrustable, making an ascended heretic not threatening at all to an
escaping crew.
**Solution**: Heretic rusting prowess is now tied to knowledge
progression; reinf wall rusting is no longer tied to RNG; the emergency
shuttle is now rustable if you have accrued enough knowledge.
**Explanation** : I've been adopting the code from a previous PR that
sadly didn't make the light of day.
Link: https://github.com/tgstation/tgstation/pull/65361
The goal is to have Heretic rusting be more consistent, so that if you
ascend the shuttle is no longer a safe refuge.
**Grasp Of Rust**: Basic floors and walls.
**Mark Of Rust**: Reinf floors and walls (takes 3 applications of rust
to fully destroy).
**Toxic Blade** Titanium and Plastitanium( still takes 3 applications of
rust to destroy).
**Ascension**: almost everything save for admin walls, glass, and
silver.
### A territorial antagonist with no tools to defend its turf
**Problem**: Rust heretic is forced into a territorial playstyle, but
it's heavily diminished by rusted turfs not having any negative effect
on the crew whatsoever, Toxic damage on plume and blade is also kind of
bad and has no synergy with the rest of the kit.
Lastly, while fitting to the theme of Rust; mark detonation destroying
clothes and items can end up being more harmful to the heretic, as
destroying a secoff's flashbang will result in you getting stunned and
killed.
**Solution**: Rusted floors are no longer safe for the crew; walking
over Rust will add a small buildup of disgust, silicons will receive
ticking damage, Toxic damage on Rust skills has been replaced with
disgust buildup and a chem purge effect to prevent the crew from
cheesing the debuff with sol dry.
**Explaination** "The goal behind this change is to prevent the crew to
just be able to walk willy nilly into an eldritchly decayed area without
repercussions, plus I feel like disgust is a fitting debuff for Rusties
for a number of reasons.
1) Lore wise, your goal is to turn the entire station into a garbage
dump.
2) It fits for fighting a territorial antagonist, it's not immediately
threatening on its own, but if you overstay your welcome, it has dire
consequences.
3) We don't really do much with disgust as a status effect, far as i
know, this'll be the first iteration of it being used for an antagonist
toolset.
4) It gives reason to the crew to act hostile towards the Heretic, as
you are essentially making their work area inhabitable.
I've also Slightly increased the healing on leeching walk and gave it
some minor temperature regulation (you won't be able to outtemp space
cold).
### Rust Walkers
**Problem**: Rust walkers might as well not exist in their current
state; they are one of the latest heretic unlocks, and the recipe for
summoning one is INSANE now that you cannot decapitate mobs anymore.
**Solution**: Rust walkers pop up a bit earlier in the tree; the ritual
to summon them has more reasonable reagents (wires, pools of vomit, iron
sheets) and they have increased health.
**Explanation**: : There is not a lot to add to this. without walkers,
Rust heretics are fairly slow at spreading rust, by making rust walkers
have reasonable summoning reagents, we ease that problem; lastly i've
slightly bumped their hp, as i felt 75 hp was a bit low.
### Underwhelming ascension
**Problem**: The spread rate from the ascension is downright ATROCIOUS
in its current state, i actually ran multiple tests on different maps,
on Metastation it can take up to 40 minutes for the rust to spread to
the entire station, considering an ascended heretic results in an
immediate shuttle call, it's unecceptable in its current form.
Solution: Rust spread is now a hybridization between old ascension and
Wizard tranformation ritual.
**Explanation**: The spread rate in its current form is painstakingly
slow and has a tendency to reach one corner of the map and compound on
itself, i've borrowed the code from the wizard final ritual
"transformation" and gave it my own spin so that given enough time it
will cover the station more or less evenly, it can now spread through
all z levels.
Video example: https://www.youtube.com/watch?v=jZ5zMrNM6Jw
I've also updated the immunities you gain on ascension to ignore
slowdown and stasis from Cryogelidia.
The whole point of rust ascension is to become immune to crowd control,
i've seen far too many ascended heretics die to a single bola or cryo
syringe, that's pretty lame so i fixed that.
Lastly, aggressive spread has had its radius reduced in exchange for the
spread being consistent now; cooldown is also halved when you ascend, to
better help the heretic go on the offensive.
## About The Pull Request
**1. Qol**
- Adds examines & screentips for screwdriver, crowbar, wrench acts &
inserting reagents
- Adds examines for viewing reagents present & efficiency of the smoke
machine
- Removes power cell from smoke machine required component parts. It's
used nowhere in operation & is a waste of a good cell
**2. Code Improvements**
- Replaced `attackby()` with `item_interaction()`
- Begins & ends processing only when the player turns the machine on/off
& not just when power is available
- Removed unused vars like `cooldown` & `user_amount`
- Correctly autodocs remaining vars
- Improved UI code to use existing `BeakerDisplay` props
**3. Fixes**
- You no longer hit the smoke machine when inserting reagents into it
via beaker or other open containers
- You can hit the smoke machine with tools like screwdriver, crowbar,
wrench & open containers when in combat mode
- No abstract & hologram item interactions with smoke machine
## Changelog
🆑
qol: adds examines & screentips for tool & container actions on the
smoke machine
qol: smoke machine no longer requires a power cell for construction
code: autodocs & removes vars for some machine, Updated attack chain to
latest standards for smoke machine
fix: You no longer hit the smoke machine with the beaker
fix: You can hit the smoke machine with tools & beakers when in combat
mode
fix: no abstract & hologram item interactions allowed with smoke machine
/🆑
---------
Co-authored-by: _0Steven <42909981+00-Steven@ users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@ users.noreply.github.com>
* fix glass style /hooch being duped (#83169)
## About The Pull Request
/datum/glass_style/drinking_glass/hooch was being added 2 times, so I
just replaced the one with "aleglass" sprite to be /ale
* fix glass style /hooch being duped
---------
Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com>
* Replace Heretic Phobia with Cursed Organs (#83082)
## About The Pull Request
Being sacrificed by a Heretic no longer applies an incurable brain
trauma that gives you a phobia of Heretic-associated items.
Instead it does the following things:
- Removes 2-4 of your organs and leaves them behind on the sacrificial
circle, replacing them with "corrupt" organs with negative effects.
- Gives you an unremovable "curse" debuff which will cause you to
immediately cough a random organ out of your chest if you attack or are
attack by the person who sacrificed you, **if they are wearing a Focus
at the time.**
Corrupt Organs can be removed via surgery, although doing so is
dangerous.
A removed corrupt organ will often either immediately explode for a
small (but not insignificant) amount of burn damage to everyone nearby,
or it will animate itself as a haunted object and be a general nuisance
until subdued.
A patient dosed with Holy Water can always have their organs removed
without consequence.
Chugging Holy Water will also suppress most of the negative effects of
your corrupt organs.
The effects of Corrupt Organs are as follows:
- **Eyes:** All Heretics **and also a selection of additional random
people** are completely invisible to you. You can still see their
runtext (or "hear") them, but they otherwise cannot be seen. And as you
can't see them you also cannot click on them.
- **Tongue:** When you speak, your language will sometimes be replaced
by "Shadowspeak", understood only by Curators and Nightmares. This is
less of an impediment during Halloween because of the friendly
Shadowpeople.
- **Liver:** When you drink something, it will add extra reagents to
your sip from a pool largely composed of alcohol and hallucinogens.
- **Stomach:** Your hunger will deplete significantly faster if you do
not regularly ingest blood. (Fun fact: Did you know that a drinking
glass full of blood automatically relabels itself "tomato juice"?)
- **Heart:** You will continue to be intermittently tormented by
frightening hands.
- **Lungs:** You will intermittently cough out dangerous or unpleasant
gases.
- **Appendix:** Very infrequently you will vomit out several hostile
worms.
Most of these effects aren't present while you're dodging the spooky
hands in the Mansus realm.
Plasmamen never have their lungs replaced because they'd immediately
start choking on their internals and that is annoying. Ethereals _do_
have their hearts replaced so may be surprised to find that they don't
respawn when killed if they don't get a new one.
I would haved called them Cursed Organs but the Cursed Heart already
exists.
## Why It's Good For The Game
Nobody enjoys the Heretic phobia from any angle.
Phobias suck to deal with in general. and while being scared of all
Heretic stuff from that point on is mildly flavourful it's not very
interesting.
This alternative hopefully provides a more interesting answer (which
should provide more storytelling and interaction with other people) to
the problems that the original change intended to address:
Making sure that nonlethal sacrifices still feel significantly bad
enough that you're not going to volunteer, and as an extra layer of
protection to ensure that someone you sacrificed functionally ceases to
be a threat to you.
## Changelog
🆑
del: Being sacrified by a Heretic no longer gives you an incurable
phobia.
add: Being sacrificed by a Heretic will drop 2-4 of your organs on the
ground and replace them with "corrupt organs" with negative effects
which can be suppressed with Holy Water.
add: Players who have been sacrificed by Heretics will experience
additional and rapidly lethal consequences for attempting to fight
someone who previously sacrificed them, as long as that person is
wearing a focus.
/🆑
* Replace Heretic Phobia with Cursed Organs
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
## About The Pull Request
- Fixes#82921. Closets that are not linked by the closet anomaly
station trait will be tainted blue, show sparks & do all that jazz once
again. In other words they are not subtle
- Closes#82353. Duplicate of the above. Sprays work since the above
issue is fixed
## Changelog
🆑
fix: Eigenstasium exposed & Anomaly station trait affected closets work
again. Eigenstasium closets are tainted blue
/🆑