## About The Pull Request
This has the potential to create a lot of needless mob updates which is
not great. Now should only update a mob's clothing if it was actually
washed.
This PR
1) ensures that all wash() procs return a bitflag.
2) ensures that `wash()` proccalls which result in expensive operations
like icon updates only do so when it is necessary
## Why It's Good For The Game
Updating mob sprites is expensive, and doing it when nothing has been
changed is bad.
## Changelog
Nothing really player facing
## About The Pull Request
I'm making sure that `update_body_parts()` is properly called when
changing bodypart overlays, so that they actually show up the very
moment they were changed. However, to avoid redundant
`update_body_parts()` calls on init or while changing species, I've
added a living flag that stops `update_body_parts()` from being called
in these situations. I also scoured the codebase for other redundant
`update_body_parts()` to remove and things to clean up a little.
## Why It's Good For The Game
This automates the process of calling `update_body_parts()` a bit.
## Changelog
Mainly backend.
## About The Pull Request
Over half of the line changes are merely from splitting the
fish_types.dm into several files since it was over 1k lines already.
One of the small issues with fishing right now is RNG. You want to get
some specific fish, and you go through all the micromanaging with hooks,
reels and baits only for the random number god to say "nope", and that's
only going to get worse the more fish are in the game.
However, I've a solution: (unconsumable/reusable) fishing lures, each of
which attracts different fish based on different conditions. The only
caveat is that they require to be spun at set intervals (usually 1 to 3
seconds, depending on the lure, with a second-long window). Worry not,
there're visual cues in the form of a green/red light hovering the
fishing float, so you won't get screwed up by the server slowing down or
whatever.
The whole box of lures (12 so far) can be from cargo for the fair price
of 450 credits.
I've also added 5 new fish: monkfish, plaice, pike, another punnier
variant of the pike, perch and squid. The latter is quite special
because of the ink production trait, which lets players use it to blind
others at a close range and when butchered, it yields an ink sac, which
can be processed into a can of squid ink (one less item exclusive to the
produce console), or thrown at people in a sort-of-similar fashion of
banana cream pies (except it's ink).
<details>
<summary>Images</summary>
Fishing lures (forgot to take my cursor off the veggie one before the
screenshot):

The five new fish:

</details>
<details>
<summary>A table of fish catchable wth each lure (excluding
holodeck)</summary>

</details>
A few more things in the CL, baitfish are a thing now.
## Why It's Good For The Game
There should be ways to contrast some of the RNG fishing has. After all,
it's only going to get more random the more fish are in the game.
Furthermore, I find it disappointing that a lot of food stuff is
exclusive to the ingredients console and there're no other ways to get
it.
## Changelog
🆑
add: Added fishing lures to the game. They don't get used up like baits
and let you catch specific kinds of fish, though they need to be spun
every few seconds. The whole set can be ordered from cargo for 450
credits.
balance: The magnet hook now removes dud chances.
add: Added five new fish types: perch, two types of pike, monkfish,
plaice and squid. Squids have a fairly special ink production trait,
which lets you use them (unless dead) to ink people face at close range,
and can be butchered for an ink sac, which can either be processed into
canned squid ink, or thrown at someone.
fix: Refactored throwing a little. Some items (specifically
components/elements) won't be triggered when caught. no more plates
shattering despite being caught for example.
add: Goldfish, lavaloops, needlefish and armorfish can now be used as
baits.
/🆑
## About The Pull Request
Fixes https://github.com/NovaSector/NovaSector/issues/4337https://github.com/tgstation/tgstation/pull/85470 added some checks in
`/obj/item/gun/ballistic/shoot_live_shot()` that were causing runtimes
in probably most of the ballistic gun types. To see for yourself just
take out a revolver and shoot it a few times, then check the runtimes
log.
The runtime was preventing the parent
`/obj/item/gun/ballistic/shoot_live_shot()` from being called, which is
where the firing sound gets played.
Fix is just acknowledging that `chambered` can be null at this point in
the call chain and adding a quick check in there for good measure. Also
fixes the runtime here, though that one didn't cause any functional bugs
apart from polluting the log since it occurs at the end of the proc.

Also adds a missing multiline list comma that I noticed cough.
## Why It's Good For The Game
Guns go boom again.
## Changelog
🆑
fix: due to a clerical error, all ballistic guns were shipping with
built-in silencers. this has been resolved-they will now make noise once
again when fired.
/🆑
## About The Pull Request
Creamed component has been refactored into a more generic face_decal
component, with pie-unique logic moved to a subtype instead.
Spraypainting someone in the face now uses the new component instead of
modifying their... lipstick.
Closes#83614 by adding monkey and lizard spraypaint sprites, just like
with creampies
Fixes an issue with spraypaint overlay being removed when something is
covering your hair due to how lipstick and beards are rendered.
## Why It's Good For The Game
Easier to use, could be used for more cases.
## Changelog
🆑
refactor: Refactored creampies and spray paint to use the same
component.
sprites: Monkeys and lizards now have their own face spraypaint overlays
/🆑