## About The Pull Request
``liquid_amount`` does nothing as its an atavism from main tank
explosions (which use it for welding fuel effects), and ``chem_splash``
requires an integer range. Latter is also a problem in main boom proc,
so we gotta floor the values before passing the range.
## Changelog
🆑
fix: Water cooler explosions no longer runtime
/🆑
## About The Pull Request
Patches rely on show_message to prevent spam due to microdozing, which
synthflesh proudly ignored. Fixed this by making unhusk failure messages
respect show_message, and moving stat check to only affect the dead
person's personal to_chat
## Why It's Good For The Game
The spam is absurd and clogs up chats of everyone in medbay
## Changelog
🆑
fix: Made synthflesh patches not spam chat messages every tick
/🆑
## About The Pull Request
Adds the food storage component to cutlets, cooked and raw, as well as
slices of cheese. This means you can put pills in them.
Also changes pills on accidental consumption, if you like the food they
are stuck into, then you don't even notice that you just ate a pill. Mmm
cheese...
## Why It's Good For The Game
Food storage is a really funny component but only works on very few
foods, like whole wheels of cheese or loaves of bread. Everyone knows
the best way to sneak a pill is to put it in a slice of cheese.
## Changelog
🆑
add: Lets small items be stuck into slices of cheese or lunch meat
balance: Pills in food no longer alert you that you've just swallowed
one if you like the food they were stuck in (yum... cheese...)
/🆑
---------
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
## About The Pull Request
Water evaporation no longer cools the air below 0C. It will also cool
the floor now.
## Why It's Good For The Game
The maximum humidity in the air rapidly drops when it gets below 0C, and
there is no more heat to boil the water since it already got cooled. For
compensation, water evaporation now cools the floor too. Extinguishing
fires caused a problem where the room went way too cold and slippery,
which was just ridiculous and annoying. It was also too powerful and
made a lot of fires an insignificant problem. It was also used to cheese
hypernoblium formation, which wasn't the intended method, skips intended
progression and felt extremely gamey.
## Changelog
🆑
fix: Fixes water evaporation cooling the air to 2.7 Kelvin.
balance: Water evaporation can cool the floor.
/🆑
## About The Pull Request
- Fixes `/datum/reagents/convert_reagent()` not taking into account
purity & ph of removed reagents in its final product when using
conversion threshold
- Fixes `/datum/reagents/convert_reagent()` transferring incorrect
reagent data when converting multiple reagents.
- Makes the proc overall faster as it does no expensive proc calls to
`remove_reagent()` & `del_reagent()`
## Changelog
🆑
fix: converting reagents now computes correct purity & ph when
conversion threshold is set
fix: converting reagents transfers reagent data correctly only when not
filtering sub types
code: converting reagents is faster performance wise
/🆑
## About The Pull Request
This overhauls Water Coolers (now referred to as "liquid coolers"
internally and in most external cases). They'll feel less like a useless
prop now.
(sprites may look off because of the gif software I use)
**Important Thing # 1:** The reagents are now handled by cooler jugs.
You can pop the jug off of a cooler, fill it with whatever the hell you
want, and put it back on. Fill it with drugs. Fill it with acid. I don't
care, I'm not your mom.
<img width="41" height="56" alt="image"
src="https://github.com/user-attachments/assets/4c618cab-99b4-4a72-ae7b-7b900d7f5eaf"
/>
The sprite now uses an overlay to change colors based on the mix. Water,
when present in the cooler, is magically turned blue to keep that
classic water cooler look.
<img width="280" height="333" alt="image"
src="https://github.com/user-attachments/assets/8a6a905c-bef4-4f5f-9393-5ce5dcca0620"
/>
The jugs are 200 reagents, and are mechanically comparable to the jerry
can. No 200 unit acid splashes or anything.
Y'know, unless you put the jug in a cooler and knock it over...

**Important Thing # 2:** They can be anchored, tipped, and crafted.
Tipping them requires the cooler be unanchored. If you want to use one
of these tactically, unwrench it beforehand.

