## About The Pull Request
Heavily refactors wounds AGAIN.
The primary thing this PR does is completely change how wounds are
generated and added - while the normal "hit a guy til they bleed" stuff
works about the same, asking for a specific type of wound, say, like how
vending machines try to apply a compound fracture sometimes, isnt going
to work if we ever get any non-organic wounds, which the previous
refactor allowed.
With this PR, however...
* You can now ask for a specific type of wound via
get_corresponding_wound_type(), which takes wound types, a limb, wound
series, etc. and will try to give you a wound fitting those
specifications - but also, a wound that can be applied to a limb.
* This will allow for a vending machine to apply a compound fracture to
a human, but a collapsed superstructure (assuming my synth wounds go in)
to a robot
There are now new "series types" and "wound specific types" that allow
us to designate what series are "mainline" and randomly generatable, and
what are "alternate types" and must be generated manually - you can see
the documentation in wounds.dm.
The behavior of limping and interaction delays has been abstracted to
datum/wound from bone wounds to allow just, general ease of development
Pregen data now allows for series-specific wound penalties. Example: You
could set a burn wound's series wound penalty to 40, which would make
wound progression in the burn category easier - but it would not make it
any easier to get a slashing wound. As it stands wound penalties are for
wounds globally
Scar files are now picked in a "priority" list, where the wound checks
to see if the limb has a biostate before moving down in said list.
Example: Wounds will check for flesh first, if it finds it - it will use
the flesh scar list. Failing that, they then check bone - if it uses
that, it will use the bone scar list. This allows for significantly more
modular scars that dont even need much proc editing when a new wound
type is added
Misc changes: most initial() usage has been replaced by singleton
datums, wound_type is now wound_types and thus wounds can accept
multiple wound types, wounds can now accept multiple tool behaviors for
treatment, wounds now have a picking weight so we can make certain
wounds rarer flatly,
This PR also allows for wounds to override lower severity wounds on
generation, allowing eswords to jump to avulsions - but in spirit of
refactoring, this has been disabled by default (see pregen data's
competition_mode var).
## Why It's Good For The Game
Code quality is good!
Also, all the changes above allow wounds to be a MUCH more modular
system, which is one of its biggest problems right now - everything is
kinda hardcoded and static, making creative work within wounds harder to
do.
## Changelog
🆑
refactor: Refactored wounds yet again
fix: Wounds are now picked from the most severe down again, meaning
eswords can jump to avulsions
fix: Scar descs are now properly applied
/🆑
## About The Pull Request
Title summarizes all.
## Why It's Good For The Game
<details>

