## About The Pull Request
So, my original goal was just a refactor for the emissive overlays of
eyes, as a way to implement the specular emissive introduced by smartkar
some time ago, but somehow I found myself dragged into a bigger refactor
or cleanup of organ damage, thresholds, failures. One of the main
problem was that there were no procs called when a organ suffered enough
damage to fail or when recovering from failure. It'd just enable or
disable a bitflag, leaving it up to subtypes to decide how to tackle
organ failure their own ways: diverse, funky and sometimes incompatible.
More often than not relying on their very own "update_thingamajig" kinda
procs that run whenever the organ takes damage, rather than just when
the threshold is reached (low, high, failure. There are however a couple
organs with their own quirky thresholds, I let those slide).
There's also a bit of old code, especially for ears, with the
`AdjustEarDamage` and temporary deafness both predating the framework
for organ damage as far as I know. It really needed a coat of fresh
paint.
Oh, there were also more than a handful of organs that still heavily
relied on some ORGAN_TRAIT source instead of the `organ_traits` list and
the two add/remove procs `add_organ_trait` or `remove_organ_trait`. This
include organs that lose or gain specific traits when failing et
viceversa.
~~Lastly, felinids (and the halloween ghost species) having reflective
eyes. It's just a nod to the tapetum lucidum that animals with night
vision often have (including cats), which is why their eyes are a bit
brighter in the dark. Felinids however, do not have night vision (nor do
ghosts). This is merely cosmetic.~~ Cut out for the time being due to
issues with the specular emissive...
## Why It's Good For The Game
Refactoring / cleaning up old organ code.
## Changelog
🆑
refactor: Refactored organ damage code a little. Hopefully there won't
be issues (otherwise report them).
/🆑
## About The Pull Request
medieval pirate helmets have an fov cone, i think this is an oversight
because I think fov cones have been made obsolete as a whole for various
reasons, correct me if im wrong if it is not an oversight.
the PR removes the 90' FOV cone
## Why It's Good For The Game
this PR's main focus is simply fixing a potential oversight to do with a
niche helmet that still has an FOV cone
## Changelog
🆑 ArchBTW
fix: removes fov cone (oversight) with medieval pirate helmet
/🆑
## About The Pull Request
Gives the yukatas and kimonos a female sprite flag to fix missing
pixels.
## Why It's Good For The Game
dress broke me fix unga
## Changelog
🆑
fix: Females wearing either a yukata or kimono no longer have holes in
their clothes.
/🆑
## About The Pull Request
changelog should say pretty much enough, dont want to double it here.
## Why It's Good For The Game
as paramedic later into the game you'll prefer jaws of life over jaws of
recovery because theyre both silent AND have no area restrictions, but
heres the thing: you cant wear it in suit storage, nor it can act as
bonesetter additionally (why would paramed need wirecutter?) this PR is
aimed to combie both of those jaws into one modified, that would be
useful for paramedic.
also you really should be able to wear them in mod suit storage, trust
me, it sucks to carry paramedic jacket/coat in inventory everytime and
waste time on swapping
## Changelog
🆑
qol: Jaws of Recovery can be worn on medical MODSuit suit storage now.
add: Added modified Jaws of Recovery and recipe for them. Made from
regular Jaws of Life they act like one, without area restrictions and
radio announcements.
/🆑
## About The Pull Request
Title. To be honest this started as just fixing up some errors I made
with the bomber coats. Woulda fixed them sooner but telling someone on
my own PR that 'I don't care' is apperently ragebaiting.
But that's in the past. This is the future. And the future is red.
I moved everything in the bubber redsec folder to the goofsec folder
where the other reskins are handled. I ported Nova's red variants where
I could. Removed overrides (like the ugly bulletproof helmet and the PDA
colours) and the 'durr no skirt as hos/warden' thing.
I also removed species & joblocks from the Akula outfits. Nothing else
has a species lock and the sprites work perfectly fine on the default
spaceman.
## Why It's Good For The Game
Redsec is better, actually.
## Proof Of Testing
I've tested it but I wasn't sure what exactly to screenshot with the
sheer volume of shit I done. But I tested all I done. It all worked.
## Changelog
🆑
add: Most, if not all sec clothing now properly has a red variant via
the alt click reskin system.
add: Anyone can wear the Akula outfits now.
del: Removed Bluesec PDA override and the ugly bulletproof helmet.
del: HoS and Warden can wear skirts again.
fix: Atmos Bomber no longer hides legs or slows you down.
/🆑
---------
Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
## About The Pull Request
Converts the following:
- Medical Kiosk
- Implant case
- Flamethrower
- Chemical implant case
- Pappercutter
Also I've looked at some alt click procs and adjusted some of their
returns
## About The Pull Request
Fixes#93359
Caused by #93165
Inventory screen elements were no longer considered reachable, which
broke mousedrop handing on objects that check "is dragging into
inventory slot"
I don't know the best way to fix this yet but I figured the next best
thing would be to make all of these use the `drag_pickup` element, which
skips this reach-ability check
Thus I refactored it slightly to accommodate for items which should
contextually not be drag-pick-up-abble and bam, works like a charm
## Changelog
🆑 Melbert
fix: Dragging defibs and modsuits off your back works again
/🆑
---------
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com>
## About The Pull Request
Adds the Jaws of Recovery, a form of Jaws of Life. These spawn in
cabinets in medical, similar to the fireaxe and mech removal tool.
Jaws of Recovery have two heads; prying, like a standard set of jaws of
life, and bonesetting.
Jaws of Recovery cannot be used to open windoors, and cannot be used to
open certain restricted doors. These doors include command staff private
offices, any command specific areas, AI upload areas and security areas
that aren't the brig entrance.
Jaws of Recovery also send out an alarm whenever used to open a door
that is of meaningful significance, like a departmental area. This does
not happen when opening maintenance airlocks, public accessible doors,
external airlocks and the auxiliary base.
The standard Jaws of Life and Syndicate Jaws of Death are entirely
untouched and function as expected.
<img width="240" height="177" alt="image"
src="https://github.com/user-attachments/assets/4e661720-25c7-42b5-963d-707b77d3683f"
/>
## Why It's Good For The Game
In my last PR I removed the broad access available to paramedics.
https://github.com/tgstation/tgstation/pull/92751
I have already explained my reasoning as to why this broad access is a
mistake. This is not anywhere close to that broad access being returned.
This is a slow, deliberate interaction meant to create friction when
someone is moving around using this tool.
Now, obviously, the change was something of a kick in the teeth for
paramedics (which I won't apologize for doing). I hadn't received any
moderate alternatives that sounded like a good idea for months. That is,
until the PR was merged and someone told me about how paramedics over on
Baystation have jaws of life, but they alert people over the radio when
they are used. Seemingly they were as much worried about paramedic
tiders as we are, and they're a high roleplay environment. We clearly
invited a problem on our end that they had sought to resolve because
they too realized that it was a mistake to just give the role this
access.
Now, obviously, [RETA exists to get medical staff into an
area](https://github.com/tgstation/tgstation/pull/92753). That's all
well and good and I like that system. This does not detract from that PR
whatsoever either. This is meant to serve as an extra emergency measure
in the event a paramedic REALLY needs to get into an area while trying
to create some kind of accountability for their actions by telling sec
when they start being used to pry open airlocks. If sec doesn't like how
much the paramedic is invading areas without reason, they at least know
where and when they've been going into locations and might be
incentivized to go investigate.
## Changelog
🆑
add: Adds the Jaws of Recovery. One can be found in a locked glass
cabinet in medical. These jaws of life are restricted on what they can
force open, and alert security and medical whenever they are utilized to
pry open departmental doors. They can't be used to open high security
doors whatsoever. And they come with a bonesetter attachment instead of
wirecutters. You know, for power-relocating your arm.
/🆑
## About The Pull Request
Title.
## Why It's Good For The Game
Boots should be consistently storable.
## Changelog
🆑
qol: Aerostatic Boots now have storage, as they're boots actually.
/🆑
## About The Pull Request
This adds an admin version of meson goggles that lets someone see the
area overlays.

It has also been added to the admin debug tools.
## Why It's Good For The Game
Useful for construction projects.
## Changelog
🆑
admin: Add admin debug goggles that lets you see area overlays which is
useful for construction projects.
image: Add icons for admin debug goggles (which is just a reskinned
color version of mesons)
code: Improve meson code to be more robust
/🆑
## About The Pull Request
I don't think I need to explain anything
## Changelog
🆑 Melbert
fix: Equipping clothes adds you to suit sensors correctly if your
clothes are unlaundered
/🆑
## About The Pull Request
Title.
## Why It's Good For The Game
Words should be spelt right.
## Changelog
🆑
spellcheck: You can no longer 'ajdust' your sensors. Adjusting hasn't
changed, though.
/🆑
## About The Pull Request
Fixes#93199
EMP protection now specifies what it protects
Adds an EMP flag for things which should definitely not indicate they
are EMP proof
## Changelog
🆑 Melbert
fix: EMP proof objects now specify what they protect rather than only
implying it's 100% emp proof
fix: Some objects meant to stealthily be emp proof no longer broadcast
they are emp proof on examine
/🆑
## About The Pull Request
This fixes custom materials not appearing for things like structures. It
also adds a bunch of new tags:
- bomb-proof
- flammable
- holograhic
- ~~unpaintable~~
- ~~supermatter proof~~
- ~~recolorable~~
- crush-proof
- conductive
Also use hyphens for multi-word examine tags.
## Why It's Good For The Game
Better UX
## Changelog
🆑
qol: Add several new examine categories for objects descs that include:
bomb-proof, flammable, holograhic, crush-proof, and conductive. Also use
hyphens for multi-word examine tags.
fix: Fixes custom materials not appearing for things like structures
when examined.
/🆑
## About The Pull Request
The first argument of `Hear` is `message`, the message heard
OR SO YOU'D THINK
Actually the first argument doesn't do anything but get overridden by
ALL implementations of `Hear`
No other uses as far as I and Ephe can tell. Removing it makes it a ton
easier to understand and gives us some free performance in radio code by
not rendering messages twice
## Changelog
🆑 Melbert
code: Removed some redundant code from core hearing code. Report if you
hear anything weird.
/🆑
## About The Pull Request
Gets, yet again, more granular with multiload capabilities, by
introducing `AMMO_BOX_MULTILOAD_OUT_LOADED`; ammo boxes flagged with
this can speed-load ammo boxes that are currently inside another gun,
like revolver cylinders or internal magazines.
To accomodate for this, the previous flag that covered this,
`AMMO_BOX_MULTILOAD_OUT` can no longer speedload into currently loaded
magazines (e.g. internal magazines, including revolver cylinders).
Also implements a base type for speedloaders, moving .38 and .357
speedloaders along with .310 stripper clips to this type, instead of
being ammo boxes. Also features an UpdatePaths script for mappers, which
is why there's so many files touched - repathing is a pain.
Also also adds fancy types for ammo boxes, magazines, and speedloaders,
which isn't particularly player-facing.
Also also also makes the lionhunter ammo strip for the lionhunter rifle
visually three rounds only instead of being perpetually half-full (or
half-empty, depending on your pessimism).
## Why It's Good For The Game
The hypothetical case of "ammo box that holds shotgun ammo" should
probably... not... teleport as much of its ammo as possible into a
tube-fed shotgun, but should probably still be okay at reloading
magazines that actually go into shotguns. Or something.
More relevant, reloading BR-38 magazines with speedloaders, while funny,
probably also shouldn't be teleporting in six fresh rounds.
## Changelog
🆑
balance: General ammo boxes (not speedloaders, not stripper clips) can
no longer multiload into currently loaded magazines (revolver cylinders,
internal magazines).
balance: Speedloaders are now a separate type from ammo boxes, and can
only multiload into currently loaded magazines e.g. revolver cylinders.
qol: Ammo boxes, magazines, and speedloaders now have fancier types for
spawning in by admins.
sprite: Lionhunter ammo clips are visually smaller now.
/🆑
---------
Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
## About The Pull Request
Right now, only the first accessory is shown. Layering aside, that isn't
a good thing and I don't see a reason why it should be this way. This PR
also updates the code for the creation of worn overlays a little.
## Why It's Good For The Game
I don't have the time to code offsets for worn icons for medals,
otherwise I would for the funny gimmicks, but for now this is a small
step toward a world where all accessories are rightfully displayed.
## Changelog
🆑
qol: Accessories other than the first are now displayed on worn
clothing.
/🆑
## About The Pull Request
moves all implementations (im aware of) for "Im a parent type dont spawn
me please" to the datum layer to standardized behavior
adds a standerized proc for filtering out "bad" items that we dont want
spawning. applies to it the subtype vendor, gifts, and a new spawner and
mystery box for a random gun (neither playerfacing)
"port" of https://github.com/shiptest-ss13/Shiptest/pull/4621https://github.com/user-attachments/assets/22f6f0b2-b44e-411a-b3dc-6b97dc0287aa
small warning: I dont have EVERY abstract type defined right now but,
ive done a good enough job for now. Im tired of data entry rn
## Why It's Good For The Game
standardizing behavior. Might be a micro hit to performance however
having this lets us not rely on icon state to determine whether
something is a parent type and makes it much easier to tell something is
a parent type (could be applied further to things like admin spawning
menus and things like that).
need feedback on if this is actually good for the game.
## Changelog
🆑
add: Soda cans show up in the silver slime drink table.
add: Examine tag for items that are not mean to show up ingame.
refactor: Standardizes how gifts rule out abstract types.
fix: gifts no longer check if something has an inhand, massively
expanding the list of potential items.
/🆑
## About The Pull Request
Closes#92778Closes#86829
<img width="347" height="39" alt="image"
src="https://github.com/user-attachments/assets/c50bd1ff-8c00-47a7-a31a-617fae2adc5b"
/>
1. Splits `TRAIT_UNKNOWN` into `TRAIT_UNKNOWN_APPEARANCE` and
`TRAIT_UNKNOWN_VOICE`
2. Renames some stuff like `getvoice` and `getspecialvoice`
3. Gets rid some crummy signals around `get_visible_name` and
`get_voice`
4. Heads now apply the disfigured trait when relevant (rather than
snowflake checking for damage amount)
5. Ling voice refactored into using special voice (it was only used by a
viro symptom anyways; I don't anticipate this overlap being problematic)
6. Mask voice changer refactored into a trait
## Why It's Good For The Game
Potted plants shouldn't have magical voice concealing powers -
especially not over radio, but not over in person either. It's a damn
plant
So I addressed this by refactoring our face and voice system. Overall
things should be a lot cleaner and easier to use.
## Changelog
🆑 Melbert
refactor: Refactored a lot of code relating to human face and voice, ie,
what shows up in examine and in say. Report anything odd when examining
people, with ID cards, when talking over radio, or when disguised
refcator: Refactored how you get disfigured when your head's super
damaged
refactor: Refactored ling mimic voice and traitor voice changer
del: Potted plants no longer hide voice. They still hide appearance,
though
qol: Honorifics now show in examine / in world, rather than only when
speaking.
/🆑
## About The Pull Request
Rebellion masks are now behind hair.
Lets you plug your internals into the mask
## Why It's Good For The Game
> Rendering
I just think it looks a lot nicer than a big oval over your entire head.
I've been using tricks to simulate this change and it looks quite nice.
> Internals
If the Joy mask works for internals, I don't see why this can't either.
It's a silly cosmetic. The actual, like, balancing point of internals is
not so much what you're plugging it into (which we've really
proliferated as over time), and more the actual air supply.
## Changelog
🆑
image: The rebellion mask now renders beneath your hair.
qol: The rebellion mask now lets you plug in internals.
/🆑
## About The Pull Request
Jackets as a category now can carry handguns like pistols and revolvers
and can hold holsters in their suit storage. This also includes hawaiian
shirts and comedian coats.
More 'assistant' jackets can carry improvised firearms.
Justice suits (which are actually security vests in disguise if you can
believe it) hold security gear.
Imperium monk outfits now hold the true list of chaplain suit storage
items, and not just a limited list.
## Why It's Good For The Game
These lists were kind of a mess so using some more consistent holder
lists should make things easier going forward for making sure suits
across a category are at least consistent with one another. Redefining
the allowed list usually means a lot of items get lost from parent to
child.
The additions were either potentially oversights, or are because of
either for reference or trope reasons.
I actually think I overlooked the imperium suit last time I touched
chaplain clothing suit storage.
## Changelog
🆑
balance: Jackets can carry personal firearms and holsters in their suit
storage. So can hawaiian shirts and comedian suits.
balance: More 'assistant' attire can fit improvised weapons.
balance: Justice suits can fit security items in their suit storage.
fix: Imperium monk outfits now hold the true list of chaplain suit
storage items, and not just a limited list.
/🆑
---------
Co-authored-by: 1393F <59183821+1393F@users.noreply.github.com>
## About The Pull Request
Fixes#85028
Obscured flags and covered flags are tracked on carbons, updated as
items are equipped and unequipped. It's that shrimple.
Closes#92760
Just removes the species exception checks for not making sense
Also refactors handcuffs / legcuffs removal. In all of these situations
they were hardcoded when they could easily just use an inventory proc to
work.
## Why It's Good For The Game
Stops a million excessive calls to `check_obscured_slots`
Makes obscured behavior more consistent
Makes obscured behavior easier to use
Cleans up human rendering (There was some cursed stuff before with
render item -> updated obscured -> update body -> cause side effects)
## Changelog
🆑 Melbert
del: Golems which somehow manage to grow wings and somehow manage to
equip something that covers their jumpsuit can no longer fly.
(Seriously, this will not affect anyone)
refactor: Refactored clothing obscurity entirely. Items should be a
loooot more consistent and what covers what, and should update a lot
snappier. As always, report any oddities, like mysteriously disappearing
articles of clothing, hair, or species parts
refactored: Refactored handcuffs and legcuffs a bit, report any odd
situations with cuffs like getting stuck restrained
/🆑
## About The Pull Request
Adds text for when you use a stethoscope on a person having a heart
attack(and removes a doubled check for `body_part ==
BODY_ZONE_PRECISE_GROIN` that's already handled with the `switch`)
## Why It's Good For The Game
Closes#92865
## Changelog
🆑
qol: You can now hear heart attacks with a stethoscope
/🆑
## About The Pull Request
Just because an accessory has `above_suit` set to `TRUE` does not mean
the suit has an `accessory_overlay`.
You wouldn't wanna add a null to the overlays list to return here so
make sure we actually have one first.
(It turns out, it is actually silently doing this every time you first
attach or remove an accessory-when an accessory is added, it calls
`successful_attach()` which ends up calling `update_clothing()` which
calls `worn_overlays()`--all _before_ creating the `accessory_overlay`
-- which results in a `null` in the returned list of `worn_overlays()`)
Shifts the ordering around so that this race condition no longer occurs.
## About The Pull Request
Riot, Press, Swat helmets can now hold seclight. Added new sprites for
riot helmets and swat helmets (by justice54).
All helmets with attachable seclight also got resprite of the seclight
part (also justice54)
<img width="1330" height="107" alt="obraz"
src="https://github.com/user-attachments/assets/3d6b2504-6419-4e7b-81a3-de5109e48f0a"
/>
<img width="665" height="95" alt="obraz"
src="https://github.com/user-attachments/assets/2e51dfcf-9abc-4eb3-a4f0-8860750a6dd0"
/>
## Why It's Good For The Game
Poor security is afraid of badly lit rooms. Let's say NO to it!
## Changelog
🆑
add: Added seclight attachment for swat, riot, press helmets
fix: Fixed bulletproof helmets switching sprites to normal sec helmet
image: Added sprites of Swat helmet and riot helmet with attached
seclight
image: Reworked part of helmet sprites - seclight
/🆑
## About The Pull Request
Riot helmets and welding helmets will give message about their visor
being moved and not whole helmet.
## Changelog
🆑
qol: Swat and welding helmets give proper messages when adjusting
visors.
/🆑
## About The Pull Request
Also, all middle hair masks were broken because they had an incorrectly
set icon_state
Closes#92450
## Why It's Good For The Game
Its supposed to be a replacement for the security helmet, and while it
makes sense that it doesn't act as a full helmet (as it doesn't fully
cover your head), it still probably should have armor as per original
design (and also to not be useless for sec, who are the intended users
of this item)
## Changelog
🆑
fix: Fixed constable helmet not having any armor
fix: Fixed some hair masks not working
/🆑
## About The Pull Request
Converts as many time vars expressed in deciseconds as I could find to
use time defines.
## Why It's Good For The Game
Makes these values neater and more readable.
## Changelog
🆑
code: Converted a lot of time-based variables to be expressed with time
defines.
/🆑
# Conflicts:
# code/modules/clothing/head/hat.dm
# code/modules/clothing/shoes/boots.dm
# code/modules/clothing/suits/utility.dm
## About The Pull Request
This PR fixes wrong usage of bitflags in a few places, where instead of
bitfields lists were used.
## Why It's Good For The Game
It will help prevent problems that can be a thing in the future,
improving consistency of the codebase.