**Important Thing # 3:** They can be bought from cargo now!
<img width="501" height="605" alt="image"
src="https://github.com/user-attachments/assets/6f261aab-f11a-4126-98ce-d9278d01d0a0"
/>
**Important Thing # 4**
Fruit punch.
<img width="175" height="127" alt="image"
src="https://github.com/user-attachments/assets/ac81e48c-47ff-461f-85f8-3e77a6a6ca55"
/>
Fruit punch is a drink with impressive (slightly faster than omnizine)
healing qualities. Unfortunately, it's so unbearably sweet that it can
only be safely consumed near a liquid cooler! Drinking this stuff is a
commitment, since if you stray from the cooler while digesting it, you
will be hurt and disoriented. You should avoid drinking too much at
once, in case an emergency comes up!
For this reason, we encourage drinkers to _take small sips from your
paper cooler cup, hang around the cooler, and maybe chat with other
people who are healing too._
(Mapload) water coolers have a 1% chance to start full of punch instead
of water. Maybe you'll get lucky and start with a healing station in
your department, or maybe a hopeless space explorer will find one in a
ruin and be saved.
You can also buy one from cargo but it's priceyyyyy. It's also the only
source of punch.
## Why It's Good For The Game
Realizing how little functionality water coolers have was super
disappointing. They do hardly anything but take up space and look
pretty. And now, they're getting mapped into all of the new stations! We
can't have a bunch of inert, sandbox-shunning furniture just sitting
around, the other codebases would laugh at us!
Now, coolers are more congruent with how most people would expect one to
behave in the game environment. Even minor changes like making them
unanchorable or refillable helps them fit in with most players'
intuitive understanding of how atoms typically behave.
The reagent storage change gives coolers their own unique niche in the
sandbox. Tipping them over can also give you an edge in escaping
someone, so even the untouched roundstart coolers can serve a purpose to
savvy players.
For the punch cooler, I figured "why not make a reagent that rewards
players for treating the water cooler like a water cooler?" The punch
encourages players to stand around it, slowly sip from the cooler, and
chat with their co-workers. Just like people do in offices! It's
thematically sound!
## Changelog
🆑 Rhials
add: You may now remove water cooler jugs and put whatever you want in
them. Go nuts.
add: Water coolers are now craftable (with plastic), orderable from
cargo, and tippable when unanchored.
add: Rarely, water coolers will spawn full of healing fruit punch
instead of water! Be careful not to stray from the cooler while
digesting this stuff.
add: You can also just buy the punch cooler from cargo if you feel like
it.
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
Purged several files inthe theme of misc.dm and broken the contents out
into better organised files.
Incidentally done some minor cleanup by removing an unused global list
referring to a string file that no-longer exists, and removing a useless
proc that replicated the behaviour of file2list().
## Why It's Good For The Game
See #60358 and all its successors
## Changelog
🆑
code: Reduced the number of files named misc.dm or similar by 14%.
/🆑
## About The Pull Request
Because fish is an item, it inherits the use of integrity from objects,
however it also has its own health variable. For consistency, ~~damaging
its integrity should also lower its health and healing it should also
recover its integrity. Fish has a max integrity that's double its
health.
I've also renamed `adjust_health` to `set_health` since it doesn't
adjust the health by the provided value but sets it to said value.~~
I've scrapped the latter to instead use integrity.
## Why It's Good For The Game
A small bit of consistency. If you shoot a fish with a laser gun,
wouldn't it die?
## About The Pull Request
Merges `/datum/reagents/proc/copy_to()` ->
`/datum/reagents/proc/trans_to()`. Added a parameter `copy_only` to
indicate we want a copy operation
## Why It's Good For The Game
- Less code to maintain
- All the functionality of `trans_to()`[logging, transferring single
reagent, expelling reagents from stomach, etc] now applies for copying
reagents as well which was missing a lot of it, so we have consistent
behaviour
## Changelog
🆑
refactor: code for copying reagents has been refactored. Please report
bugs on github
/🆑
## About The Pull Request
Adds a number of new capabilities to glitter.
- It can be any colour.
<img width="657" height="398" alt="image"
src="https://github.com/user-attachments/assets/60e80c04-8eee-470c-8953-47f6eda9f83e"
/>
- It can be made in chemistry and dyed by combining it with acetone and
other reagents to give it the average colour of the non-glitter,
not-acetone reagents.
- Multiple colours can be mixed into one reagent datum, randomly
depositing a colour from those in the datum on the floor.
<img width="554" height="507" alt="image"
src="https://github.com/user-attachments/assets/9cc7d1d5-9bec-4b28-af06-310ffb24de49"
/>
- Anyone with glitter reagent in them will cough glitter onto the floor
- Glittery crates will leave a trail of appropriately coloured glitter
when moved
<img width="960" height="259" alt="image"
src="https://github.com/user-attachments/assets/71cc1176-23f9-4ae7-b500-1744b752c014"
/>
Resprited glitter to support these changes and make it not look like gas
(or ass).
## Why It's Good For The Game
It looks cool and raises the bar for chemists maximally pissing off the
janitor as they fill a room with multicoloured glitter and all the
occupants run off to cough more up all over the surrounding area.
## Changelog
🆑
add: Glitter can now be made from plastic polymers and aluminium.
add: Plastic polymer can be made at any temperature, and then heated to
produce sheets.
add: Glitter can now be made any colour, mix 10 units each of glitter
and acetone to change its colour to that of the other reagents in the
beaker.
add: Mixing different colours of glitter will cause a random selection
of those colours to appear on the floor when released.
add: Being exposed to glitter in reagent form causes you to cough up
more glitter onto the floor
add: Dragging glittery crates will now spread a trail of glitter and
angry janitors behind them.
image: Added new glitter sprites (that don't look like gasses)
/🆑
## About The Pull Request
- Fixes#92401
And many other reagent transfer operations who's multiplier is not 1
## Changelog
🆑
fix: reagent transfer amounts with multiplier applied(e.g. cryotubes)
have been corrected
/🆑
## About The Pull Request
- Fixes#92198
- Fixes#92298
**1) Replaces reagent `on_transfer()` with its corresponding `expose()`
proc variants**
This PR replaces all known implementations of
`/datum/reagent/on_transfer()` with `/datum/reagent/expose_mob()`. We
use `expose_mob()` & not the other `expose()` variants because all known
implementations were targeting living beings so this was the correct
replacement This has 2 benefits
- `expose_mob()` gets called correctly when an impure reagent is
converted to it's inverse variant like for Cryostylane & Cryogeldia.
This isn't the case for `on_transfer()` so we get correct behaviour
which fixes the above bug
- Removing `on_transfer()` makes the proc `/datum/reagents/trans_to()`
much faster performance wise because we aren't calling `update_total()`
per reagent transfered now but only once at the end after all reagents
are transferred
Also there was little to no functional difference between the 2 procs,
`expose()` works correctly in comparison & this won't confuse devs when
deciding which proc to use. One proc to cover all scenarios
**2) Removes unused expose signals**
`COMSIG_ATOM_AFTER_EXPOSE_REAGENTS` & `COMSIG_REAGENTS_EXPOSE_ATOM` are
not used anywhere in the codebase i.e. no listeners. They can be
discarded as dead code
**3) Fixes wrong transfer amount passed to
`/datum/reagent/intercept_reagents_transfer()` &
`/datum/reagents/expose()`**
The wrong transfer `amount` was passed when it fact it should use
`transfer_amount` which contains the multiplier & proportional
multiplier applied. Also the reagent volumes exposed was computed
incorrectly resulting in the 2nd issue listed above. Blood transferred
to mobs now go to `blood_volume` directly instead of getting added to
the mobs reagent holder as long as it's less than `BLOOD_VOLUME_MAXIMUM`
level
## Changelog
🆑
fix: reagent intercept operations use correct volumes e.g. ph buffers
fix: impure cryostylane now has inverse cryogeldia effects when applied
on mods
fix: exposing reagents now uses correct volumes i.e. injecting blood
into mobs don't increase it exponentially and stops when max levels are
reached. Exposure affects of all reagents are lessened upon continuous
exposure
refactor: refactors how reagent affects are applied on mobs. Report bugs
on github
/🆑
## About The Pull Request
This PR adds some wacky interactions for meat and hauntium, should you
choose to transmute items into them using metalgen.
- You can imprint a mob's specific meat onto metalgen using their blood
(It doesn't even have to be the blood reagent, it can be any reagent
that was drawn from a mob's blood).
- Mob meat now applies the source's blood color to items made out of it.
- Organs and bodyparts made primarily out of meat become organic, if
they weren't already.
- Organs and bodyparts made primarily out of hauntium become ghostly, if
they weren't already. This makes them suitable for ghost species
wall-phasing.
## Why It's Good For The Game
Regarding the cosmetic change to mob meat, I thought it only appropriate
that mob meat material should take on the color of the mob it was taken
from.
For imprinting mob meat onto metalgen using that mob's blood, I thought
it would be funny to take people's blood and transmute objects into
being made out of those people's own flesh.
For meaty bodyparts and organs being organic, it can be argued that the
thing that makes organic bodyparts and organs organic is being made out
of meat, so I think the reverse logic should also apply.
For hauntium bodyparts and organs being ghostly, the ghostly nature of
ghostly bodyparts and organs should be what allows them to not fall out
of a ghost when they become incorporeal. And how could something made
primarily out of a substance extracted from ghosts **NOT** be ghostly in
nature?
That said, it's only *theoretically* possible to get hauntium bodyparts
and organs as a ghost, what with there being no way to do surgery on
ghosts. Good luck figuring out and executing the steps to actually do
this.
## Changelog
🆑
add: Items made out of a specific mob's meat take on the color of that
mob's blood.
add: Blood (or anything a mob uses as blood) can be used to imprint that
mob's meat onto metalgen.
add: Organs and bodyparts made predominantly out of meat become organic,
if they weren't already. Likewise, hauntium makes them ghostly.
/🆑
Three quality of life additions for recovered crew:
1. Jumpsuits are spawned in the crate, and no longer in the lockbox
2. Formaldehyde will no longer metabolize during the "soul pending" fase
so you don't have to constantly re-up them with it
3. Gives them 200cr starting money instead of 100. Also get a headset in
their lockbox now
## Why It's Good For The Game
1. This lets the reviver know what job they can expect to have, and make
more informed choices about which organs, implants and surgeries are
most beneficial to them. They can still change their mind, but it's
something I've always missed having and can help to tailor the
experience a bit
2. This is just annoying. Trying to revive them and not realizing the
formaldehyde is gone, and then realizing absolutely everything decayed,
is super fucking ass.
3. They get barely any starting gear, so some more money to help them
buy gear is really needed. The headset is just there to make it easier
to communicate with the department head or the HoP, it just gets you
going faster.
## About The Pull Request
Moves all the dna block handling onto singleton datums initialized
inside global lists, to make the handling dna less of a copy-paste mess
and make adding new blocks significantly easier. There is still some
work to be done in the copypaste department but ultimately that falls
under its own PR scope after the core refactor goes through. (Ill
probably do those but it will also be easier for everyone else as the
code is now significantly less of an eyesore)
Both features and identities have been tested through and through, and
seem to be working fine.
Also removed the reliance on weird hardcoded lookup tables for length,
and other similar things that just didn't make sense when I was passing
through DNA code. There's a lot more that fall out of scope for this
exact PR's goal however
## Why It's Good For The Game
I've been told the maintainers will love me for doing this
## Changelog
🆑
code: feature keys are no longer magical strings floating around the
codebase and use proper defines
refactor: DNA blocks are now handled with singleton datums.
/🆑
## About The Pull Request
Using damp rag in hand lets you wring it out, clearing 1/4th of the
bloodiness.
Takes 2 seconds, plus 1 second per previous wring until it's cleaned
## Why It's Good For The Game
Suggested in the community meeting, I thought it was cool
## Changelog
🆑 Melbert
qol: Using a damp rag in hand will wring it out, making it usable for a
bit longer.
/🆑
## About The Pull Request
Blood pack code is abyssmal and I somehow missed it during my refactor.
Refactored how they spawn blood which should fix it not actually doing
anything when splashed/used in reactions, and also lizard blood not
getting its green color.
- Closes#92008
## Changelog
🆑
fix: Fixed lizard blood bloodpacks being red instead of green
refactor: Refactored blood packs
/🆑
## About The Pull Request
A note to start: the coroner's mail goodie is untouched. They still get
their brain-in-a-jar, prefilled with formaldehyde and with the
ghostrole-brain.
**First part is fairly simple. It's printable now.**

**Balance is hopefully also simple...**
Originally it could store 150u, which just made it an improvement over
most of the other basic beakers... but it shouldn't even be useful in
chemistry, it's rather unshapely for that!
So the balance is as follows:
- It stores 120u of chemicals, printable roundstart.
_Identical to the X-Large Beaker - even in cost, needing some plastic
(which makes it shatter-proof. i guess.)_
- The unwieldy lip means it can only pour in large amounts (20, 40, 60,
120)
_It's not ideal for mixing in chemistry... This will **hopefully**
discourage using it where it'd look out-of-place.
Why juggle big numbers when you can use easier to handle, equivalent
X-Large Beaker?_
If players so choose they **can**, of course, still mix their spacedrugs
soaking in a bottle with a Felinid Liver. It's just not a preferred
shift-start beaker.
_Also it's a /beaker subtype now because I wanted to inherit some
things, like the pickup/drop sounds.
This technically means it works as a component in machines, but since
it's equal to an X-Large beaker that doesn't really mean anything. Just
a funny interaction._
## Why It's Good For The Game
I can finally torment my patients without having to hope the Mail Gods
deem me (or the department Coroner) worthy.
The idea of gifting them their inflamed appendix in a preserved jar
makes me happy.

## Changelog
🆑
add: Medical (and Science) can now print Organ Jars from their
protolathes! Their shatter-proofing requires some plastic, though.
balance: Organ Jar capacity lowered to 120u, and they can only pour in
large quantities (have you ever tried pouring out of a jar with a lip
like that? Disaster. Such a mess.).
/🆑
## About The Pull Request
turns most of the item sound handling into procs instead of calling
playsound directly
- added support for changing the pickup, drop, throw_drop,
mob_throw_hit, equip when a reagent container is filled up to 20% of
it's reagent capacity.
## Why It's Good For The Game
we turn these into procs so we can override them on subtypes, this
allows us to do some funky stuff, for example play reagent sloshing
sounds together with other sounds on different interactions for
reagent_containers, allowing us, for example to play reagent sloshing
sounds when hitting someone with a beer bottle, or extinguisher.
or, in the future we can play chafing sounds for clothes on sound
handling when they are damaged enough.
## Changelog
🆑
refactor: changed how sound handling for item sounds works, report any
sounds not making any sounds!
sound: handling reagent containers around will play their reagent
sloshing sounds more often
/🆑
## About The Pull Request
There was a PR I wanted to make, but one of the features I wanted the
addition to have was for an affected mob to only speak aphasic, but
understand whatever languages they'd normally be able to understand.
This, in turn, required refactoring language holders to separately block
language speech and comprehension. This change, I decided, would be good
to split into its own PR.
## Why It's Good For The Game
Allows more fine-grained control over what languages an atom is blocked
from speaking or understanding. This will be useful for future PRs or
admin events.
## Changelog
no player-facing changes
## About The Pull Request
This PR changes how the speed boost from sterilizing agents is assigned
and calculated.
from:
surgery_time /= (1 + sterilizer_bonus)
to
surgery_time *= sterilizer_bonus
All sterilizing agents agents have their sterilizer values changed to 1
- "old value"
## Why It's Good For The Game
There is a lot of confusion about how these reagents work.
I've always been told sterilizine reduces surgery time by 20% and that
honey reduces it by a whooping 60%.
Recently a new inverse krokodil reagent was added that designed to
reduce surgery times by 30%.
Due to the way these modifiers were calculated none of these reagents
actually offered these surgery do_after reductions, until now!
They are now calculated by simple multiplication like toolspeed and
other common modifiers.
sterilizine 16.6% -> 20%
honey 37,5% -> 60%
permonid 23% -> 30%
I haven't been able to track down what the intended time savings were
when all of these reagents were added, but for some of these the low
effciency seems to be unintentional.
And I think it is nice to reward the doctors for putting in the work to
get better gear, especially when it involved departmental cooperation
like baccus and honey.
## Changelog
🆑
balance: sterilizing reagents like sterilizine, honey and alcohols now
improve surgery speed more.
/🆑
## About The Pull Request
This PR makes a number of changes focusing on improving the blob
minions, spores, nauts, zombies and their associated component.
## New sprites
The blob spore, blob zombie and blobbernaut has been resprited.
The spore and zombie have been lightly touched to preserve the most of
the original characteristics while given a cleaner look.
The spore and zombie have a partially desaturated version used to let
more of the strain colour through instead of them all ending up dark
brown.
The blobbernaut has been reshaded and the side sprite has been made
coherent with the front state, I made decided how the front state was
shaded should be the "canon" one (this might be a bit controversial but
the wild inconsistency was bugging me.)
The blobbernaut is a bit less veiny, but the veins look more natural and
use the strain complementary colour. Many combinations are cool, some
are a bit lacking due to the weird choices of complementary colour.


## New Cytology Related Features
Blob mobs can now have strains independently of an overmind.
The 15% mutation chance of vat grown creatures causes a spore or
blobbernaut to get a random strain.
When I first added the blob spore cell line, ghosts could click on cyto
blob spores to posses them, they would then presumably(?) but not
explicitly be free antags. This ability was lost when the blob spore
code was modernised.
Very few people knew about this, and no one grew blob spores anyway.
This feature is coming back in a big way, vat grown blob spores present
a new unique job hazard, they are automatically offered to ghost as an
extremely shitty, but free antag.
I have tested spawning like 15 antag pre-buff blob spores in a live
round and they failed completely to antagonise the crew effectively,
hopefully these buffed spores won't present too much of an issue to our
great administration team, if that ends up being the case, there are
many levers to pull to tone them down.
## Blob Spore Buffs
Blob spores prior to this PR were almost completely useless.
The main cause of this was the extremely dilute reagent smoke reaction;
10u divided over 20 seconds.
This resulted the smoke clouds dealing 0.15 - 0.6 DPS, a completely
negligible and useless amount.
The smoke reagent concentration has been massively increased(10u -> 40u)
and the smoke duration has been reduced(20s -> 8s).
The result of this is that blob spore clouds are something you want to
avoid standing in, but they provide less smoke cover for the blob and
nauts.
Blob spores have also gained the ability to vent crawl. Simple mobs that
can't either open doors or vent crawl feel super bad to play.
They also deal a little more melee damage, but this is still
pathetically low on account of their low attack speed.
I have adjusted their supplementary reagents and reduced the amounts of
spores produced per cycle(2 -> 1) to make them a bit harder to mass
produce.
## Blob Strain Buffs
I have not made this PR with the goal of buffing any particular strain,
but some changes have affected blob strain balance:
### Debris Devourer
This was the only strain that was strongly mechanically tied to the
core.
In order to allow for independent debris devourer mobs, they can now eat
trash(or any item really), they are independent, they store these items
inside their mob, and use these for the debris devourer reactions.
If they have an overmind, the item gets sent to the core.
This should result in a nice buff to the strain, which I've been told is
one of the bad ones.
### Regenerative Materia & Cryogenic Poison
5 years back another contributor removed the ability of blobs and
blobbernauts to transfer reagents with their attacks(as their expose
method is vapour).
This was a completely undocumented change and possibly unintentional, so
I am reverting it by giving blob reagents penetrates_skin = VAPOR again.
This only really affects these two strains. It makes regenerative
materia much stronger, while barely having any effect on cryogenic
poison, because temperature normalisation changes has made it completely
ineffective even with much more reagent applied.
### Electromagnetic Web
The spore reagent cloud buff might also give a boost to some strains
with good expose effects, like electromagnetic web.
## Blob Cooking
Blob spores now drop spore sacks, they can be ground for spore toxin, or
cracked on a griddle to create an egg-like treat!
I also added a detoxification reaction to reduce the amount of toxin
when cooked, might not work yet because I think griddles may not
actually heat the food?
## Sound Effects
Blob spores bursting and blobbernauts dying have sound effects.
## Why It's Good For The Game
level 5 biohazard
## Changelog
🆑
image: blob mobs have been respectfully resprited.
add: vat grown blob mobs can sometimes get born with a blob strain.
add: blob spores drop spore sacks, crack them on the griddle.
add: debris devourer mobs can now eat trash, sending it to the core, if
there is one.
add: vat grown blob spores are now sentient and evil.
balance: blob spores now have much more concentrated smoke.
balance: blob spores can ventcrawl.
fix: regenerative materia and cryogenic poison strain blob tiles & nauts
now inject chems again.
sound: blob spores & blobbernaut now have death sound effects.
/🆑
## About The Pull Request
This is a big one so please bear with me, wounds are complicated
### Max Potential Wound Rolls
We've decreased the max contributed damage to wound rolls from 35 to 25.
This results, after the exponent, a max possible wound roll of 1 to 91
before any modifiers (assuming the attack, after armor, is 25 or above).
The minimum value to wound is still 5.
### Wound Escalation Penalties
Most wounds were contributing significant numbers per wound type to the
potential for a new wound to occur. Getting wounded once meant you were
getting wound a lot, but actually getting past that first wounding may
be the tricky part.
We have significantly reigned in the wound penalty that having a wound
contributes, and instead utilize the series wound penalty to allow same
type wounds to escalate themselves faster as a priority. Having wounds
still makes you more wound vulnerable, just not to such an extreme
degree.
The priority here for what wounds matter most for contributing to
overall wounding vulnerability is ``Infected BURNS > BURNS >
SLASH|PIERCE > BLUNT.``
### Wound Armor
Wound armor, unlike all other kinds of armor, was used as a additive
value to the wound roll modifiers rather than a multiplicative value.
We have reworked how wound armor is determined by changing how wound
modifiers are calculated.
Firstly, we're passing our entire injury roll into the
``check_woundings_mod()`` proc, as we're not treating this as a proc
that just adds values anymore.
Secondly, bare wound bonus only applies if there is no potential wound
protection from any source, as expected. But it comes last in the
calculations.
Thirdly, wound protection is applied to the injury roll last, after
wound bonuses from the attack, wound bonuses from other wounds and wound
bonuses from a disabled limb are applied. This does not include serial
wound bonuses, which are determined outside of this proc.
Wound protection comes from two sources. Clothing and limb wound
resistance. Your chest and head have an amount of wound resistance so
long as they are not mangled in any fashion. Being mangled means having
either a hairline fracture or a weeping avulsion wound.
Wound protection reduces the final injury roll by a percentage. Say our
roll is 50, and we have effectively 50% wound protection. The final roll
would be 25.
### ~~Wound Armor on Clothing~~ Reverted
~~Most clothing have had their wound armor values changed. As a loose
rule, I used the highest of melee or bomb armor, except where that value
was 100, in which case I used the lowest instead. I'm basing this
decision on how embeds are calculated, which is attack type agnostic.~~
~~Some armor have inconsistent values because they are alternative
armors to an existing armor type or are hyperspecialized armor.
Ablative, bulletproof and security vests all share a value of 35,
despite the former two not having decent melee or bomb armor.~~
~~Some clothing missing wound armor that should have had them now have
wound armor.~~
~~This may need a bit of scrutiny in case one or two seem weirdly high.
Some have maybe become too low. Its a bit hard to say.~~
### The ``bare_wound_bonus`` variable
I changed it to ``exposed_wound_bonus`` to better represent when it
applies. You can be naked and still not be affected by this bonus if the
limb has wound resistance.
## Why It's Good For The Game
I'm not promising anything with this PR, but this is an attempt to
sanity check the values on wounds so that we're not seeing what the data
that determined the removal of beheading presented. An extreme
over-representation of tier 3 wounds. ~~And, from that, maybe I can
argue for beheadings coming back. That's my goal. I think beheadings
happened so much because the numbers were in need of work.~~ Well okay I
just wanna make wounds a bit more workable actually more than I want
beheadings.
Why is it that tier 3 wounds were so over-represented? Because wounds
will often force more severe wounds of other types by merit of any
wounds existing at all on a limb. Having **_a_** wound makes you more
wound prone for any kind of wound, and not just making you more likely
to suffer a more severe type of the same wound.
The threshold mechanic was intended to simulate making a wound worse,
but oddly just made a limb broadly more prone to getting worse from any
kind of attack to such a degree that future wound rolls of different
types were often going to start at the threshold necessary to be a tier
3 wound.
Dismemberment, mind you, requires you to suffer a flesh wound while you
have a bone wound of tier 2 or higher (with tier 3 giving a bonus to
this). You can do this readily via just a sharp weapon, because having a
mangled limb causes the wound to turn into a bone wound. Technically,
this is meant to be less likely as the effective damage for this wound
is halved. But the wound bonus from having a flesh wound was almost
always significant enough to kick your new bone wound up to a tier 3.
In other words; its not surprising that you saw so many beheadings,
because the system wanted to behead you as fast as it possibly can
thanks to all these escalating values.
Wound armor was only applied as a flat reduction on the roll. The
average for wound armor was 10. After receiving a single wound, you can
expect wound rolls to reach upwards of 100, even if the actual damage
roll was not particularly high, due to wound stacking bonuses form being
wounded.
This meant that wounds, if they happened, came thick and fast after the
first, regardless of what your protection might be to wounds. It was
just a matter of getting past the initial bump.
This is why effects that forced wounds were so powerful. They basically
made a given limb more prone to taking a wound without having to deal
with the protection problem first.
Finally, this is just a broad flaw with the system that is not its
fault. It is actually a problem that isn't a problem. Most people in the
game are not wearing helmets that protect their head. So most people are
going to suffer from a higher proclivity of being wounded if people are
aiming for the head. There is this...kind of cargo cult belief that
aiming for the head means you do more damage, or can stun someone if
you're lucky or what have you. It's entirely nonsense, but it has a
grain of truth in that people rarely wear, or even have access too,
headwear that provides wound protection or any protection at all. People
have jumpsuits, which are universally wound protected, but that isn't
true of the head. Look, the point is, they're not aiming at the head
because it is usually less armored, its for other reasons but it just so
happens to become true due to wounds and how wounds roll their type.
To soften this issue, I've decided to treat wound resistance as armor
until the limb suffers a tier 3 wound. This way, hits to the head MAY
not necessarily escalate to tier 3 instantly as they would on live even
from relatively low power weapons. Some weapons have very low force, but
have extreme bare wound bonuses. This should be less likely after this
change. I doubt this will necessarily make high damage high wound
weapons like energy swords any less prone to cutting you clean open, but
it might thanks to the reduction to contributed damage to the injury
roll. The system is now _a bit more random_.
## Changelog
🆑
balance: Wounds do not make you as vulnerable to suffering wounds of all
types as before. Instead, wounds make you more vulnerable to suffering
worse versions of themselves as a priority.
balance: Wound armor is now more impactful when protecting you from
wounds when you have already been wounded.
balance: Your head and chest are more difficult to wound until they have
been mangled; either from suffering from a weeping avulsion or a
hairline fracture.
code: Changed the variable for bare_wound_bonus to exposed_wound_bonus
to better explain what that variable is doing.
/🆑
---------
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
## About The Pull Request
Alleviates #91603
As in it does not fix it because i have not been able to reproduce it.
It now checks for invalid values and defaults to `amount`(which is 1)
during `Initialize()` and not null so we don't have to pass the number
`1` when creating a single sheet.
A stack trace is thrown for <= 0 sheet amounts so we can debug & fix
stuff
## Changelog
🆑
code: stacks error on invalid amounts, removed manual passing of number
`1` when creating a single stack in many cases
/🆑
## About The Pull Request
Please read the contents of my HackMD to see what my PR does, as well as
further elaboration on the reagents and why it's good for the game
overall.
https://hackmd.io/@MGO/B1YX80nMT
## Contents
Introducing new inverse reagents for existing narcotics and other
reagents! This push includes...
**Naloxone** : New medicine! Requires equal parts Morphine, Hydrogen
Peroxide, Bromine and Ethanol to be made. Opioid antagonist that purges
drowsiness and narcotics from the patient, restores breath loss and
accelerates addiction recovery. Consumption Rate at 0.2u.

**Permonid** : Inverse of Krokodil. Highly potent sedative that provides
the best painkilling effects, but is also extremely addictive. Speeds up
surgery times by 30%. Consumption Rate at 0.1u.

**Monkey Dust** : Inverse of Bath Salts. Oop aak chee aak eek chee. Eek
aak oop chee oop aak aak!! (Consumption Rate at 0.2u.)
https://github.com/user-attachments/assets/cbd5ea48-9c0f-49ca-ba59-59cd65599641
(You can also combine 50u Monkey Powder with 10u Monkey Dust to make an
angry monkey!)

**Epoetin Alfa** : Inverse of Aranesp. Synthetic medication that induces
blood regeneration, heals liver damage and synthesizes Sanguirite when
the patient is bleeding. Causes several side effects if taken for too
long. Consumption Rate at 0.25u.

(Overdose in action.)
https://github.com/user-attachments/assets/27a51a11-0e42-4000-9c96-ba10cbd9e18b
**Sadness** : Inverse of Happiness. Causes severe depressive behavior in
users, and actively purges other antidepressants. Being hugged by a
friendly person that gives good hugs will purge all Sadness unless the
user has the Bad Touch trait. Consumption Rate at 0.1u.
https://github.com/user-attachments/assets/874b0549-1d96-4f4f-ad95-65f780a68436

**Maldium** : Inverse of Baldium. Potent psychotropic that causes
intense anger within users. On end consumption, user will experience a
burst of burn damage that scales with the amount of time the user was
enraged. Consumption Rate at 0.4u.
https://github.com/user-attachments/assets/31a4700e-32b5-4855-a266-45bfde62f718
**Dulling Reagent** : Inverse of Colorful Reagent. Extremely drab
coloring pigment that is favored by corporations who wish to maximize
suffering. Forces Colorblindness trauma in consumers. Consumption Rate
at 0.4u, lowered to 0.04u if overdosing.
https://github.com/user-attachments/assets/3db461d1-26aa-4c77-ad3d-44794230b391
**Newtonium** : Inverse of Gravitum. Experimental reagent that induces
heavy gravokinetic effects on users. Consumption Rate at 1u.
https://github.com/user-attachments/assets/b20e5200-9beb-40a2-8d37-c0d44f0fb4ef
## Why It's Good For The Game
This is an effort to add more variety to the existing inverse reagent
system within chemistry. Not only should this variety serve to provide
additional options for a Chemist to experiment with, they should also
broaden the possibilities for already existing strategies.
## Changelog
:cl:MGO
add: Introduces new inverse reagents for Krokodil, Bath Salts, Aranesp,
Happiness, Baldium, Colorful Reagent and Gravitum!
add: An alternate reaction output has been added for Monkey Powder.
Instead of 1u Water, add 10u Monkey Dust to make an angry monkey!
add: Adds a medicine: Naloxone! Requires equal parts Morphine, Hydrogen
Peroxide, Bromine and Ethanol to be made. Purges opioid-class reagents,
can also help with mitigating drowsiness and breath loss. Also purges
good moodlets associated with opiates and replaces them with negative
moodlets, so don't expect your patient to be happy about losing their
high!
/🆑
## About The Pull Request
What it says on the tin.
Inflicts status effects instead of brain traumas.
Needs a large dosage (somewhere around 50 units, I don't think the code
comments are accurate about the dosage) to remove the status effect.
Having any amount of holy water in your system prevents the paintings
from inflicting its status effect on you.
## Why It's Good For The Game
So I had a little event involving these paintings, and I...vastly
underestimated just how horrifically disruptive these paintings can be
and how few options you have to deal with them adequately if there are a
lot of them around. They can do some serious damage.
They probably don't exactly see much use, not because of their lack of
effectiveness, but because they simply do not push the heretic closer to
victory. Most heretics ignore these kinds of 'sabotage' tools because
they're slow like that. But if someone is particularly eager to use
them, they might make enough of a mess to, say, force a shuttle call
early as the station rusts mysteriously all around them and everyone
starts to crater in sanity. (moon heretics would love that if they
weren't speedrunning ascension)
So, traumas suck and also resolving the trauma does not necessarily give
you the means to stop getting more traumas or deal with future traumas
while dealing with the paintings, Holy water is already a tool for
dealing with magical stuff, but in of itself it is not necessarily
immediately sourcable unless there is a chaplain, or botany or cargo has
been on ball. So it still reliant on someone else to help combat it than
just some random joe shmoe with a wirecutter. I think this is mostly net
neutral balance wise enough to be considered 'quality of life' if only
that it makes engagement better while still being largely as impactful
as it ever was due to the fact people will likely still suffer/inflict
damage on the station from coming into contact with the painting, as
well as the removal still taking an amount of time and a large dosage of
holy water, all the while the effect still takes place.
## Changelog
🆑
qol: Eldritch paintings no longer inflict brain traumas on you that need
surgery to remove. Instead, they inflict a status effect that can be
protected from and removed using large doses of holy water.
/🆑
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
## About The Pull Request
Because it does nothing.
The only reagents that had this flag were inverse reagents & some
medicines but those reagents already had their `inverse_chem` set to
null meaning they are incapable of splitting even without this flag.
From the comments it said the flag had something to do with stomachs
constantly calling `on_mob_add()` which would split the reagent twice
however upon inspecting stomach code no such thing exists so it didn't
create any problems.
Once the reagent enters the mob it splits just once because purity is
preserved when transferring the reagent to different organs so this flag
never had a chance to do anything
Less code to worry about
## Changelog
🆑
code: removed `REAGENT_NOSPLIT` flag
/🆑
## About The Pull Request
Changeling Adrenaline was part of a big to-do I did to reagents back in
yonder ancient history to make stamina-restoring drugs actually restore
stamina in a way that impacted gameplay. At the same time, there was a
lot of muck happening around how much ass changeling sucked, and someone
reworked their adrenaline ability to be a "run away fast" ability and
included completely disabling their arms as what I assume was intent to
balance it.
I think this is a stupendously poor design decision and changeling is
staggeringly worse for it. So instead, I semi-reverted it to my intent
for changeling adrenaline at the time; a very small amount of a very
powerful reagent per use of the ability. Incidentally around that time,
handling for changeling abilities being crippled by fire was also
introduced, and I adjusted this ability to not be usable while you're on
fire.
Final note: Changeling Adrenaline cannot be synthesized (and as such,
can't be rolled in botany plants)
## Why It's Good For The Game
Changeling being an inhumanly tough monstrosity that just doesn't go
down in the face of pain and fatigue seems right in their wheelhouse,
and having the ability crippled by fire plays to the intent of throwing
a molotov at a changeling being a hard counter to them.
## Changelog
🆑 Bisar
balance: Repurposed Glands is now instead Gene Stim; simply put, your
stuns are reset and you are dosed with 4 units of Changeling Adrenaline
on use. This ability cannot be used while on fire. /🆑
## About The Pull Request
Fixing more stuff because I didn't test it properly before.
## Why It's Good For The Game
It should work now. Fix#91560.
## Changelog
🆑
fix: Fixed mutation injectors.
fix: Fixed mutadone turning actual monkeys into humonkeys.
/🆑
## About The Pull Request
Fixes https://github.com/tgstation/tgstation/issues/91447
## Why It's Good For The Game
I hate this chem.
## Changelog
🆑
fix: Cryogelidia can no longer freeze things arbitrarily forever.
/🆑
## About The Pull Request
- Fixes#90884, helbital and any inverse reagent that wants to rely on
`expose_mob` proc from now on
## Changelog
🆑
fix: impure chems(cryostylane below 50% purity) will now expose the mob
to their inverse chems(cryogelidia) after transfer
/🆑
## About The Pull Request
This PR aims to clean or bring up to date portions of code about dna,
the dna console and mutations. This includes taking care of or removing
some of the awful choices like the pratically useless
`datum/mutation/human` pathing, or the class variable, in favor of using
sources to avoid potential issues with extraneous sources of a mutation.
The files changed are over a hundred just because I removed the
`datum/mutation/human` path, but the actual bulk of the code is mainly
shared between the datum/dna.dm, _mutations.dm and dna_console.dm.
## Why It's Good For The Game
Mutation shitcode is hurting my future plans for infusions a little.
Also it's a much needed refactor. Drafted 'till I'm sure it works
without issues.
## Changelog
🆑
refactor: Refactored mutation code backend. Report any issue.
/🆑
## About The Pull Request
#91054 changed decals so they no longer init reagent holders on
`Initialize`, which means these `expose_turf` reactions were runtiming
because the reagent holder didn't exist when they tried to
`add_reagent`. This rewrites their code to make sure init is handled,
but also to take advantage of the fact that there won't be existing
reagents (like in the case of ants where it does - 5). It was also
necessary to add code to increase the max volume of the reagent holder
because `lazy_init_reagents` sets max volume to `reagent_amount` instead
of 300 like the old code
## Why It's Good For The Game
Bug fix
## Changelog
🆑
fix: fixed runtimes with splashing ants and uranium onto tiles
/🆑
## About The Pull Request
This has the potential to create a lot of needless mob updates which is
not great. Now should only update a mob's clothing if it was actually
washed.
This PR
1) ensures that all wash() procs return a bitflag.
2) ensures that `wash()` proccalls which result in expensive operations
like icon updates only do so when it is necessary
## Why It's Good For The Game
Updating mob sprites is expensive, and doing it when nothing has been
changed is bad.
## Changelog
Nothing really player facing
## About The Pull Request
My original plan was to just implement materials into crafting so that
items would inherit the materials of their components, allowing for some
interesting stuff if the material flags of the item allow it. However to
my dismay crafting is a pile of old tech debt, starting from the old
`del_reqs` and `CheckParts` which still contain lines about old janky
bandaids that are no longer in use nor reachable, up to the
`customizable_reagent_holder` component which has some harddel issues
when your custom food is sliced, and items used in food recipes not
being deleted and instead stored inside the result with no purpose as
well as other inconsistencies like stack recipes that transfer materials
having counterparts in the UI that don't do that.
EDIT: Several things have come up while working on this, so I apologise
that it ended up changing over 100+ files. I managed to atomize some of
the changes, but it's a bit tedious.
EDIT: TLDR because I was told this section is too vague and there's too
much going on. This PR:
- Improves the dated crafting code (not the UI).
- replaced `atom/CheckParts` and `crafting_recipe/on_craft_completion`
with `atom/on_craft_completion`.
- Reqs used in food recipes are now deleted by default and not stored
inside the result (they did nothing).
- Renames the customizable_reagent_holder comp and improves it (No
harddels/ref issues).
- Adds a unit test that tries to craft all recipes to see what's wrong
(it skips some of the much more specific reqs for now).
- In the unit test is also the code to make sure materials of the
crafted item and a non-crafted item of the same type are roughly the
same, so far only applied to food.
- Some mild material/food refactoring around the fact that food item
code has been changed to support materials.
## Why It's Good For The Game
Improving the backbone of the crafting system. Also materials and food
code.
## Changelog
🆑
refactor: Refactored crafting backend. Report possible pesky bugs.
balance: the MEAT backpack (from the MEAT cargo pack) may be a smidge
different because of code standardization.
/🆑
## About The Pull Request
Refactors most of blood handling code untouched by #90593 and completely
rewrites all blood decals, components and reagents.
- Blood types now have behavioral flags which allow them to control
where they leave decals/DNA/viruses. Oil no longer transfers DNA and
viruses with it, while podpeople water-blood doesn't leave visible
decals on turfs and items, but still can be picked up by DNA scanners.
- Multiple blood types have received unique handling - liquid
electricity blood now glows in the dark, oil trails are flammable and
lube ones are slippery. Oil blood can be restored with fuel, lube with
silicon and slime with stable plasma (as normal plasma already passively
regenerates their blood), instead of everything using iron. Saline
solution only supplements on iron-based blood and won't do anything to
help with bloodloss for species who rely on different blood types.
(Roundstart this applies only to Ethereals)
- All blood logic has been moved away from the blood reagent itself into
a blood element that is assigned to the blood reagent by default, and to
any reagent that's drawn from a mob as their "blood" (in
``transfer_blood_to``). This means that blood you draw from lizards will
be green and have lizard's blood description instead of mentioning red
blood cells, Ethereal "blood" will actually contain their DNA and genes,
etc.
- Refactored all blood decals. Blood states are no more, everything is
now handled via blood DNA. Credits to MrMelbert and Maplestation, as a
significant amount of code has been taken from
https://github.com/MrMelbert/MapleStationCode/pull/436 and many of his
followup PRs. Oil and xenomorph splatters are now subtypes of blood,
blood drying is now animated, blood trails now curve and can be
diagonal.
- Rewrote bloodysoles and bloody_spreader components, credits to Melbert
again for the former, while latter now makes more sense with its
interactions. Bloody soles no longer share blood DNA with your hands.
- Ported Melbert's bloody footprint sprites and bot-blood-spreading
functionality.
- Removed all species-side reagent interactions, instead they're handled
by said species' livers. (This previously included exotic blood
handling, thus the removal)
- Slightly optimized human rendering by removing inbetween overlay
holders for clothing when they're not needed.
- Blood-transmitted diseases will now get added to many more decals than
before.
- Cleaned up and partially refactored replica pods, fixed an issue where
monkeys/manipulators were unable to harvest mindless pods.
- Exotic bloodtype on species now automatically assigns their blood
reagent, without the need to assign them separately.
- Clown mobs now bleed (with colorful reagent instead of blood during
april fools), and so do vatbeasts (lizard blood)
- Implemented generic procs for handling bleeding checks, all sorts of
scanners now also correctly call your blood for what it is.
- Podpeople's guts are now lime-green like their organs, instead of
being weirdly greyish like their water-blood. (Their bleeding overlays
are still grey, as they're bleeding water)
- Slimepeople now can bleed. Their jelly is pale purple in color, but
their wound overlays copy their body color.
- Injecting/spraying/splashing/etc mob with a reagent preserves its
data, so you could theoretically recycle fine wines from someone's
bloodstream
- Fixed burdened chaplain's sect never actually giving a blessing when
applying effects, and giving a blessing when nothing can be healed.
Inverted check strikes again.
- Closes#91039
#### Examples
A lot of blood here has dried, visually the blood colors are almost
exactly the same as before either of the blood refactors.


## About The Pull Request
Prettier (an auto formatter) is set to only run within the tgui folder
currently. This removes that limitation, allowing it to automatically
format all supported files in the repo (.js, .html, .yml
[etc](https://prettier.io/docs/))
I made a few exceptions for bundled and generated files
## Why It's Good For The Game
I'm of the opinion that code should look uniform and am lazy enough to
want CTRL-S to format files without having to think beyond that
## Changelog
## About The Pull Request
wee woo wee woo code improvement aaaa
beats down the last loyal remenants of delta_time in reagent metabolism
code.
it's supposed to be seconds per tick damnit
## About The Pull Request
Neruwhine can no longer roll Cosmic Neural Pattern or its stable
subtype.
Fixed the planetary gravity damage status effect not clearing itself
when you lose the voided trauma.
Closes#90702
## Why It's Good For The Game
Cosmic Neural Pattern is a voidwalker exclusive and is more of a magical
status effect than an actual brain trauma, so having it be temporarily
rollable is a bit stupid.
## Changelog
🆑
balance: Neruwhine can no longer roll voidwalker traumas.
fix: Fixed the planetary gravity damage status effect not clearing
itself when you lose the voided trauma.
/🆑
<!-- 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
Adds the unused catalyst types into the game. These are:
pH catalyst, now called Ionic Modulator, which reduces the change in pH
of a solution as it reacts. If the purity is too low it can even flip
the other way and start making it change in the opposite direction.
Temperature catalyst, now called Thermic Modulator, which reduces the
change in temperature as a solution reacts. If you're too impure with
this one it can actually make an exothermic reaction endothermic and
visa versa.
Note: I think the purity reversal behavior is weird but I didn't write
the code for the catalyst effects themselves, so I'm keeping it as is
unless asked to change it.
Adds a new competitive reaction, similar to Tempomyocin formation.
(Don't tell anyone but I actually just copied and altered tempomyocin
formation to make this one.) Said reaction is between Catalysium T, and
Catalysium P, which react into thermic and ionic modulator respectively.
(T is for Temperature and P is for pH.) P is the harder one here, given
that pH management is usually a bigger problem than temperature
management, but if you're having trouble making P, you can add gold to
the competitive reaction to speed up P formation, same as how you add
bluespace dust to Prefactor A/B to make Tempomyocin faster.
TESTING IMAGES:

50u sodium 50u chlorine without ionic modulator
50u sodium 50u chlorine with 10u 100% pure ionic modulator

competition functioning:

(not shown: the 20u gold i put in since it got consumed to boost P
formation)
<!-- 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
1. The code for the catalysts was already there and lying unused for a
long time, despite being perfectly servicable.
2. It's a way for less experienced players to slightly reduce the
difficulty of chemistry, at the expense of time and beaker space.
3. It will create new and interesting gameplay for more experienced
chemists, maybe reducing the one-and-done reliance on copy-pasted
chem-factories that (at least to me) seems pretty common among even
highly skilled players.
4. We get to actually use the competitive reaction system for something.
5. (Someone told me that palladium synthate catalyst was lame and I made
this out of curiosity and/or spite)
<!-- 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
<!-- 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 its 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. -->
🆑
add: New chemistry catalysts! Combine phenol, unstable mutagen, and
plasma in a 1:3:1 competitive reaction, similar to tempomyocin and
purity tester. Adding stable plasma to either of the two precursors will
create the new catalysts, one regulating pH, and the other temperature.
If you're having trouble getting the one you want, you can optionally
add gold to the beaker as the competitive reaction progresses, which
will cause the pH precursor to form more quickly.
/🆑
<!-- 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. -->
## About The Pull Request
Adds 2u sanguarite (Coagulant) to atropine medipens (The ones provided
to nuclear operatives and in the advanced medkit)
## Why It's Good For The Game
Every crew member who isnt a syndicate operative spawns with a medipen
with coagulant. It doesn't make sense why syndicate operatives somehow
have worse medipens provided to them in their survival kits, while being
basically a direct upgrade otherwise.
In my experience, bleeds tend to be an absolute killer of nukies.
Letting nukies deal with a single bleed by default puts them on-par with
any other human in this regard, and reinforces the belief that 'the
medipen in the survival box helps with bleeds'.
## Changelog
🆑
add: Adds 2u sanguarite to atropens
/🆑
## About The Pull Request
a player requested i add this, i think its harmless enough to add, but u
can now swab snails, or mapped in watering cans in botany for snail
samples
## Why It's Good For The Game
adds a few more beneficial creatures to the cytology pool, these ones
specifically being helpful for botanists.
## Changelog
🆑
add: snails are now growable from cytology. u can swab snails or
watering cans for samples
/🆑
## About The Pull Request
Using the impressa coffeemaker, I noticed its coffee cups take multiple
clicks to put the lid back on.
Looking into it, this seemed to be because the empty coffee cups don't
start with `lid_open = TRUE`.
This fixes that.
We also add context for adding/removing the lid while we're at it.
## Why It's Good For The Game
Less jank.
Screentips good.
## Changelog
🆑
fix: Lidless coffee cups from the impressa coffeemaker or somesuch no
longer take two clicks to put a lid on them.
qol: Added screentips for toggling coffee cup lids.
/🆑
## About The Pull Request
This is a PR I made a while ago for downstreams, and it has become my
favorite negative quirk to play with. It grants your character a
slightly more forgiving version of the narcolepsy trauma, as it has
lower odds of making you snooze plus a bonus list of reagents that will
suppress symptoms (`modafinil` and `synaptizine` for now), and cares
about if you are caffeinated, (have `trait_simulated`).
The rate at which you fall asleep/get drowsy is appropriate in my
opinion, though I could understand if players would want it to be more
common.

## Why It's Good For The Game
Really fun quirk to play with, adds more risk to your gameplay. Use your
over-the-counter stimulants to try and win from a stun baton.
## Changelog
🆑
add: Adds Narcolepsy as a -8 negative quirk!
refactor: Slightly adjusts the logic of the narcolepsy trauma
balance: The narcolepsy trauma its symptoms can now be softened by being
caffeinated, and modafinil or synaptizine suppress it entirely
/🆑
## About The Pull Request
Follow up to #90700 because I had some ideas to expand upon it after the
fact
- Removes some now dead code in the sink. It can't reach these anymore
AFAIK.
- Makes use of the new blood helper.
- You can use spray bottles directly on rags and it will transfer
reagents from the spray to the rag.
- Rags with space cleaner in them will be more effective at cleaning
messes - the cleaner will be consumed to avoid bloodying the rag
entirely, allowing you to clean longer without needing to refresh the
rag.
- This is slightly more effective than just using space cleaner spray
alone in some situations (cleaning up footsteps), but slightly less
effective in others (full on pools of blood).
- Other "cleaning" reagents like Water will also have this effect, but
drastically weaker than space cleaner.
## Why It's Good For The Game
Being able to combine cleaning types is (kind of) the pinnacle of
janitor gameplay. I'm sure every janitor has had the epiphany that a mop
bucket full of space cleaner could be awesome, for example.
So thought "how do people ACTUALLY use rags? with a cleaning agent" - I
figured people spritzing a rag before wiping stuff down would pretty
easily transfer to SS13
## Changelog
🆑 Melbert
add: Adding Space Cleaner or Water to a rag will consume it as you clean
to keep the rag fresher for longer.
add: You can spray a rag with a spray bottle directly to transfer
reagents over.
/🆑