## About The Pull Request
The special armored pirate coat variant (from heavy pirates/rare
treasure chest rng) can hold what standard armor can hold.
Oversight as a result of inconsistent object pathing, see below.
## Why It's Good For The Game
- Could be an oversight - Pirate coats aren't pathed under
"/obj/item/clothing/suit/armor" despite being an armored variant of
clothing (the armored variant is pathed under 'costume'), and therefore
doesn't inherit 'GLOB.security_vest_allowed' like regular non-special
armor (non heretic) usually have.
- Heavy pirates spawn with shotguns and laser guns, but they can't
actually store their guns on their back/belt slot. They also don't get a
backpack on their ship.
- Transporting valuables to the pirate ship should be a tad bit more
convenient considering a pirate's primary role is theft.
- Pirate armor is rare and exclusive - It's only obtainable through
heavy pirates, or gambling the beach treasure chest.
- Logic/spirte wise makes sense - See armored trenchcoat.
## Changelog
🆑 ArchBTW
balance: Heavy pirate's armored pirate coat can hold the same items that
standard armor can.
/🆑
---------
Co-authored-by: glue0000 <230859540+glue0000@users.noreply.github.com>
## About The Pull Request
Compact defib can be worn on the suit storage slot of labcoats, medical
coats, surgical aprons, and medical MODsuits
## Why It's Good For The Game
This thing is dope but sucks to use because you have to juggle your
belt.
Allowing docs to wear it on their coat so they don't have to inventory
juggle with their belt would make it 10x more usable.
## Changelog
🆑 Melbert
add: Compact defib can be worn and used on the suit storage slot of
labcoats, surgical aprons, and medical MODsuits
add: Drones and Dex Holoparasites can (hypothetically) wear and use
compact defibs
/🆑
## About The Pull Request
Extends the part of the crafting unit test that ensures consistency
between the total mats of the components of a recipe (or rather, the
result of said recipe) and a generic instance of the same type as its
result, previously only implemented on food recipes.
## Why It's Good For The Game
This ensures a degree of consistency with the material composition of
various objects in the game. I couldn't do it in the original PR as that
one was too big already and it took months to get it merged, and have
the relative bugs fixed.
Currently a WIP as I slowly deal with the unit test reports.
## Changelog
🆑
refactor: Follow-up to the crafting/material refactor from months ago.
All objects crafted with stacks now inherit their mat composition (not
necessarily the effects and color) by default, while previously only a
few things like chair, sinks and toilets did. Report any object looking
or behaving weirdly as a result.
fix: The material composition of ammo boxes is no longer a 1/10 of what
it's supposed to be. It was a shitty hack to make it harder to recycle
empty ammo boxes. Instead, they lose materials as they're emptied now.
/🆑
## About The Pull Request
It's just a partial cleanup of
anti-[STYLE](https://github.com/tgstation/tgstation/blob/master/.github/guides/STYLE.md)
code from /tg/'s ancient history. I compiled & tested with my helpful
assistant and damage is still working.
<img width="1920" height="1040" alt="image"
src="https://github.com/user-attachments/assets/26dabc17-088f-4008-b299-3ff4c27142c3"
/>
I'll upload the .cs script I used to do it shortly.
## Why It's Good For The Game
Just minor code cleanup.
Script used is located at https://metek.tech/camelTo-Snake.7z
EDIT 11/23/25: Updated the script to use multithreading and sequential
scan so it works a hell of a lot faster
```
/*
//
Copyright 2025 Joshua 'Joan Metekillot' Kidder
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
//
*/
using System.Text.RegularExpressions;
class Program
{
static async Task Main(string[] args)
{
var readFile = new FileStreamOptions
{
Access = FileAccess.Read,
Share = FileShare.ReadWrite,
Options = FileOptions.Asynchronous | FileOptions.SequentialScan
};
FileStreamOptions writeFile = new FileStreamOptions
{
Share = FileShare.ReadWrite,
Access = FileAccess.ReadWrite,
Mode = FileMode.Truncate,
Options = FileOptions.Asynchronous
};
RegexOptions regexOptions = RegexOptions.Multiline | RegexOptions.Compiled;
Dictionary<string, int> changedProcs = new();
string regexPattern = @"(?<=\P{L})([a-z]+)([A-Z]{1,2}[a-z]+)*(Brute|Burn|Fire|Tox|Oxy|Organ|Stamina)(Loss)([A-Z]{1,2}[a-z]+)*";
Regex camelCaseProcRegex = new(regexPattern, regexOptions);
string snakeify(Match matchingRegex)
{
var vals =
matchingRegex.Groups.Cast<Group>().SelectMany(_ => _.Captures).Select(_ => _.Value).ToArray();
var newVal = string.Join("_", vals.Skip(1).ToArray()).ToLower();
string logString = $"{vals[0]} => {newVal}";
if (changedProcs.TryGetValue(logString, out int value))
{
changedProcs[logString] = value + 1;
}
else
{
changedProcs.Add(logString, 1);
}
return newVal;
}
var dmFiles = Directory.EnumerateFiles(".", "*.dm", SearchOption.AllDirectories).ToAsyncEnumerable<string>();
// uses default ParallelOptions
// https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.paralleloptions?view=net-10.0#main
await Parallel.ForEachAsync(dmFiles, async (filePath, UnusedCancellationToken) =>
{
var reader = new StreamReader(filePath, readFile);
string oldContent = await reader.ReadToEndAsync();
string newContent = camelCaseProcRegex.Replace(oldContent, new MatchEvaluator((Func<Match, string>)snakeify));
if (oldContent != newContent)
{
var writer = new StreamWriter(filePath, writeFile);
await writer.WriteAsync(newContent);
await writer.DisposeAsync();
}
reader.Dispose();
});
var logToList = changedProcs.Cast<KeyValuePair<string, int>>().ToList();
foreach (var pair in logToList)
{
Console.WriteLine($"{pair.Key}: {pair.Value} locations");
}
}
}
```
## Changelog
🆑 Bisar
code: All (Brute|Burn|Fire|Tox|Oxy|Organ|Stamina)(Loss) procs now use
snake_case, in-line with the STYLE guide. Underscores rule!
/🆑
## About The Pull Request
Another relatively simple simple_mob to basic mob refactor. I wish more
people were doing these since I was saving these for people to get their
feet wet, but I think it's better to pivot away from that and just have
only the gargantuan ones outstanding (since those ones are pretty much
their own framework).
I also delayed this one because we didn't actually have the AI framework
available 1-2 years ago for this to be seamless and easy, but now we
have easy fleeing functionality so that's an easy plug and play.
This rework contains the following:
* General code readability changes and standardization (i.e. removing
single letter vars, `SECONDS` defines)
* Moves more stuff to subtypes instead of having it be on parent
* Removes the necessity for define "attack modes", that's on subtypes
now
* Fixed instances where args weren't defined. I think cult apparitions
via the mirror shield have been much weaker than what they were
originally intended to, so I changed it to what I thought was correct. I
can change the health to be down but it really doesn't make sense as a
lot of the args were not standardized (ideally we would have more
subtypes). I can change this back to the original arg order, let me
know.
* Clones now replicate on damage taken as well as when they attack. I
wanted to tweak this around more but this was originally added since I
confused myself, but it gave a more realistic mitotic effect I liked
more for the replicating clones.
## Why It's Good For The Game
If we want more flamboyant mirage escapes or sneaky clone AI behavior,
it is now far easier to implement. It's very simplistic at the moment
but is pretty much fully featured and representative of the simple mob
version of illusions. They were already laden to the item/mob that was
spawning them in anyways, so this is really the most simple stuff we got
going on.
I tested this with the mirage grenade, reactive stealth armor, and the
mirror shield. I have no clue how the heretic stuff works but it appears
to be a really simple framework plug-and-play so no real worries there I
think.
## Changelog
🆑
refactor: The Cult of Nar'Sie realized that they were installing the
mirrors on their mirror shields the wrong way around, thus altering the
makeup of their mirror clones health, damage, and re-replicability.
refactor: In response to the recent updates in clone magic, Nanotrasen's
Stealth Reactive Armor should now generate more convincing clones.
/🆑
## About The Pull Request
Reworks Sleeping Carp significantly.
### Returning Moves: Stomach Knee and Wrist Wrench
Stomach Knee, much like the previous incarnation, causes the victim to
be winded and stunned, though this version only briefly stuns the
victim. It also deals stamina damage and silences the victim for five
seconds. It is performed by a Grab Punch combo. Named Kraken Wrack.
Wrist Wrench, much like the previous incarnation, disarms the victim of
their held items. It also potentially dislocates or breaks their arm, as
it rolls with a very high wound chance. It is performed by a Harm Grab
combo. Stole Gnashing Teeth's name.
### Gnashing Teeth (as it was) is gone
This move didn't do very much at all other than being a harmful punch
with more damage. Throwing a bunch of normal punches won't result in
anything now.
### Harm Punches are no longer have special overrides, but Sleeping Carp
does grant perfect accuracy.
Rather than use a bespoke override, Sleeping Carp now merely uses your
normal unarmed punch for its standard normal punch. However, rather than
leave things to chance, Sleeping Carp grants you perfect accuracy with
those standard punches.
### Grabs are treated as one stage higher
Now that martial arts can directly interact with grab state, as well as
some prior changes to how effective compared to actual grab state is
determined, I've reintroduced Sleeping Carp's stickier grabbing by
making it so that they elevate the effective grab state by one stage.
This is not instant aggro-grabbing like they used to have. This just
makes it so that if they try to resist out of a passive grab, they may
fail as though it was an aggressive grab, but it won't stun them until
it is elevated to a proper aggressive grab.
### What you wear is important for determining the effectiveness of your
Attack Dodging (and attack dodging is broader)
Sleeping Carp's projectile dodging and now attack dodging is based on
whether or not you're 'on theme'. That is, if you are wearing nautical
themed clothing and other factors.
At a baseline, Sleeping Carp has perfect projectile dodging and no
melee/unarmed avoidance.
To improve your chances, you need to;
- Wear martial arts or carp themed clothing on your head. (20% if one is
present, but it only counts one)
- Wear martial arts or carp themed clothing on your chest (20% if one is
present, but only counts one)
- Wear appropriate footwear, like sandals. (20%)
- Be a literal carp. (75% flat)
- Mutate yourself into a carp person. (20%)
However, your chances of avoidance diminishes if:
- You wear armored clothing on your head and chest. (based on Melee
armor)
- While lying on the floor (30%)
Holding objects diminishes your chances as well, This is based on the
weight of the object, and whether or not the object is wielded. Normal
sized objects, for instance, are -30%, and would be -60% if wielded.
It will not diminish your chances if:
- The object is Small or smaller.
- The object is an abstract object or hand grafted object and it doesn't
have block chance.
- The object is in the exceptions list.
- **The exception list is as follows:**
- Nunchaku (this is spies exclusive)
- Bo Staff (the unobtainable one)
- Monk's Staff (the chaplain's null rod)
- Bamboo staff
- Cane (like, walking cane)
- Knives
- Bolas
- Toolboxes
- Spears
- Shortswords (the ones from the medieval pirates)
- Nullblade (it's a shortsword)
- Extendohands (because lol)
- Mops
- Push Brooms
- Baseball Bats
- Claw Hammers
- Carp plushies.
<details>
<summary>A list of appropriate clothing</summary>
Headwear
- Strange Bandana (which come in the kit)
- Maid headband
- Fancy Hairpin
- Carp Mask
- Carp-skinned Fedora
- Carp Costume Hood (this comes with the costume)
- Carp Costume Spacesuit Helmet (as above)
Chestwear
- Martial Gi (which come in the kit)
- Carpskin Suit
- Carp Costume
- Carp Spacesuit
- Maid Outfit
- Kimono
- Yakuta
- Trenchcoats
- Geisha Outfit
- [Swag Outfit](https://www.youtube.com/watch?v=l6DmoPlq3S4)
- Eastern Monk's Outfit (the chaplain outfit)
- Buttoned down line of clothes
- Blazer jacket
- Lawyer jackets
Footwear
- Sandals (which come in the kit)
- Swag Shoes
- Laceup Shoes
</details>
As an example of being OFF theme, being in a full security outfit would
reduce your avoidance chance by a whopping 80%.
You avoid attacks while in combat mode, much like projectile deflection
does on live. You can only get up to a 75% chance melee/unarmed
avoidance.
## Why It's Good For The Game
> Returning Moves
People quite liked some of the older moves, and there weren't as many
dials around at the time to make them particularly more interesting when
I first removed them. We were aiming for an out and out stun removal as
a whole codebase, but largely we're ended up still being comfortable
with minor stuns here and there. Stomach Knee can be one of them.
Wrist Wrench was something I realized I could reintroduce with literal
limb breaking thanks to wound changes. Arm dislocations/breakages are
surprisingly rare as a wound type, and since it is an attack on a
specific arm, not quite as good for bringing someone to death, but quite
good for leaving someone with a maiming wound they now need to fix to
keep pursuing you. Highly useful for those stubborn stun immune targets,
who Sleeping Carp struggles to fight. As in, they can't really fight
them.
> Grab Stage
A bit of my work and a bit of Melbert's has resulted in this being a lot
more reasonable to reintroduce as a benefit. The original instant
aggro-grabbing was definitely very oppressive, since it was a
pseudo-hardstun that lead into a hardstun. Now this is a bit softer by
comparison, and surprisingly quite important. I think the loss of good
grabbing ended up filtering a lot of folk somewhat hard.
> Removal of the override
I was really taken with Spider Bite using baseline punches as the
groundwork for the martial art and I wanted to work into that. Not only
does it mean becoming a carp person is actually a great idea beyond the
avoidance mechanic, but also for your actual basic punches improving. It
just in general feels like it opens up possibilities in the game world
to experiment and the design of martial arts in general. We should make
more martial arts work like this.
> Avoidance
My original rework had one glaring flaw that continues to haunt it to
this day. Defense stacking on Sleeping Carp is ridiculous. Layering
defense upon defense makes the one particular immunity it grants,
projectile immunity, all the more oppressive. Hiding behind high block
and high armor makes you a menace.
The end result is that more people utilize Sleeping Carp not for the
martial art part, but for the projectile immunity part, usually using
something else instead like a baton.
This rubs me the wrong way. You would think and hope that the reason
people take the martial art is to be a goofy martial artist in space.
So, I'm implementing an idea I knew I could never pull off in the
framework at the time.
I'm implementing Unarmored Defense, bitch.
(I was totally also not inspired by Payday 2 in any fashion, nope, not
at all)
I like the idea of forcing a choice between the goofy outfit that gives
you bonuses over just getting the biggest armor you can find and
turtling like a motherfucker. And I want people to focus on the martial
arts and benefit from the martial arts when you're specifically unarmed.
Maybe right now some of the restrictions are a little severe, so if
anyone has any opinions, lemme know.
## Changelog
🆑
balance: Completely reworks Sleeping Carp, again.
balance: The return of Stomach Knee (Kraken Wrack) and Wrist Wrench
(Gnashing Teeth). Time is a flat circle.
balance: Sleeping Carp has better grabs (no instant aggro grabs)
balance: Sleeping Carp integrates normal unarmed punch by not overriding
your normal punches.
balance: Sleeping Carp's deflection weakens if you wear armored headwear
and body armor, or while carrying objects. However, by wearing martial
arts (or carp) themed outfits, you can improve your defenses instead,
allowing you to not just dodge bullets, but also incoming melee attacks.
balance: Some objects are exempt, like staff weapons (such as mops or
the monk's staff), short blades (like knives and shortswords), club-like
(baseball bats and toolboxes), or thematic (like extendo hands and carp
plushies)
balance: You can also get these improvements by being a literal carp or
being a carp person.
/🆑
---------
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
## About The Pull Request
So basically, the description of the scientist jumpsuit/jumpskirt says
that it provides minor protection against explosives. This is actually a
complete lie because it doesn't do that. Instead, the scientist _winter
jacket_ has a minor protection against explosives. Why? I have no idea,
it's probably a bug.
This pr swaps out the bomb 1 and fire 2 on the winter jacket for bio 1
and fire 2, because every other winter jacket (that I know of) has at
least bio 1, and adds the bomb 1 to the scientist jumpsuit and
jumpskirt. Also, the jumpsuit and jumpskirt went from bio 5 to bio 4,
for game balance reasons I guess. If they're better off staying at bio 5
I can change that.
## Why It's Good For The Game
Bugfix... I think? Consistency improvement at the very least.
## Changelog
🆑
fix: Scientist jumpsuits have minor bomb protection and less biohazard
protection
fix: Scientist winter jackets no longer have bomb protection
/🆑
Co-authored-by: Fghj240 <fakeemail@notrealemail.com>
## About The Pull Request
removes oxygen jetpack subtype and makes empty jetpack actual oxygen
## Why It's Good For The Game
because our empty jetpack wasnt actually empty and we infact had two
oxygen jetpacks?
## Changelog
N/A
## About The Pull Request
Baby's first refactor!
Originally meant for a downstream, I was told to PR it here instead.
Please do tell me if I did something wrong.
Previously the Lasertag guns would directly check if you were wearing a
vest before dealing stamina damage. Now they instead check for a
component and it's team, which is added by the vest.
## Why It's Good For The Game
This should make it easier to add new lasertag equipment.
It compiles and lasertag functionality seems to remain unchanged from
the player side.
## 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
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
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
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
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
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
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.
/🆑
## About The Pull Request
Implements a poor imitation of specular surfaces by encoding "shinyness"
into blue channel of emissive overlays, which allows some pixels to be
more illuminated than others (by applying lighting multiplied by
specular mask onto them a second time)
This means that hazard vests, engineering coats, security jackets and
firefighter suits no longer outright glow in the dark, but instead
amplify light so even the tiniest amounts make them highly visible. I
made a pass through all of our emissive overlays and converted ones that
made sense into bloom-less/specular ones.
https://github.com/user-attachments/assets/2167e26e-f8b8-42d7-a67c-dfc643e1df29
I've also converted unrestricted access airlock overlays into overlay
lights instead of ABOVE_LIGHTING overlays, so they should no longer look
jank or catch people's clicks.
<img width="297" height="262" alt="dreamseeker_LovPHZ7xHQ"
src="https://github.com/user-attachments/assets/1bf4d7b8-219a-41ed-aee9-6cdc41803e21"
/>
Turns out that windoors had incorrect icon states assigned to theirs, so
I fixed that too - they should show up again after god knows how many
years.
## Why It's Good For The Game
~~Shiny lights make my moth brain go happy~~
Neat visual effects that look more believable than neon glowing stripes,
and airlocks no longer have inflated hitboxes with extremely weird
visuals.
## Changelog
🆑
add: Added specular overlays - some items like hazard vests or
firefighter suits no longer outright glow in the dark, but instead
amplify existing light to shine brighter than their surroundings.
add: Redid unrestricted access airlock overlays to look less bad
fix: Fixed unrestricted access overlays not showing up on windoors.
/🆑
(cherry picked from commit 3d730689f4)
## About The Pull Request
Implements a poor imitation of specular surfaces by encoding "shinyness"
into blue channel of emissive overlays, which allows some pixels to be
more illuminated than others (by applying lighting multiplied by
specular mask onto them a second time)
This means that hazard vests, engineering coats, security jackets and
firefighter suits no longer outright glow in the dark, but instead
amplify light so even the tiniest amounts make them highly visible. I
made a pass through all of our emissive overlays and converted ones that
made sense into bloom-less/specular ones.
https://github.com/user-attachments/assets/2167e26e-f8b8-42d7-a67c-dfc643e1df29
I've also converted unrestricted access airlock overlays into overlay
lights instead of ABOVE_LIGHTING overlays, so they should no longer look
jank or catch people's clicks.
<img width="297" height="262" alt="dreamseeker_LovPHZ7xHQ"
src="https://github.com/user-attachments/assets/1bf4d7b8-219a-41ed-aee9-6cdc41803e21"
/>
Turns out that windoors had incorrect icon states assigned to theirs, so
I fixed that too - they should show up again after god knows how many
years.
## Why It's Good For The Game
~~Shiny lights make my moth brain go happy~~
Neat visual effects that look more believable than neon glowing stripes,
and airlocks no longer have inflated hitboxes with extremely weird
visuals.
## Changelog
🆑
add: Added specular overlays - some items like hazard vests or
firefighter suits no longer outright glow in the dark, but instead
amplify existing light to shine brighter than their surroundings.
add: Redid unrestricted access airlock overlays to look less bad
fix: Fixed unrestricted access overlays not showing up on windoors.
/🆑
## About The Pull Request
Wizard MOD is now bio,flash proof, and comes with the no slips module ,
and the Hilbert DNA lock module installed.
Energy shield charges on the battle shield module have been reduced from
15 to 5 but now regenerate over time.
energy shield charges are now only consumed if at least 3 damage is
dealt to the bubble.
## Why It's Good For The Game
atomization of this PR:
https://github.com/tgstation/tgstation/pull/91702 so I'm just gonna
copypaste the same reasoning.
**Wiz Modsuit changes**
Despite being the Mod given to arguably the highest possible threat a
station should face, this thing is insanely underwhelming.
It doesn't come packaged with even some basic immunities we would grant
to our common antagonists, the charges are limited and once they expire
this suit has nothing to offer besides basic space protection and some
decent armor.
The suit has been rebalanced to offer a wide array of protections and
have the Shield charges regenerate overtime to a maximum of 5, and it no
longer has any slowdown.
You might also want to reconsider using this as crew....
"That's a lot of stuff Jake, won't this make the suit overpowered?"
You can bet your spessman arse it will, Wizard is not supposed to be a
balanced antagonist in any way shape or form, but an absolute force of
chaos.
Given how everything else in the game has been powercept over the Years,
we left this poor dude behind, it's time to address that.
**Energy Shield MOD changes**
I don't think the Shield should expire if no damage (or a pitiful amount
of) hits the bubble, these have already been nerfed to only have 1
charge, it shouldn't require so little firepower (or none of) to
destroy.
## Changelog
🆑
balance: Wiz suit is now bio,flash proof, comes with the no slip and
Hilbert dna module installed, slowdown was removed.
balance: Energy shield charges on the battlemage module have been
reduced to 5 but now regenerate over time.
balance: energy shield charges now require a minimum of 3 total damage
to be consumed.
removal: you can no longer buy additional shield charges for the suit
using the spellbook.
/🆑
---------
Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com>
## About The Pull Request
Wizard MOD is now bio,flash proof, and comes with the no slips module ,
and the Hilbert DNA lock module installed.
Energy shield charges on the battle shield module have been reduced from
15 to 5 but now regenerate over time.
energy shield charges are now only consumed if at least 3 damage is
dealt to the bubble.
## Why It's Good For The Game
atomization of this PR:
https://github.com/tgstation/tgstation/pull/91702 so I'm just gonna
copypaste the same reasoning.
**Wiz Modsuit changes**
Despite being the Mod given to arguably the highest possible threat a
station should face, this thing is insanely underwhelming.
It doesn't come packaged with even some basic immunities we would grant
to our common antagonists, the charges are limited and once they expire
this suit has nothing to offer besides basic space protection and some
decent armor.
The suit has been rebalanced to offer a wide array of protections and
have the Shield charges regenerate overtime to a maximum of 5, and it no
longer has any slowdown.
You might also want to reconsider using this as crew....
"That's a lot of stuff Jake, won't this make the suit overpowered?"
You can bet your spessman arse it will, Wizard is not supposed to be a
balanced antagonist in any way shape or form, but an absolute force of
chaos.
Given how everything else in the game has been powercept over the Years,
we left this poor dude behind, it's time to address that.
**Energy Shield MOD changes**
I don't think the Shield should expire if no damage (or a pitiful amount
of) hits the bubble, these have already been nerfed to only have 1
charge, it shouldn't require so little firepower (or none of) to
destroy.
## Changelog
🆑
balance: Wiz suit is now bio,flash proof, comes with the no slip and
Hilbert dna module installed, slowdown was removed.
balance: Energy shield charges on the battlemage module have been
reduced to 5 but now regenerate over time.
balance: energy shield charges now require a minimum of 3 total damage
to be consumed.
removal: you can no longer buy additional shield charges for the suit
using the spellbook.
/🆑
---------
Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com>
## About The Pull Request
Emissive sprites now bloom out a bit (3 pixels, to be specific)


This is done by rendering emissives onto a plate, multiplying them by
unlit game rendering plate to color them, then blooming all non-black
pixels (1 offset, 2 size, so 100/66/33% brightness) on it and rendering
it onto the overlay lighting plane. We use overlay lighting because it
slightly detracts from the static lighting plane, so our emissives color
their surroundings a bit even in fully lit rooms.

You can make emissives not emit light by setting ``apply_bloom`` to
FALSE in ``emissive_appearance()``. This is done by storing bloom in the
red color channel and converting bloomless emissives to green, then
having both render targets have color matrixes which convert them back
to white.
## Why It's Good For The Game
Fancy visuals, goes hard.
## Changelog
🆑
add: Emissive objects now have a bit of a colored bloom around them.
/🆑
## About The Pull Request
Emissive sprites now bloom out a bit (3 pixels, to be specific)


This is done by rendering emissives onto a plate, multiplying them by
unlit game rendering plate to color them, then blooming all non-black
pixels (1 offset, 2 size, so 100/66/33% brightness) on it and rendering
it onto the overlay lighting plane. We use overlay lighting because it
slightly detracts from the static lighting plane, so our emissives color
their surroundings a bit even in fully lit rooms.

You can make emissives not emit light by setting ``apply_bloom`` to
FALSE in ``emissive_appearance()``. This is done by storing bloom in the
red color channel and converting bloomless emissives to green, then
having both render targets have color matrixes which convert them back
to white.
## Why It's Good For The Game
Fancy visuals, goes hard.
## Changelog
🆑
add: Emissive objects now have a bit of a colored bloom around them.
/🆑
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
A lot of blood here has dried, visually the blood colors are almost
exactly the same as before either of the blood refactors.


It was removed in https://github.com/tgstation/tgstation/pull/27799
because the spear was broken and the Flans' AI sucked with not-great
sprites and was all just one big reference. Original addition:
https://github.com/tgstation/tgstation/pull/22270
This re-adds it, updates the map (now using airless turfs) with extra
ambiance, using ash whelps (lavaland variation of ice whelps) instead of
Flans, re-adds the spear, and adds armor as well this time around.
The spear gives you a jump ability to crash down upon a player below
you, rather than teleporting to wherever you throw the spear at. You
can't attack while mid-air, you can go through tables but not
walls/doors, and you also can't un-dualwield or drop the spear mid-jump.
Landing on a mob deals double damage to them (36 to unarmored people),
while landing on objects deals 150 damage to them (taken from savannah's
jump ability, which was in turn taken from hulk's punching)
It's also got some extra throw force (24 compared to default spear's 20)
The armor has basic security-level armor but covers your whole body.
Does not include space protection, and can be worn by Ian.
Video demonstration
https://github.com/user-attachments/assets/a77c3a0d-17d2-4e8d-88b6-cdbca8b1f2c3
New sprites demonstration
https://github.com/user-attachments/assets/0e465351-5484-406f-8adc-ffa1ac180daf
Armor demonstration
https://github.com/user-attachments/assets/abdfcac6-65bf-443c-bde2-27d157ee3a80
Map

With the changes in https://github.com/tgstation/tgstation/pull/90771 I
had to mess with ash whelp abilities a bit, I decided to make them use
cold fire instead of hardcoding blue color on top of the fire sprites,
and it now acts accordingly too
https://github.com/user-attachments/assets/cfca0d70-d13d-4c73-996d-2d4a7519866d
The jump was taken from Savannah Ivanov, and Goof's bunny jumping.
This Re-implements a old spear that got removed for its buggyness/bad
mapping and on the authors request as well not wanting to deal with it.
Re-introduces the SkyBulge as a space ruin, referencing Dragoons from
Final Fantasy. this just like any normal spear, but using the savannah
jump mechanic, this allows you to close distances with the spear
avoiding ranged projectiles in the jump, and if you directly land on
your target you will do double the damage.
🆑 Ezel/Improvedname, Toriate, JohnFulpWillard
add: Re-added the Dragoon Tomb lair, now has a Skybulge spear and
Drachen armor.
balance: Ice whelps now spit out cold fire.
/🆑
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
## 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
It was removed in https://github.com/tgstation/tgstation/pull/27799
because the spear was broken and the Flans' AI sucked with not-great
sprites and was all just one big reference. Original addition:
https://github.com/tgstation/tgstation/pull/22270
This re-adds it, updates the map (now using airless turfs) with extra
ambiance, using ash whelps (lavaland variation of ice whelps) instead of
Flans, re-adds the spear, and adds armor as well this time around.
The spear gives you a jump ability to crash down upon a player below
you, rather than teleporting to wherever you throw the spear at. You
can't attack while mid-air, you can go through tables but not
walls/doors, and you also can't un-dualwield or drop the spear mid-jump.
Landing on a mob deals double damage to them (36 to unarmored people),
while landing on objects deals 150 damage to them (taken from savannah's
jump ability, which was in turn taken from hulk's punching)
It's also got some extra throw force (24 compared to default spear's 20)
The armor has basic security-level armor but covers your whole body.
Does not include space protection, and can be worn by Ian.
Video demonstration
https://github.com/user-attachments/assets/a77c3a0d-17d2-4e8d-88b6-cdbca8b1f2c3
New sprites demonstration
https://github.com/user-attachments/assets/0e465351-5484-406f-8adc-ffa1ac180daf
Armor demonstration
https://github.com/user-attachments/assets/abdfcac6-65bf-443c-bde2-27d157ee3a80
Map

With the changes in https://github.com/tgstation/tgstation/pull/90771 I
had to mess with ash whelp abilities a bit, I decided to make them use
cold fire instead of hardcoding blue color on top of the fire sprites,
and it now acts accordingly too
https://github.com/user-attachments/assets/cfca0d70-d13d-4c73-996d-2d4a7519866d
The jump was taken from Savannah Ivanov, and Goof's bunny jumping.
##### Code bounty by Ezel/Improvedname
## Why It's Good For The Game
This Re-implements a old spear that got removed for its buggyness/bad
mapping and on the authors request as well not wanting to deal with it.
Re-introduces the SkyBulge as a space ruin, referencing Dragoons from
Final Fantasy. this just like any normal spear, but using the savannah
jump mechanic, this allows you to close distances with the spear
avoiding ranged projectiles in the jump, and if you directly land on
your target you will do double the damage.
##### -Ezel/Improvedname
## Changelog
🆑 Ezel/Improvedname, Toriate, JohnFulpWillard
add: Re-added the Dragoon Tomb lair, now has a Skybulge spear and
Drachen armor.
balance: Ice whelps now spit out cold fire.
/🆑
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
## About The Pull Request
Most human mobs have the neutral faction, Stickmen are supposed to be
hostile to everyone but their summoner and perhaps any more concrete
faction the owner had when they were summoned (e.g. carp, syndies,
cult...)
## Why It's Good For The Game
Fixing a nit.
## Changelog
🆑
fix: Stickmen summoned by the papier-mache robe are once again hostile.
/🆑
Revival of https://github.com/tgstation/tgstation/pull/86482, which is
even more doable now that we have rustg iconforge generation.
What this PR does:
- Sets up every single GAGS icon in the game to have their own preview
icon autogenerated during compile. This is configurable to not run
during live. The icons are created in `icons/map_icons/..`
- This also has the side effect of providing accurate GAGS icons for
things like the loadout menu. No more having to create your own
previews.

<details><summary>Mappers rejoice!</summary>


</details>
<details><summary>Uses iconforge so it does not take up much time during
init</summary>

</details>
---
this still applies:
Note for Spriters:
After you've assigned the correct values to vars, you must run the game
through init on your local machine and commit the changes to the map
icon dmi files. Unit tests should catch all cases of forgetting to
assign the correct vars, or not running through init.
Note for Server Operators:
In order to not generate these icons on live I've added a new config
entry which should be disabled on live called GENERATE_ASSETS_IN_INIT in
the config.txt
No more error icons in SDMM and loadout.
🆑
refactor: preview icons for greyscale items are now automatically
generated, meaning you can see GAGS as they actually appear ingame while
mapping or viewing the loadout menu.
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
## About The Pull Request
Most human mobs have the neutral faction, Stickmen are supposed to be
hostile to everyone but their summoner and perhaps any more concrete
faction the owner had when they were summoned (e.g. carp, syndies,
cult...)
## Why It's Good For The Game
Fixing a nit.
## Changelog
🆑
fix: Stickmen summoned by the papier-mache robe are once again hostile.
/🆑
## About The Pull Request
Revival of https://github.com/tgstation/tgstation/pull/86482, which is
even more doable now that we have rustg iconforge generation.
What this PR does:
- Sets up every single GAGS icon in the game to have their own preview
icon autogenerated during compile. This is configurable to not run
during live. The icons are created in `icons/map_icons/..`
- This also has the side effect of providing accurate GAGS icons for
things like the loadout menu. No more having to create your own
previews.

<details><summary>Mappers rejoice!</summary>


</details>
<details><summary>Uses iconforge so it does not take up much time during
init</summary>

</details>
---
### Copied from https://github.com/tgstation/tgstation/pull/86482 as
this still applies:
Note for Spriters:
After you've assigned the correct values to vars, you must run the game
through init on your local machine and commit the changes to the map
icon dmi files. Unit tests should catch all cases of forgetting to
assign the correct vars, or not running through init.
Note for Server Operators:
In order to not generate these icons on live I've added a new config
entry which should be disabled on live called GENERATE_ASSETS_IN_INIT in
the config.txt
## Why It's Good For The Game
No more error icons in SDMM and loadout.
## Changelog
🆑
refactor: preview icons for greyscale items are now automatically
generated, meaning you can see GAGS as they actually appear ingame while
mapping or viewing the loadout menu.
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
## About The Pull Request
Fixes https://github.com/tgstation/tgstation/issues/90439
The PR does what it says in the title.
## Why It's Good For The Game
A) This is actually a suit of armor for the most part. (Though not as
good as the HoP's actual coat.)
B) These are supposed to have some parity with the standard uniform.
C) There wasn't really a reason why the hood did not have the same
values as the chest as far as I could tell.
## Changelog
🆑
fix: The HoP's winter coat now uses the correct suit storage options
(like the HoP's firearm). The hood now also shares the chest piece's
armor values.
/🆑
## About The Pull Request
Fixes https://github.com/tgstation/tgstation/issues/90439
The PR does what it says in the title.
## Why It's Good For The Game
A) This is actually a suit of armor for the most part. (Though not as
good as the HoP's actual coat.)
B) These are supposed to have some parity with the standard uniform.
C) There wasn't really a reason why the hood did not have the same
values as the chest as far as I could tell.
## Changelog
🆑
fix: The HoP's winter coat now uses the correct suit storage options
(like the HoP's firearm). The hood now also shares the chest piece's
armor values.
/🆑
## About The Pull Request
This changes bear butchering to produce a new bearpelt material, usable
in in-hand crafting to make the typical bear pelt hat, as well as the
new bear suit.
You can still craft your own bearpelt hat from butchering one bear, so
the exchange rate on bears murdered to cool hats is the same. Crafting a
bear suit will take 5 bear pelts, however, which is 3 kills.
Wearing the bear suit and pelt will give you the new BEAR faction,
making you friendly to bears. If you take the suit off you will
immediately be killed by a flurry of claws and teeth. Don't do that.

I know these sprites aren't pretty, but damn they took a while to make
even remotely presentable. I will accept criticism on these.
This suit/hat combo has also been added to the Gimmick Assistants
station trait. Now you can start your day off right: As a bear.
## Why It's Good For The Game
Could be useful for cytology nerds who don't want to die to their own
creations (provided those creations are bears).
Lets you walk around Icebox without getting attacked by polar bears, if
you aren't into that.
Honestly I just thought the idea was funny. The suit is another silly
costume for assistants to mess around with. The faction thing is just
another notch in the sandbox that becomes extremely relevant for one
round every once in a blue moon.
## Changelog
🆑 Rhials
add: Bears are now butchered for space bear hides, which can be used to
craft a pelt hat and suit. Wearing this suit/hat combo will make you
friendly to bears!
add: New Gimmick Assistants station trait costume: Bear!
/🆑
## About The Pull Request
So I really wanted to do the stereotypical "really I'm just a
construction worker" break-in bit, but then quickly realized you can't
even place warning cones on the floor! You have to awkwardly drop them,
or put them on a table and move them off!
Thinking about that, I remembered my similar annoyance with candles for
rituals or wet floor signs when playing a janitor.
Initially this was intended to include the ability to stack warning
cones for easy storage and placement, but I realized that was taking a
_lot_ more time than making the other items placeable on the floor.
Because of this, I decided to atomize the much less complex part off
into this pr.
So here, in this pr, we add a simple element
`/datum/element/floor_placeable` and apply it to a list of items for
which I think "placing it on the floor" makes enough sense as an
interaction.
As a side to this, we add the plastic pickup/drop noises to wet floor
signs and warning cones, because they're made of plastic and it's
leagues better than being entirely inaudible.
We remove `var/cooldown = 0` from `/obj/item/toy/cattoy` because it
wasn't used.
## Why It's Good For The Game
Can't do the stereotypical hazard vest break-in in _style_ without the
ability to actually place the cones:

Oh man is it so much less of a pain to make fancy schmancy rituals when
you don't have to place candles on tables and drag them off for it to
work:

It's really funny to be able to play with toys on the floor:

## Changelog
🆑
add: Certain items can now be placed directly on the floor in the
clicked on location. This currently includes warning cones, wet floor
signs, candles, action figures, plushies, mech toys, and a list of other
toys.
sound: Warning cones now use plastic pickup/drop sounds.
sound: Wet floor signs now use plastic pickup/drop sounds.
/🆑
## About The Pull Request
This PR:
- Converts all of the blood types into their own datums, which can be
set up to have their own colors, descriptions, and other fun unique
properties. For example, the clown blood that is constantly randomizing
itself.
- Converts all the blood decals into greyscale, which in turn eliminates
the need for separate xeno sprites. They both use the same ones now.
- Audit of blood splatters/gibs/bodyparts/organs to make sure that they
are getting the correct forensic data applied to them.
- For the admins: Adds a clown blood smite.
My primary goal with was to make the appearance of the new sprites look
almost indistinguishable to the original ones.
I consider this a "first pass", as in there are still some further
refactors I would like to do on the backend side, but am satisfied with
it enough to push it forward as a first step towards a better blood
system! I didn't want to do too much at once because of A) fatigue and
B) easier to test things to make sure I'm not breaking something
important this way.
This has been test-merged on Nova for over a week now and has been going
great, so I finally got around to upstreaming the bones to TG. Although
I did test it a bit you may want to TM it just in case I missed some
things when copying it over.
If you have a human skin suit equipped, with its hood up, the health
analyzer will report you are a `"Human"`