</details>
Prevents this nightmare on a comms console during an event with
particularly high centcom announcement traffic.
No, don't come at me with "it's soul", it's just highly annoying to deal
with and having the option to prevent it is better. If you leave a
downvote and tell me in the comments that I'm "taking" soul out of the
game then I will come find you and actually take your soul out of your
body.
## Changelog
🆑
admin: The "Create Command Report" verb now has the option to not print
report papers at communications consoles.
/🆑
## About The Pull Request
Fixes#73417
Implements a check for exploration drones to make sure that containers
inside the storage don't have blacklisted items in them before launch.
Now you won't able to hide beacons and living beings inside bluespace
body bags.
Also adds exploration drone launchers to cargo shuttle's blacklist to
prevent potential shenanigans in the future.
[I suck at explaining, so here's a poorly made video that shows how to
do this](https://www.youtube.com/watch?v=U45ifQGQxzI)
~also, why does it take 10 hours to get the "Time Waster" achievement.
how did 6 people even get it??~
## Why It's Good For The Game
centcom is scary and exploits are bad
## Changelog
🆑
fix: Exploration drones can't be used to reach Centcom anymore.
/🆑
I went through the code and tried to find all of the remaining places we
forgot to update the arguments passed into `item/food/Initialize` after
more arguments were added to it, because there were a couple and they
caused things to stop working.
Most notably, golems were unable to eat anything because nothing would
correctly spawn "golem food".
_Additionally_ we were using a bunch of named arguments in new whenever
crafting or cooking food. This runtimed, causing the food not to init
properly.
_On top of that_ a late code review on a recent PR processed a list into
a string_assoc_list twice causing it to become null.
Finally, we were trying to check the food preferences of examining
ghosts or dogs or other non-human mobs. We shouldn't do that.
I also added a unit test for moth and golem food in the hopes that we'll
notice them breaking.
## About The Pull Request
This fixes the double-period at the end of brainwashing deadchat
broadcasts. If you know what I'm talking about, you know, but I didn't
want to go back to get screenshots to show what I mean.
The broadcast would automatically put a period at the end of the
compiled message, and the default brainwashing directives already came
with a period at the end. Not content with removing the period at the
end of the directives or the automatic period, I made something that
works both ways.
This also adds some more default directives (the ones given by the
brainwash surgery objective). These objectives aren't too direct or
commanding but still open up opportunities to run with the prompt.
## Why It's Good For The Game
The double punctuation was really annoying me.
The new directives are meant to give variety to the same boring-ish 6
directives by turning 6 into 12. Hopefully they're flexible enough for
more creative spessmen to work with.
## Changelog
🆑
qol: adds some more traitor objective brainwashing default objectives.
spellcheck: fixes the double-punctuation on traitor objective
brainwashing broadcasts.
spellcheck: brainwashing deadchat broadcasts will now auto-punctuate.
/🆑
## About The Pull Request
Due to the size of the Martian food update, it was inevitable that
there'd be a few hiccups with food types. I reviewed everything and
updated everything to the best of my ability.
I'd prefer it if EOB himself gave everything a glance over in approval
before any potential merging.
## Why It's Good For The Game
I said so.
## Changelog
🆑
fix: Corrects various food types from the martian food expansion
/🆑
## About The Pull Request
No longer must you stand up when sending messages over the PDA! Do it
all comfortably, laying down in your bed!
Computers are automatically inaccessible when resting, so this only
affects PDA's, TABLETS, and LAPTOPS
## Why It's Good For The Game
Why wouldn't I be able to use a PDA laying down, heck everyone uses
their phone laying on their back, using your PDA like that only makes
sense
## Changelog
🆑
fix: The messenger app can now be used when laying down.
/🆑
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
## About The Pull Request
Closes#77592
I agree that it's silly that robots shouldn't be able to yawn, but I
think that instead of removing the potential for this interaction to
occur outright (which can be done with moving around a check), it should
be embraced instead.
## Why It's Good For The Game

Robots fake-yawning to make them feel more realistic to the workers of
the station (and if they aren't station based, their once-creators
(which is fine because we removed swarmers)) and not being exempt from a
really cutesy niche interaction greatly appeals to me.
## Changelog
🆑
add: Ever see a robot yawn? Don't worry, it makes sense now.
/🆑
## About The Pull Request
Changes the supermatter radio alert to be less spammy while the crystal
is healing during recovery.
If the crystal is in a state of fast healing (defined as 3% per minute,
about half of a crystal's 6%/min recovery at 293K) we're in a situation
where the engineers have prevented the delam and the crystal is
returning to normal.
In these situations the Common radio channel doesn't need to be reminded
every 60 seconds that the crystal is more than fine and on its way back
to 100, a cooldown is started for the Common channel alerts. Engineers
continue to get the integrity update every 60 seconds as usual on their
departmental channel.
The cooldown is only applicable to when the crystal is healing, if
integrity starts dropping again below the emergency point Common will be
alerted.
The command span is added for the final countdown only (from
https://github.com/tgstation/tgstation/pull/77996)
## Why It's Good For The Game
The SM alerting on Common every 60 seconds as it heals leads to alarm
fatigue and you tune it out. It should only be alerting Common when
there is imminent danger to the crew or that the danger has passed.
## Changelog
🆑 LT3
qol: Supermatter common channel alerts are less frequent if the
crystal's integrity is rising rapidly
/🆑
## About The Pull Request
Cauteries now have 'heat', like lighters, welders, etc.
You can smoke with a space helmet as long as you have internals on.
## Why It's Good For The Game
> Cauteries now have 'heat', like lighters, welders, etc.
Seems like an oversight. If an esword can do it so can a implement meant
to sear wounds shut.
> You can smoke with a space helmet as long as you have internals on.
Space smoking is awesome.
## Changelog
🆑
fix: Cauteries now have 'heat', like lighters, welders, etc.
qol: You can smoke with a space helmet as long as you have internals on.
/🆑
## About The Pull Request
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->
Gas mixer output now accurate to set ratio regardless of mismatched
input temperatures
Input

Mixer

Output

## Why It's Good For The Game
We can start by looking at what gas mixers are actually good for. First
we have air supply mix and burn mixes, these are the main uses for a
mixer, but the resulting mix becomes inaccurate if one of your gas
supply tanks is cooler or warmer than another (this often happens when
someone adds a bunch of cold n2 or o2 to wastes). A gas mix for the HFR
or crystallizer, usually these are set up with a constant supply of
gasses with temperature of an input often varying, eventually clogging
if the mix becomes inaccurate. Finally we have bomb and internal mixes,
I would argue that this is the most important reason to keep things the
way they are, but are actually currently the easiest to manage. All of
these uses require molar precision, something the gas mixer doesn't
really provide on its own, making it almost useless if two inputs do not
match in temperature.
In my experience, in order to mix gasses accurately, you must do one of
three things. First, you must use a combination of heat gates and
thermomachines to equalize the temperatures before mixing. Second, you
can combine the mixtures into one to equalize the temperature, filter
the gasses apart, and mix again with your desired ratios. Or the third
option, you could create a custom calculator to take in your desired
ratio and the current temperatures of your input and plug the resulting
ratio into the mixer.
The way gas mixers work currently serves no real purpose outside of
tripping up new players and providing 'busy work' for the experienced
ones. Many newer players expect gas mixers to provide the set ratio to
the output, not knowing that the temperatures on the input mixes must
match. It requires a lot of additional effort and knowledge to
accurately mix gasses, something that should just be provided by the
tool itself.
This change is good because it helps makes atmos a bit simpler and more
intuitive. Unfortunately we will lose complexity in setups and make
atmos a bit easier, but maybe these are good things
## Changelog
🆑
balance: gas mixer output now accurate to set ratio regardless of input
temperatures
/🆑
## About The Pull Request


This PR adds the ability for solo antagonists (Traitor, Changeling,
Heretic, Wizard, Malfunctioning AI, and Ninja) to "write-in" their own
objectives in place of the ones the game gave them.
For traitors this is located on the uplink (though the button is not
present if you aren't the owner of the uplink, thieves can't give you a
troll objective) and for everyone else it is on the antagonist
information panel.
Pressing this button will replace all of your objectives _except_ ones
like "escape alive" or "survive" or "die a glorious death".
By default a player can only do this once per round, but the Traitor
Panel admin tool contains a button which can display the prompt again.
Custom-entered objectives are not mechanically tracked in any way and do
not report success or failure on the round end screen, whether they were
successful or not is up to you the audience. Resultingly, doing this
will make you ineligible for getting the hardcore random points from
completing your objectives.
Admins are capable of using this button to show the prompt to _any_
antagonist, including team antagonists, but do so at their own risk. A
single cultist changing their objective to something else only updates
them, not their team.
Admins can also choose whether or not it replaces existing objectives or
just adds a new one entered by the player.
When someone sets a new objective, it informs any active administrators
of their choice and provides linked buttons to send them a syndicate
radio message or immediately smite them, because unfortunately our
players cannot always be trusted with arbitrary text entry.
I _didn't_ make this a system which requires approval because I don't
think admins _want_ that level of micromanagement, although plausibly if
it is thought to be a good idea I could add a time delay and reject
button similar to the "rename the station" charter item.
Heretics work slightly differently and have an "Are you sure?"
confirmation other antagonists lack.
This is because Heretic objectives are directly tied to ascension, thus
by replacing the objectives you are locking yourself out from being able
to do it.
I don't _necessarily_ think this is a terrible thing, because "try to
ascend" _is_ the default objective. There's no point entering a new one
if that is what you want to do anyway.
While I was in here I gave Ninjas a very rudimentary custom antagonist
panel, because they didn't have one.
I also made their C4 display where it can be detonated on examine, in
case you no longer have the relevant objective to reference.
<details>
<summary>Other previews</summary>





</details>
## Why It's Good For The Game
It's a reasonably frequent refrain that "Objectives are just guidelines"
and that more interesting players should strive to ignore them and do
something else, I would hope this would encourage that kind of
behaviour.
If you _are_ going off and doing your own thing, now other players can
actually see what it was that you were trying to do when the round ends
(and judge you based on whether you actually did it).
## Changelog
🆑
add: Traitors, Changelings, Heretics, Wizards, Malfunctioning AIs, and
Ninjas can now all reject their original objectives and provide one of
their own in its place. A Heretic doing this will no longer be able to
ascend.
add: "Custom" objectives which aren't mechanically tracked will no
longer report success or failure upon round end.
qol: Space Ninja spider charges will now display where they can be
detonated when examined, if you are a ninja.
/🆑
## About The Pull Request
I've converted the gags_recolorable component into an element (it has no
var of its own) and the glow shoes icons to greyscale, added emissive
icon states for the shoes, both for its own sprite or when worn, and the
ability to recolor them with a spraycan (tbh a lot of clothing should be
recolorable with a spraycan in general but that's beyond the scope of
this PR)
Oh yeah, if you examine an item with the gags_recolorable element twice,
it now tells you can use a spraycan to recolor it.
## Why It's Good For The Game
They are called glow shoes yet don't glow, and the supposed glowing
stripes only come in a single flavor of blue. Truly the definition of
lame.
Overall, it looks as goofy as ever: I didn't put much effort into the
grayscale icons beyond the necessary:

## Changelog
🆑
image: The glow shoes from the ClothesMate now actually glow and can be
recolored, even with a spraycan.
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
## About The Pull Request
This PR does many things and I expect to be asked to atomize some stuff.
### Oldstation Additions
Oldstation now has their own research server, generating their own
points. To help alleviate major concerns, they have a few stuff to help
with this:
- They now have a pre-built operating computer
- They now have an Autopsy scanner
- They now have access to Experimental Dissection
Experimental Dissection is the old dissection, giving research points in
the form of paper notes on completion. They must be turned in to the RND
server (only works on the Oldstation one, so you can't abuse this) for
points. This was an idea I've had for some time, as Oldstation is used
somewhat as a representation of how ss13 used to be (through its use of
directional windows (before they got removed, but I'd like to bring them
back), old IDs, RTGs, and old engines before they got removed from the
game fully)
Considering there are 11 alien mobs in Oldstation, there is 27.5k
research points to get from alien corpses, enough to bring them up to
speed with whatever they wish to do. This is their 'alternative' for
experiments (which they can still do if they want, but it is very hard
to do, outside of dissection which is needed for the node).
This surgery isn't repeatable, isn't upgradable, and isn't removed by
being healed. It is not mutually exclusive with autopsy (so you can't
ruin yourself doing the wrong surgery).
### Other stuff
- Ninjas now drain RND points from the server they drain from, rather
than always hitting science
- Syncing machines to research roundstart is now a macro, and now
immediately syncs to a server on your Z-level. Machines will
automatically connect to the Science servers if none else are available.
### non-player facing
- Science, Admin, and Oldstation techwebs are now no longer vars on
research, but stored in research's list of techwebs.
- ``get_available_servers`` and ``find_valid_servers`` are now procs on
the research subsystem, rather than the experisci component.
- Oldstation code has been split into separate files.
## Why It's Good For The Game
Oldstation is one of my favorite ruins, but it is also one of the
largest complaints for RND (along with Golems) because they use the
station's Science nodes & points (I recently tried de-hardcoding Science
stuff to help prepare for this, but I didn't get everything in advance).
The complaint stems from these ghost roles, who are meant to be a fun
activity to do while waiting for the next round, using the station's
research points for their own stuff, completely untrackable unless
someone goes out of their way to grief a ghost spawn just for using
points to get things they need. These roles make their own servers to
drain the station, and I find that unfun and quite boring for everyone-
it's also not very flavorful, why would Charliestation know of the
station's RND to take advantage of it?
This hopes to fix those issues, make Charliestation more worthwhile, and
more flavorful.
## Changelog
🆑
fix: Getting a node researched now properly makes it no longer hidden.
fix: Ninjas draining RD servers now drains it from the connected
techweb, rather than sniping Science.
balance: Machines will first try to connect to a techweb with servers on
their z-level, with the Science techweb remaining as fallback.
add: Oldstation RND, comes with their own Techweb and special surgery to
gain research points through dissecting Xenomorphs.
/🆑
## About The Pull Request
Hey there,
There were more than a few times (like in cinematic code) where we might
need to accurately know the source of what's adding this trait (or have
multiple sources for the whole 'we don't want this mob to do shit while
we transform this mob'), so in order to rectify this potential issue,
let's refactor it into a trait.
## Why It's Good For The Game
Some code already declared that there might be issues with this being a
boolean var (with no way of knowing _why_ we don't want this mob to not
transform (or not do anything idk). Let's remove those comments and any
future doubt in those instances with the trait macros. Also, stuff like
`TRAIT_IMMOBILIZED` which does a similar thing in many contexts was
already a trait that was regularly added in conjunction with flipping
the variable, so we're able to flatten all that stuff into
`add_traits()` and `remove_traits()` now. nice
I also cleaned up quite a bit of code as I saw it, let me know if it
should be split out but I guarantee that if I didn't do it- no one will
for the next two years.
## Changelog
🆑
refactor: If you transform into another mob and notice bugs with
interacting with the game world, please create a bug report as this
framework was recently refactored.
/🆑
Probably fucked up somewhere, lmk
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
## About The Pull Request
When looking why meteors randomly explode sometimes, the check has it
taking damage and exploding from turfs that it should just be flying
over. This creates a typecache of turfs the meteor shouldn't deplete
health from flying over. Most commonly openspace and asteroid baseturf.
## Why It's Good For The Game
Meteor is more likely to explode when it actually hits something vs
flying into an openspace tile.
## Changelog
🆑 LT3
fix: Meteors no longer take damage from crossing certain unoccupied
turfs
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
## About The Pull Request
Gives the telescopic fishing rod its own name.
## Why It's Good For The Game
Guess why.
## Changelog
🆑
spellcheck: Corrected the name of the telescopic fishing rod to
"telescopic fishing rod" from the more generic "fishing rod"
/🆑
## About The Pull Request
What it says on the tin, adds special sprites for ethereal, plasmaman,
and regular lungs for if you use the smoker quirk.
Top is normal lungs, bottom is lungs if you use the smoker quirk

Adds some cool flavor and a visual difference between regular and smoker
lungs. Previously, smoker lungs looked identical to normal ones but had
less health and healed slower.
## Why It's Good For The Game
Details are nice, and it was weird there was no visual difference before
since realistically, smoking constantly makes your lungs very visually
different and deteriorate over time.
## Changelog
🆑
image: adds special sprites for lungs when you use the smoker quirk
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
## About The Pull Request
the burst attacks wasnt working because a cooldown in the ranged
component qwas added recently. this now moves the burst attacks option
to the component itself so even sapiant player mobs can use these burst
ranged attacks
## Why It's Good For The Game
fix basic mobs ranged burst attacks
## Changelog
🆑
fix: basic mobs can now use ranged burst attacks
/🆑
Acts as a continuation of PR #77149 for boss music functionality and
implements a BDM and demonic frost miner boss music theme.
More music is good, but I do have some gripes with my own PR. This
particular track relies on instrumentation that when compressed just
doesn't sound as good, and the in-game version is noticeably less
enjoyable that the high quality version. I wish I could help the track
out more, but as is it's already at 811 kb which is barely in line with
file requirements, so i just can't justify bloating the audio file sizes
to make it sound better. You notice this kind of problem a lot with the
higher runtime music and background tracks. It just feels a bit more
clunky than hierophant, but what are you gonna do right?
## About The Pull Request
Resolves#77973
Due to a pair of oversights, snow legions erroneously drop two corpses
when killed, and both of these corpses use the spawnlists for Lavaland
legions. The duplicate has been removed, and the snow legion corpse
spawner is no longer a subtype of the regular one - which was causing
the issue. Now the new corpses will actually spawn.
## Why It's Good For The Game
Makes #76898 actually work.
## Changelog
🆑
fix: Snow legions now drop only one corpse, and no longer drop Lavaland
corpses.
/🆑
## About The Pull Request
Resolves#78063
The Foodening refactored grinding and juicing in the reagent grinder,
but there were a few mistakes along the way. Most notably, items that
gave extra reagents when ground were not doing that (such as peptides in
livers) due to an error in adding those reagents. This error has been
corrected.
I've also fixed the code for juicing, which was erroneously passing a
beaker as its own reagents datum, though I couldn't tell if this
actually had any negative effects. Somehow. Better safe than sorry.
## Why It's Good For The Game
It's good to get everything you're supposed to get when you grind stuff.
The main source of peptides being inadvertently removed also made
cytology harder, and cytology really doesn't need to be made _more_
inconvenient.
## Changelog
🆑
fix: Fixed all-in-one grinders not giving all the correct reagents when
grinding.
/🆑
## About The Pull Request
Transforms the minebots into basic robots. You can now command these
minebots to extract minerals for you. To activate automated mining mode,
simply instruct them with the command "mine." They will then proceed to
autonomously mine walls and gather ores. If you wish to make the bot
deposit all the collected ores, use the command "drop." Alternatively,
you can leave it in collection mode, and it will gather all the ores you
mine. Additionally, the bot now responds to several more commands; you
can instruct it to follow you, toggle its lights on or off by saying
"lights." In attack mode, it refrains from mining or collecting ores but
will engage in combat alongside you. If it detects you as deceased or
unconscious, it will alert all miners, request assistance, and relay
your coordinates via the mining communication channel. to power it on u
will need to feed it any type of ore first so it may listen to ur
commands
## Why It's Good For The Game
makes the non sapiant minebots more useful
## Changelog
🆑
refactor: the minebots have been refactored please report any bugs
add: minebots can now mine walls and collect ores automatically and they
will alert everyone if they find u dead
/🆑
## About The Pull Request
rewrites every gain_text of cosmic heretic and its side paths
## Why It's Good For The Game
i really didnt like reading the original and it felt phoned in. please
feel free to give suggestions about my writings in the comments
## Changelog
🆑
spellcheck: re-writes cosmic heretic lore
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: wulfenbach-jpg <53832839+wulfenbach-jpg@users.noreply.github.com>
## About The Pull Request
'medical beds' in the game were just varedited survival pod beds. This
creates a proper medical bed subtype plus its own sprite for regular and
roller beds. Cleans up little bits of the bed code and adds context
helpers.
- Medical/roller bed is now constructable with titanium and plastic
after research
- Bed will face the correct direction when pulled
- Movable beds can have 'brakes' toggled with alt-click


## Why It's Good For The Game
Medical gets their own bed, new sprites, cleans up varedits on maps.
## Changelog
🆑 LT3
image: New medical bed and emergency roller bed
code: Added context hints for beds
/🆑
---------
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
## About The Pull Request
This PR lets pAIs inserted into a PDA to control the PDA of their owner.
They can see their own pAI configurations but cannot edit any of it.
They also can't eject themselves from it.
This means they can receive and send PDA messages as their owner, acting
like a personal secretary
This also adds support for multiple people using a PDA and its UI
updating for all of them and PDA messages being received and responded
to from multiple people under the same PDA
It also removes pAI camera in favor of using siliconcamera, which is the
same thing; this just cuts down on some copy paste.
I also reverted PDA's ringer being off preventing messages from being
sent to your chat, silent mode was meant to prevent only the ringing
sound.
## Why It's Good For The Game
pAIs can now do a little bit more to help their owners on a personal
level, and adds support for more stuff like this in the future (an idea
I had was being able to hack into PDAs in the same way the CE can hack
into APCs remotely)
This is a re-PR of https://github.com/tgstation/tgstation/pull/76445 but
it's a little better this time and does not remove the PDA Messenger app
from pAIs.
## Changelog
🆑
fix: PDAs being on silent no longer prevents PDAs from being sent to
your chat, again.
add: pAIs inserted into a PDA can now control the PDA, and will receive
PDA messages sent to it (and can respond under the PDA's name).
/🆑
## About The Pull Request
Title; also makes bileworm devour message have a warning span.
~~it's a bit cheeky but i didn't want to add a deletion signal to the
content_barfer's signal list, and the wabbajack signal here kinda makes
sense?~~
## Why It's Good For The Game
Fixes#76791
## Changelog
🆑
fix: fixed bileworm evolution deleting anything they devoured; they will
now eject their contents upon evolution to vileworms
/🆑
## About The Pull Request
The default spawnables from chasms are spawned on top of the chasm
rather than on the user's turf, and that can be an issue.
## Why It's Good For The Game
This will fix#77982.
## Changelog
🆑
fix: fixed fishing skeleton mob spawners that immediately crumble back
into the void of whatever chasm you fished them from.
/🆑
## About The Pull Request
The gain for second were 10 lower than they were supposed to be, since I
hadn't taken into account the deciseconds. I've also a cap on the gain
and lowered the necessary time just to be sure it doesn't take too much
time to attain the legendary tier anyway. I may bump it up later if
people say it's too easy.
## Why It's Good For The Game
This will fix#77972.
## Changelog
🆑
fix: It's now humanly possible to reach the legendary fisherman rank,
get the achievement and the hat.
/🆑
## About The Pull Request
i saw some players are upset because the hive bees aggro towards people
so it makes them harder to control for the pollination. bees will now
only aggro to people if they are standing very near their hive. if they
move out of range of the beehive they will ignore them and focus on
pollination.
## Why It's Good For The Game
improvements to pollination
## Changelog
🆑
qol: pollinating bees will now only attack players that are standing
near the beehive
/🆑
## About The Pull Request
Adds the Medbeam module, essentially works the same way as the implant
version does where it pops into your hand. Replaces the handheld version
with the modsuit one in the nuclear uplink
## Why It's Good For The Game
Ever since modsuits were added I've wanted to see this become a module
of its own, that and the medbeam itself doesn't see much use in most
nukies rounds. As the borg gets that plus the nanities with nodrop, this
might give it a teeny bit more use cases as now the operatives won't
have to worry about dropping it in the middle of a firefight.
## Changelog
🆑
add: Adds the medbeam module for nukies, don't cross the damn beams.
(Also removes the handheld one from the uplink)
/🆑
---------
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
## About The Pull Request
why isnt this a global proc like add_trait and remove_trait is???
## Why It's Good For The Game
\
gdsahehsjsrj
## Changelog
🆑
fix: kinesis plus properly lets you move again when grabbed once
/🆑
## About The Pull Request
replaces all instances of surgical duffels with surgery trays, and all
coroner duffels with morgue surgical trays.
they contain about the same items, with surgical trays/carts also having
bone gel and tape, since their list of holdable items is much more
limited.
the surgery tray is a diagetic storage unit that displays any surgery
tool it's holding in a small, almost world-state esque form on top of
it. it can be carried around by dragging it on to yourself, but it will
slow you down like an unzipped duffel would. it can also be deployed by
activating it, and pulled around, but it will roll noisily in the
process.
currently, all tool tiers are supported - from alien, to advanced, to
cruel, to normal.

here you can see just a few of the possible combinations of tools -
default, default morgue, advanced, and alien. but any combination of
these tools should work together somewhat cleanly, as you can see here:

also adds a medical razor variant, because otherwise they wouldn't fit
with the look of the other tools on the tray, before and after here:

## Why It's Good For The Game
having constantly visible tool storage like this means you don't have to
worry about the one tool you need from the bag being stolen - if it is,
you can see it before an operation starts, and plan around that! it also
gives a little flexibility to mappers - if they'd like a more mobile
cart for their medbay, or if they'd like the somewhat stationary tray.
it also plain looks cool, and isn't quite as clunky as a duffelbag would
be.
## Changelog
🆑
add: adds medical carts and surgery trays
image: gives the surgery razor a unique sprite
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: JohnFulpWillard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@gmail.com>
## About The Pull Request
Title.
## Why It's Good For The Game
Fixes#78089
Simple mobs drop their meats when gibbed but basic mobs don't which is
weird and inconsistent.
## Changelog
🆑
fix: fixed basic mobs not dropping their butcher results when gibbed
/🆑
## About The Pull Request
Read title, this only affects the UI and not the database as far as I am
aware
## Why It's Good For The Game
The jobs category is painfully empty, only being home to four
achievements total. Meanwhile we have a ton of achievements inside the
miscellaneous category, a lot of which are not miscellaneous
achievements at all. Right now I just wanna focus on moving around
achievements from existing category to existing category though. This
improves achievement category spread overall by a small but necessary
amount.
## Changelog
🆑 distributivgesetz
code: Moved some job-related achievements from the misc category to the
jobs category.
/🆑
## About The Pull Request
Adds a sound effect for hypospray/medipen injections. Doesn't affect
sleepy pens or HMS injectors
Sound is sourced from the open source CM codebase.
## Why It's Good For The Game
> Adds a sound effect for hypospray/medipen injections. Doesn't affect
sleepy pens or HMS injectors
Satisfactory, visceral feedback of injection. Sounds nice. Makes stealth
injections less noticeable, I guess, not that there's any good
candidates for that with medipens.
## Changelog
🆑
sound: Adds a sound effect for hypospray/medipen injections. Doesn't
affect sleepy pens or HMS injectors
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
## About The Pull Request
This is a reinmagining of #72768 as I never was never given a chance and
feedback to polish the sprites or remake it as a suit item as was
suggested before the PR was closed.
This adds Atmos Overalls that ATs will spawn with, the sprite is based
on the GAGS overalls we already have, but I dodged the GAGS system and
made it a standalone item following the AT firesuit palette and design
to fit in.
It can carry the same gear as the wintercoat and the overalls themselves
have fire and acid armor in parity with the firesuit, but that is for
the clothing itself and not the wearer.
This is first and foremost a fashion item, as with how our game manages
fires, being fireproof on your legs and torso won't do anything with
your arms exposed...

<details><summary>This is how ATs looked at spawn before as
reference</summary>
<p>

</p>
</details>
## Why It's Good For The Game
The only "fashion" suit atmos have is their wintercoat, if an AT is not
using their "functional" clothing (MOD/Firesuit) they all default to the
wintercoat and look mostly the same and even their functional uniform
makes everyone also look the same as it covers everything (That is
something I like to be clear)
There is also the "issue" that AT and Engies have the same jumpsuit and
wintercoat with small changes, and that their department bags use orange
instead of yellow as a second color, which makes them look weird on ATs
and the CE.
So now we have something that ATs can use to look different from each
other while still keeping their job identity.
And, as I said in my previous PR, I just really want the pumbler job to
look like a plumber, when they are not firefighting at least.
## Changelog
:cl:Guillaume Prata
add: Atmos Tech now have new drip and will spawn with Atmos Overalls to
protect their clothing from gas leaks! (It will actually not protect you
against fire or leaks, but hey! It's the thought that counts!!)
/🆑
## About The Pull Request
**Simplified version of #72179**
### SOUNDS
Changes next sound files:
- airraid.ogg
- bloblarm.ogg
- alert.ogg
Adds next sound files:
- notice3.ogg
- announce_syndi.ogg
Now `announce.ogg` plays when a Captain joins round, and
`announce_dig.ogg` for Requests Console announcements.
The `announce_syndi.ogg` plays when an announcement is made through an
emagged communications console. It also plays when the evacuation
shuttle is fully hijacked or Cultists fully corrupt the evacuation
shuttle.
You can listen to them all here:
https://github.com/tgstation/tgstation/assets/42353186/10c5e597-6db7-464a-b693-f5a2672dc3d0
_All of the sound files are either made by me from existing sounds in
the game or taken from freesound.org and properly credited._
### STATUS DISPLAYS
Status displays are fully replaced with the addition of a few new ones.
<details>
<summary>Status display monitor</summary>


</details>
<details>
<summary>Misc displays</summary>



</details>
<details>
<summary>Alert displays</summary>




</details>
Now the communications console Status Display menu replaced the "Red
Alert" display option with the "Current Alert" which showcases the
current alert display.
Also, the Status Display menu has an additional "Radiation" display
option.
## Why It's Good For The Game
I believe this Pull Request is a good game for a couple of reasons:
1. It better conveys the gravity of emergency situations, such as Code
Red, by utilizing a more intimidating and recognizable sound. This gives
more weight to these situations, making them feel more urgent and
important in the game. Players always tend to not notice that it's in
action.
2. The replacement of the old and outdated Status Display sprites with
newer, more eye-catching ones is a great improvement. This helps to
emphasize the importance of emergency situations even further by making
them more noticeable. Status Displays was one of the last wall-mounts
using ancient sprites.
3. The Captain's arrival using another sound effect from other
announcements gives more status to the Captain as the ultimate head of
the station.
4. Heads announcement using `announce_dig.ogg` makes the sound itself
more used outside of SM cascade, and also makes Head announcements more
noticeable.
5. Emagged console using `announce_syndi.ogg` making Traitor
announcements more noticeable. Also, it is played after evac shuttle is
fully hijacked or corrupted by Cultists giving a more ominous effect
## Changelog
🆑
sound: Adds/modifies next sound files: airraid.ogg, bloblarm.ogg,
alert.ogg, notice3.ogg, announce_syndi.ogg
sound: Code Red, Delta, and other extreme emergencies now possess more
unique alarm sound effect
sound: Captain's arrival now is announced by Captain's announcement
sound, but not for Acting Captain's
sound: Making Captain announcement through emagged console; hijacking or
fully corrupting evacuation shuttle now plays more ominous sound
sound: Making announcements through Requests Console now plays a more
noticeable sound
image: Status Displays sprites have been fully changed. Now they include
displays for every Security Level
qol: The "Red Alert" button in the Communications console status display
menu has been replaced with a "Current Alert" button showing the current
station Security Level display on Status Displays
qol: Communications console status display menu got a new "Radiation"
button which shows radiation symbol on Status Displays
/🆑
## About The Pull Request
You can no longer create non-synthesizable chemicals with bees.
## Why It's Good For The Game
Fixes the ability to mass produce reagents that aren't supposed to be
directly synthesized.
## Changelog
🆑
fix: You can no longer create non-synthesizable chemicals with bees.
/🆑
---------
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Aki Ito <11748095+ExcessiveUseOfCobblestone@users.noreply.github.com>
## About The Pull Request
Instead of being completely immune to stuns after ascension, blade
heretics now have a stun absorption. This is the effect that His Grace
and the Bastard Sword use.
It functions similarly, in that it stops you from being hardstunned, but
the difference it is they are only immune to a limited amount of stuns
for a limited amount of time before it recharges.
Currently that number is 45 seconds of stuns, with a 2 minute recharge,
meaning if you take more than 45 seconds of stun effects you will stop
being immune.
Bear in mind this still provides full immunity to being stamcrit*, as
stam doesn't contribute towards "seconds stunned" number.
*Unless you used all 45 seconds of stun immunity then you will no longer
be immune until you recharge.
Also to compensate, I gave them a slightly modifier protecting against
knockdowns.
## Why It's Good For The Game
I forgot Stun Absorptions were a thing entirely when making this even
though I refactored the darn things.
Anyways, the reason why I'm doing this is that Stun Absorptions are just
a slightly more fair, less overt way of providing stun immunity, and I
think it fits the theme more.
You're supposed to be a master duelist, but being able to take on a
dozen people at once is not entirely intended (even though this is the
ascension, I know). Stun Absorptions lend better to that, since you run
out of stun juice eventually before you have to pull back.
Though ultimately this doesn't change very much, as we use very few
hardstuns now-a-days:
- A flashbang will contribute about 10 seconds of stun time
- A flash is similar to a flashbang
- Bodythrows and tackles are less than 5 seconds
- Beepsky, 10 seconds
- Stamcrit, 0 seconds, but you are still slowed by stamina damage
- A banana peel, default is roughly 6 seconds. <-- (This is why I gave
them a knockdown modifier)
However it does mean you can't really tank an AI stun turret all day.
That's Rust's thing. Go play Rust Heretic.
## Changelog
🆑 Melbert
balance: Ascended Blade Heretics no longer have blanket stun immunity,
they now have 45 seconds of stun absorption that recharges after 2
minutes - think His Grace. This doesn't affect stamcrit (still immune to
that) (assuming you haven't consumed all of your immunity charge) but
does affect hard CC such as slips, flashbangs, or beepsky.
balance: Ascended Blade Heretics now have a 0.75 modifier to incoming
knockdowns.
/🆑
## About The Pull Request
Read title, not having these checks can knock out the messenger for
everyone for the entire round
## Why It's Good For The Game
I didn't think about hard deletes in my original NT Messenger PR, and as
far as I know this hasn't happened on this codebase yet.
However this PR doesn't only help downstreams that struggle with hard
deletes, it also implements some pretty critical guards as not having a
messenger for an entire round is pretty bad and sometimes hard deletes
are very hard to track and fix, so it could potentially break the
messenger for a lot of rounds.
## About The Pull Request
Transferred.
## Why It's Good For The Game
How did this get to be in 71 files?! This bothers me.
Also changes 'quality_oil' typepath in the reactions to 'olive_oil' to
match its rename post-foodening.
## Changelog
N/A
## About The Pull Request
Bowls are no longer allowed in drink showcases, and Bowls are now
allowed within Kitchen Smartfridges
## Why It's Good For The Game
Generally, it makes sense that soup, a food, can be placed in food
smartfridge and not the drink smartfridge. This check is based on the
container. Bowls of, for example, sulfuric acid are accepted by the food
smartfridge. Empty bowls are not accepted. However, the drink
smartfridge has analogous behavior, and so this will keep consistency
between the 2 smartfridge versions
Fixes#77334
## Changelog
🆑
fix: Soups are accepted by Kitchen Smartfridges
fix: Soups are not accepted by drink showcases
/🆑
## About The Pull Request
During my first fishing related PR, I hadn't yet know that for the
`fish_counts` var to work, its contents also had to be within the
`fish_table` list, thus I ended up adding stuff that's not actually
fishable. Also there was no unit test to enforce that design, which is
lame.
## Why It's Good For The Game
Fixing the issues explained above. Basically #78019 but done right.
## Changelog
🆑
fix: You can now actually fish soggy wallets from toilets, rare ores on
ice moon, some boney stuff in oil puddles (good luck finding them) and
lube-fishes by the seawater.
/🆑
## About The Pull Request
Continuation of https://github.com/tgstation/tgstation/pull/77946, I
missed quite a few of these it seems.
## Why It's Good For The Game
Stop the spread of these typos!!
## Changelog
Nothing player facing