It's the perfect disguise for alien species
🆑 Melbert
add: Human skin suit may trick the health analyzer... sort of
fix: Human skin suit no longer gives a useless action
/🆑
Wizard and Cult armors were all thrown in randomly with all the rest of
the cult items so I moved them into their own files for organization,
documented each one, and made the hoodies copy the armor from the suit
they are apart of.
I also made 3 balance changes here:
1- Hardened cult armor (the spaceproof one), if worn by a non-cultist,
will cause random pierce and dislocation wounds to the wearer until they
take it off. From my personal testing this killed me in sub-3 minutes
while I was slower due to the dislocations.
2- Hardened cult armor can now be blessed with a bible, which will turn
it into a new set of chaplain armor. If the chap selected one already
then it'll be a new set, otherwise a random set.
3- The hardened cult armor found as icemoon loot has been replaced with
a new item, the wolf cloak, which is a hooded neck item that gives you a
wolf transformation spell
https://github.com/user-attachments/assets/597e259a-3de2-4d2e-a43a-7953ba5482dc
Hardened cult armor is the only type of cult suit that can be worn by
non-cultists, while every other gear has some way of stopping you
(including the blindfold and the flagellant's robes), this gives you
about 3 minutes time to use it and isn't a straight up "drop it lol".
For the blessing, it's a small interaction that gives one more thing
Chaplains can bless. Once Chaplains start blessing cult equipment we see
balance tipping in the station's favor, usually balance is not that much
of a concern, but this does give the Chaplain a way of expanding their
own experience (especially if they're Honorbound) in a round opening
more funny ways of roleplaying around a cult round.
🆑 Toriate, JohnFulpWillard
add: Adds a Wolf pelt cloak as an icemoon drop, replacing the hardened
Cult armor.
balance: Cult's hardened armor now deals bleeding and dislocating limbs
to non cultists who wear it, and can also be blessed into holy armor.
/🆑
## About The Pull Request
The robe now utilizes cooldown procs to limit casting, and calls procs
on the item itself to handle the summoning thing instead of a verb that
sleeps to handle a 'cooldown'.
## Why It's Good For The Game
This is like, ancient and we have stuff to handle this better now.
## Changelog
🆑
code: The paper mache robe now works a bit better under the hood.
/🆑