## About The Pull Request
Closes#89628Closes#89627
This actually could cause the owner to lose their legitimately acquired
tenacity trauma which is pretty funny
## Changelog
🆑
fix: You can no longer activate anomalock heart's voltaic
overdrive/tenacity trauma by pulling off some surgery shenanigans
fix: You no longer lose tenacity trauma gained via lobotomy after losing
voltaic override
/🆑
## About The Pull Request
Adds the Spinwarder language, and grants it to Space Russians (including
the mobs, Fugitive Hunters, and the BODA machine).

<details>
<summary>Lore Be Here, Abandon All Hope</summary>
**Spinwarder Russian**, also known simply as **Spinwarder**, was the
official language of the Third Soviet Union, and following the collapse
of that state, has remained the primary spoken language in its former
lands, including the Spinward Stellar Coalition, which is the closest
stellar governing body to SS13. This means its the language spoken by
your average Space Russian who you might find nearby to the station;
it's also the language used by devices made in and around the former
Third Soviet Union.
As an additional tidbit, the icon for the language:

is the state flag of the SSC.
</details>
## About The Pull Request
Forgot about this flag and couldn't bother fixing it for a while.
## Changelog
🆑
fix: Fixed scar overlays on eyes going out of sprite bounds
/🆑
## About The Pull Request
99% of all code was stolen completely from @MrMelbert, like I spent more
time waiting for the plant to grow for the video than actually
contributing to this
Adds a new tree mutation to the shrub (from exo crate)
It has a High Complexity Gene, which halves the harvest and blocks
pollination benefits. It produces podperson organs and limbs. Limbs are
twice as likely to drop as organs (because there's a lot more organs).
It can also drop plant meat.
https://github.com/user-attachments/assets/88bb89dd-4cd7-4bc9-ac2f-f4c67a5ea9ff
(Yes the sprite is mine please don't bully Melbert for it)
Podpeople now also have their own set of organs, which are mostly just
standard organs but colored green.
## Why It's Good For The Game
Gives us another source of organs and limbs besides the limb grower,
exosuit fab and medical protolathe. Those only produce organic and
robotic organs and limbs, but now we can also produce plant organ and
limbs! (Without committing horrible crimes). This also synergizes well
with #89306 , which makes it so plant bodyparts have actual unique
benefits (more than just a fashion statement).
## Changelog
🆑 MrMelbert, Time-Green
add: Adds an organ tree as a mutation of shrubs (from the exotic seeds
crate)! Spare organs have never been so green!
/🆑
---------
Co-authored-by: MrMelbert <kmelbert4@gmail.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
## About The Pull Request
Removes weird requirement to screwdriver arm implants to change them
into a specific configuration. Instead, they now automatically slot into
whichever zone the user has selected.
## Why It's Good For The Game
Its kinda unintuitive and a result of organs only being able to slot
into a single zone. I'm not generalizing this to organ layer because arm
implants are the only thing that does this, but if we ever get leg
enhancements it may be worth moving down into the base class.
## Changelog
🆑
qol: Cybernetic arm implants now automatically change insertion zones
without the need to screwdriver them.
/🆑
## About The Pull Request
Using the organ set bonus system, having a Strongarm implant inserted
into each of your arms lets you pry open airlocks.
## Why It's Good For The Game
People don't often like getting these, since they're out of cargo and
not terribly exciting for the effort. To incentivize getting both
installed and add a bit of a thematic advantage if you do so, they
provide the very useful benefit of door prying ~~which may or may not
get you killed by security because you won't stop opening high-security
airlocks~~.
Engineers will love it!
(Also I want to expand the set bonus stuff beyond just infusions since I
think these kinds of interactions could be quite neat)
## Changelog
🆑
balance: Having a strongarm implant installed into each arm now allows
you to pry open doors.
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
Commit messages should be descriptive of all changes.
The "incorrect `\The` macro capitalization" was intentional when it was
added, but as far as I know TG says "the supermatter" rather than "The
Supermatter," so it's incorrect now.
This is completely untested. I don't even know how you'd go about
testing this, it's just a fuckton of strings.
Someday I want to extract them and run NLP on it to catch grammar
problems...
## Why It's Good For The Game
Basic grammar pass for name strings. Should make `\the` work better and
avoid cases like `the John Smith`.
# About The Pull Request
## Nearsighted Sources
Nearsighted now associates/tracks severity applied by each source.
Previously, nearsighted only used a single variable which had to be
shared by every source, which caused problems for things like scarred
eyes which needed independent behaviour.
This implementation allows sources with different severity levels to
coexist without needing workarounds
There are now two different severity types for nearsightedness:
* Correctable: Can be mitigated with vision correction (like glasses)
* Absolute: Cannot be mitigated from any source, used for scarred eyes
Which can allow nearsighted sources to not be affected by vision
correction.
Also, since there is no more technical conflict between the two quirks,
I've made it so that nearsighted and scarred eye can be selected
together (as a QOL change)
There is also a new unit test for this new behaviour
(nearsighted_effect) that checks application and removal
## status_effect/grouped minor rework
Grouped status effects now have `source_added()` and `source_removed()`
procs, which are called whenever a source is added or removed from the
effect
I did this because the previous implementation was somewhat unwieldy.
Inherited status effects would recieve the _currently existing_ effect
through merge_with_existing, and require them to modify the existing
effect's properties, which is odd and not intuitive to work with (the
proc's `src` was not the existing effect)
It not being called for every source also made users repeat code in
`on_creation()` and `merge_with_existing()` for every source added.
This new interface should prevent repetition and be generally more
intuitive to work with.
# Changelog
🆑
refactor: Nearsighted has been reworked to track severity applied from
each source, as well as allow "non-correctable" nearsightedness (for
things like scarred eyes).
qol: The above being possible now means that you can select the
Nearsighted and Scarred eye quirks together
fix: Any bug that would occur from becoming nearsighted with a scarred
eye should be fixed now
code: status_effect/grouped merging code has been improved (i hope)
/🆑
## About The Pull Request
`get_mob_height()` is called a lot a lot, and frequently ended up
over-timing when it amounted to the same value 98% of the time.
Instead we can defer it to only update when we actually change height,
or when we pick up a trait or species that changes our height.
I also moved the monkey checks out. Made it into a species procs. I know
species procs are lame but it seems fine unless we wanna tie to the
monkey's chest or limbs or something.
## About The Pull Request
Fully black eyes caused division by zero in their overlays yeah.
## Changelog
🆑
fix: Fixed division by zero runtimes caused by black eyes
/🆑
* Death of mutant bodyparts AND external organs (#85137)
Removes mutant bodyparts and external organs from the game completely
Digitgrade behaviour was mutant bodypart for no reason
Cat ears now work with the bodyparts overlay system, same as all the
other external organs (since all their behaviour is now just on /organ
It doesn't remove all the /external types, but moves all behaviour to
/organ. I'll follow up with a PR wiping all the /external organ types,
but it's just conflict heaven so not this PR
I've also streamlined a lot of duplicate/weird species regeneration code
Melbert did the same PR as well but due to a lack of time (?) I have
absorbed his PR to double nuke mutant bodyparts
Frees us from the chain of unmodular code, and kills my greatest nemesis
(after the shuttle meteor murder bug)
🆑 Time-Green and MrMelbert
Refactor: External organ behaviour has been moved to /organ, ears now
use the same system as the other organs
Refactor: Mutant bodyparts are dead! This likely does not mean much to
the average person but it's very dear to me
code: Improves digitgrade handling in preference code
/🆑
I have absorbed #85126, using Melberts code to improve and add some
missing changes. Mainly improving the functioning of preferences and
digitgrade legs. I didn't take over the hairstyle improvements.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Fixes missing felinid ear preference (#86553)
Closes#86452🆑
fix: Fixed missing felinid ear preference
/🆑
* Spelling Fixes (#86056)
Fixes several errors to spelling, grammar, and punctuation.
Improves readability and user experience.
🆑
spellcheck: fixed a few typos
/🆑
* Fix plasmamen having all feature preferences (#86682)
Fixes#86622
Plasmamen relevant_external_organ is null, and it then checks if
relevant_external_organ is in a list containing nulls
I cleared the nulls from get_mut_organs to fix it
🆑
fix: Fixes plasmamen having all external organ species preferences
/🆑
* Fixes cat ear layering, makes getFlatIcon account for RESET_COLOR on under/overlays (#86757)
After the external organ removal pr, cat ears stopped being as weirdly
specialcased, and instead just used a `/datum/bodypart_overlay/mutant`
subtype. However, this was set up in a way where the inner ears were put
on a different layer from the outer ears, leading to wonky layering.
In this pr, we revert their layers and instead apply the inner ears as
an overlay onto the base ears, fixing this.
Thank you Melbert for the idea. o7
Additionally, as this pr tripped the screenshot tests, makes the
`getFlatIcon(...)` proc account for `RESET_COLOR` on under/overlays.
We do this by making it stop applying the colour after merging all the
under/overlays, and instead apply it and the parent color _before_
merging any under/overlays, while proxying the parent color as a new
parameter `parentcolor` to any new `getFlatIcon(...)` calls.
This coincidentally also fixes usage of `getFlatIcon(...)` on husked
bodies, as those also used `RESET_COLOR` for their blood overlay. The
screenshot tests had to be updated for this.
Fixes#86453.
🆑
fix: Fixed cat ears not layering properly.
fix: Husked bodies show their blood with the right colours in
photographs.
/🆑
* Automatic changelog for PR #86757 [ci skip]
* Fish infusion (#87030)
I'm adding a new infusion ~~(actually four, but two of them are just
holders for specific organs tied to a couple fish traits)~~ to the game.
As the title says, it's about fish.
The infusion is composed of three primary organs, plus another few that
can be gotten from fish with specific traits.
The primary organs are:
- Gills (lungs): Instead of breathing oxygen, you now need to stay wet
or breathe water vapor.
- fish-DNA infused stomach: Can safely eat raw fish.
- fish tail: On its own, it only speeds you up on water turfs, but it
has another effect once past the organ set threshold. It also makes you
waddle and flop like a fish while crawling (I still gotta finish sprites
on this one)
Other organs are:
- semi-aquatic lungs: A subtype of gills from fish with the 'amphibious'
trait, falls back on oxygen if there's no water. Can also be gotten from
frogs, axolotl and crabs.
- fish-DNA infused liver: From fish with the 'toxic' trait. Uses
tetrodotoxin as a healing chem instead of a toxin. Also better tolerance
to alcohol if you want to drink like a fish (ba dum tsh).
- inky tongue: From fish with the 'ink production' trait. Gives mobs the
ability to spit ink on a cooldown, blinding and confusion foes
temporarily.
The main gimmick of this infusion revolves around being drenched in
water to benefit from it, In the case you get the gills organ, this also
becomes a necessity, to not suffocate to death (alternatively, you can
breathe water vapor, without any benefit). To enable the bonus of the
organs set, three organs need to be infused. They can be gills, stomach,
tail and/or liver, while the inky tongue doesn't count towards it.
Once the threshold is reached, the following bonus are enabled:
- Wetness decays a lot slower and resists fire a bit more.
- Ink spit becomes stronger, allowing it to very briefly knock down
foes.
- Fishing bonuses and experience
- Resistance to high pressures
- Slightly expanded FOV
- drinking water and showers mildly heal you over time.
- for felinids: You won't hate getting sprayed by water or taking a
shower.
- While wet:
- - If the fish tail is implanted, crawling speed is boosted.
- - You no longer slip on wet tiles.
- - You also become slippery when lying on the floor.
- - You get a very mild damage resistance and passive stamina
regeneration, and cool down faster.
- - You resist grabs better.
- - get a very weak positive moodlet.
- However, being dry will make you quite squisher, especially against
fire damage, slower and give you a modest negative moodlet.
While working on it, I've also noticed a few things that explained why
tetrodotoxin (TTX) did jackshit at low doses, because livers have a set
toxin tolerance value, below which, any amount of toxin does nothing.
Also I've felt like reagents like multiver & co were a bit too strong
against a reagent that's supposed to work at very low doses, with slow
metabolization, so I've added a couple variables to buff TTX a bit,
making it harder to purge and resistant to liver toxin tolerance (also
added a bit of lungs damage).
I wanted to take a shot at coding a DNA infusion and see how chock-full
I could make it. DNA infusions are like a middle point between "aha,
small visual trinket" and organs with generally ok effects. I seek to
make something a bit more complex ~~(also tied to fishing ofc because
that's more or less the recurrent gag of my recent features)~~ primaly
focused around the unique theme of being strong when wet and weaker when
dry.
EDIT: The PR is now ready, have a set of screenshots of the (fairly mid)
fish tails (and gills, barely visible) on randomly generated spessman
and one consistent joe:

🆑
add: Added a new infusion to the game: Fish. Its main gimmick revolves
around being stronger and slippery when wet while weaker when dry.
balance: Buffed tetrodotoxin a little against liver tolerance and
purging reagents.
/🆑
* Eye wounds, scars and a new ~Pirate~ RP quirk (#87209)
Upon getting stabbed in your eyes or having a bullet fly through your
head there's a chance (minor for stabbing, extremely low for headshots)
you'll receive a new "Eye Puncture" wound which causes profuse bleeding
out of your now-empty eye hole. Once healed you'll have to deal with a
scar on your eye which cannot be cured and requires surgical
replacement. Eye scarring will reduce your eyes' max health by 15, give
you a minor screen tint and a fancy visual on your character sprite.
Getting scarring on both eyes will turn you completely blind.

This PR also introduces a new quirk which gives you eye scarring on the
eye of your choice and an eyepatch to go alongside it, just make sure
that it sits on the right eye.
Also added medical(white) subtype of eyepatches to loadout for those who
want that version instead. Credits to AnturK on discord for the idea.
Its a neat lil' feature that makes the game more immersive, and unlocks
more roleplay opportunities for players. New quirk gives access to this
feature for players who want to make it a part of their character's
backstory (or maybe as a part of permanent scar roleplaying).
🆑
add: Getting stabbed or shot in the eyes has a chance of giving you a
new wound and a semi-permanent scar, blinding you on one side
add: Added new "Scarred Eye" quirk which blinds you on one eye but gives
you a fancy eyepatch
add: Medical eyepatches have been added to loadout
/🆑
---------
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
* Resprited tails from fish infusion. (#87298)
Back when I made #87030 I got a bit lazy when it came to spriting the
fish tails and just ported a few ones from furry servers and made them
inherit the hair color. Let me tell you, those sprites kinda look bad,
and the fact that they've the same colors of hair is kinda... fuzzy, and
doesn't sit well with me, like some hairball stuck in a cat's throat.
So I took upon myself to actually make them better (and also give gill
overlays a couple extra pixels), at the cost of some of my free time and
their wagginess, because fuuuuuck wagging animations for anything that
isn't a somewhat amorphous fluffy tail. Fish don't wag their tail.
They also get one of several blue/grey tints if the owner of the part
doesn't have a peculiar skin tone like lizards or ethereals or moffs.
Anyway, comparison time:
OLD:

NEW:

Both from byond screenshots but I cut and pasted them in paint instead
of asesprite because old habits die hard.
Better sprites. Perhaps the selection of blues could be improved a bit
idk.
🆑
image: resprited fish tails from fish infusion.
/🆑
* Makes the game compile, first.
* Removes a duplicate loadout entry added by /tg/ (to avoid people's loadouts getting messed up)
* Fixed an issue with on_mob_insert() for /datum/bodypart_overlay/mutant
* Fixed an issue with the burn datum of the moth wings bodypart_overlay
* Fixing digitigrade legs not behaving as they should be
* A bunch of Insert->mob_insert and Remove->mob_remove
* Okay, now stuff gets colored properly
Also ears work properly too!
Only thing is that mutant organs on the preferences dummy don't seem to change between character, at least for most of them, which is really annoying.
* Properly returns ears to being internal organs
* Makes it so preferences can use relevant_mutant_bodyparts again!
* Makes organs properly update when changing species
* Markings now get removed when they don't need to be there on a limb
* Fully renives update_mutant_bodyparts(), as it was basically just update_body_parts() anyway at this point
* fix charging implant
* Restores the usage of simple bodypart_overlay for the sensory_enhancer and the hackerman_deck, as that was otherwise causing a bunch of runtimes
* Returns legs to being a sprite accessory, just for simplicity's sake (I don't want to have to refactor it on our end again)
* Fixes xenos not getting their mutant organs because I accidentally nulled the list for no reason 💀
* Makes it so certain organs (in this case, ears) can't be replaced when changing visual preferences, meaning Tesharis/Synths/Slimepeople will get their respective ears, regardless of what visuals they choose for them
* Fixes a small mistake with spines in the code
* Adds some mutant_bodyparts for the results of the infuser unit test. This might be a hack, but we'll cross that bridge when we get to it in the future.
* Adds a "None" option to tail_spines
* Allows ears to not constantly runtime because they don't have an accessory_name sometimes, which is a sad consequence of many species not setting their ear sprite sometimes
* Should fix CI, hopefully should be the last thing needed for this to work flawlessly from now on (crossing fingers)
* This ACTUALLY fixes the changeling transform and transform sting! Hurray!
---------
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: klorpa <30924131+klorpa@users.noreply.github.com>
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Co-authored-by: Fluffles <piecopresident@gmail.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
## About The Pull Request
Skyrat reverts
- Removes the Skyrat surgery speed bonus for 3 tiles of free space
- Removes Skyrat surgery mood debuff
Removes tend wounds slowdown on on dead people. Replaces with a slowdown
on husks.
Slightly buffs tend wounds damage healed per cycle
Introduces new surgery speed bonuses, based on TG speed mods:
- Speed bonus for operating table
- Speed bonus for operating computer
- Speed bonus for using sterilizine/cryostylane now applies to all
surgery steps, not just the one where the reagent is applied
- Speed bonus for anaesthetics/painkillers
Visual feedback of what your surgery speed modifier is
## Why It's Good For The Game
The Skyrat check is dumb and doesn't solve any problems, rather creates
them with TC still being surgery central except now people are screaming
at you to move, which there isn't enough space to do in the TC anyways.
Two doctors working on a patient should not slow down surgery. This
should not count as a clean, quiet environment for lightspeed surgery:

## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>
https://github.com/user-attachments/assets/abea1be8-463c-451f-a58b-501600bab8f0
</details>
## Changelog
🆑 LT3
balance: Removed Skyrat surgery speed bonus
balance: Removed Skyrat negative mood events for surgery
balance: Removed operating tables automatically applying numbing
balance: Added surgery speed bonus for operating computers
balance: Added surgery speed bonus for anaesthetic/painkillers
balance: Added surgery speed bonus for sterilizine/cryostylane treatment
balance: Adjusted surgery speed penalty for stasis beds
balance: Removed speed penalty for tending wounds on dead bodies,
replaced with penalty for husked body
balance: Increased tend wounds healed damage per cycle
balance: Increased functional duration of sterilizine
balance: N2O is now eligible for the analgesia surgery bonus
balance: Surgery and treatment room scrubbers filter N2O by default
qol: Bubble notification for surgery speed and damage healed
qol: Medical HUD, health analyzer, and operating computer provide tend
wounds results
qol: Text log indicates what surgery bonuses are active, and which are
available
add: added lidocaine and sterilizine to surgery trays, NanoMed, and
NanoDrug
image: anesthetic machine is now breath machine, usable with all gas
types
/🆑
---------
Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
## About The Pull Request
- Fixes some oddities with the hot/cold/tox/pressure adapted lungs
having incorrect thresholds. (For example, the hot lungs having better
cold resistance than standard lungs)
- Changes the miasma proc override to be a code edit, given the code had
fallen behind TG updates.
- Adds an air alarm check for miasma so air alarms don't warn until
miasma is actually approaching hazardous conditions, and slightly
adjusts temp alarms to account for the special lung types.
## Why It's Good For The Game
Bugfixes, the air alarms throwing false yellow/red alarms is annoying.
## Proof Of Testing
I spent hours testing this. BELIEVE ME. Also it's been test merged a
while now.
## Changelog
🆑 LT3
qol: Miasma doesn't trigger air alarms until it's reached dangerous
levels
fix: hot/cold/tox/pressure adapted lungs are now consistently better
than standard lungs in their respective area
fix: fixed sometimes passing out due to CO2 with hot/cold adapted lungs
/🆑
## About The Pull Request
Spessmen now need to blink! If you have non-robotic eyes, you'll
automatically blink every once in a while. Lizards have asynchronous
blinking, and whenever they blink one of their eyes (chosen at random)
will blink slightly sooner.
https://github.com/user-attachments/assets/e62020ef-d2f8-4634-9399-a27244326cfe
You can also blink manually, as emotes now fire the animations.
https://github.com/user-attachments/assets/80d6304f-f3c2-424a-a5aa-96a4aee7acdc
Adds a new eye-related quirk, Fluoride Stare! It will spawn you without
eyelids, preventing random or manual blinking and forcing you to wet
your eyes with some saline solution (of which you get a bottle, and a
dropper to apply it) every minute or so.
Additionally, eyes now display their color on their organ sprite,
instead of always showing up as blue.
(Don't tell roleplayers, but Fully Immerse smite now blinds you when you
blink, for true full immersion)
## Why It's Good For The Game
Spessmen blinking is just soulful, and brings some life into the game.
As for the quirk, its just a funny bit/reference that people can use
to... torture themselves?
## Changelog
🆑
add: Spessmen now blink.
add: Added a new Fluoride Stare quirk, keep those eyeballs wet, lest
they crack!
image: Eyes now display their color on their organ sprite, instead of
always being displayed as blue.
/🆑
## About The Pull Request
yeah yeah, RESET_COLOR no KEEP_APART. Only remaining ones are lighting,
and I'm waiting Potato's word on it.
## Changelog
🆑
fix: Brought back ethereal heart's shine overlay
/🆑
## About The Pull Request
Colorful reagent (and thus, crayon powders) now color your clothing,
bodyparts (except for crayon powder), hair and organs when you're
exposed to it via smoke, foam or splashed with them. Bodyparts and
organs now change their visuals according to their atom color. Due to
this, going under a shower washes your bodyparts and washing your face
washes your eyeballs (pretty cursed).
After 30 ticks, coloring on your organs becomes permanent so be careful
with crayon smoke bombs!
Additionally, moved spraycan painting for robotic limbs to left click
(since LMB mode does not affect them visually anyways due to their
paleness).
## Why It's Good For The Game
While HUDs no longer get colored with their owner, it still feels odd to
have your clothes get colored with you when you get sprayed with
colorful reagent. This remedies this issue, as your and your clothes'
coloration are now separate.
## Changelog
🆑
add: Changed how colorful reagent and crayon powder work: douse your
victims to color their clothing, bodyparts and even internal organs!
add: You can wash your eyes when washing your face at a sink
fix: You can color robotic limbs with left click (again)
/🆑
## About The Pull Request
Moth wings prevent you from flying in gravity -> same check is used for
activation -> they're activated upon implanting -> unless you spawn or
get wings in zero-g you're screwed
Closes#88460Closes#88457
## Changelog
🆑
fix: Fixed moths only being able to fly if they spawn in zero gravity
/🆑
Chance of getting an eye wound from being hit by a projectile now scales
inversely with your head armor. Meant to do this originally but forgot,
so here we go.
You'd expect that a bulletproof helmet will prevent your eyes from being
popped like balloons, especially if you don't take any damage from the
hit.
🆑
balance: Armor now decreases the chances of getting your eye blown out
by a rogue bullet
/🆑
## About The Pull Request
Fixes https://github.com/tgstation/tgstation/issues/87474
## Why It's Good For The Game
Being unable to remove eyes if there is scarring is bad.
## Changelog
🆑
fix: Fixes a runtime when trying to remove someones scarred eyes. Now
you can remove them!
/🆑
## About The Pull Request
Removes some /New overrides, replacing them either with nothing because
they're entirely redundant or with more intuitive/consistent interfaces
## Why It's Good For The Game
Code consistency/readability, fixes an obscure potential-bug that would
delete non-implanted cybernetic implants that are a part of a
loadout/outfit, I'm being haunted by code from 2015 send help
## Changelog
Hopefully not player facing. Except this random thing I saw while I was
here.
🆑
spellcheck: paywall firing pins no longer set the gun description to the
pin's description on removal
/🆑
Closes#88283
Closes https://github.com/tgstation/tgstation/issues/88320
Fixes a harddel caused by the limp status effect not being properly
deleted
Reduces update-body calls in:
- Initialize from 4 to 1
- On z-level change from 2 to 1
- On move with bloody shoes from 1 to 0
Mostly by just passing along the proper argument and removing seemingly
unnecessary update body calls
## About The Pull Request
Looks through calls to `receive_damage` and replaces them with calls to
`apply_damage`
`receive_damage` is a gross to use internal proc that doesn't take into
account physiology (damage modifiers) or even update the mob's sprite
when taking damage
It should be avoided many uses - `apply_damage`, in fact, can take a
bodypart as a target, and is overall a lot easier and more ergonomic to
use.
"So what are valid uses of it?"
- Apply damage itself, and similar direct-damage procs
- Ensuring you deal an exact amount of damage to a bodypart
- Damaging a limb with no owner
## Changelog
🆑 Melbert
refactor: A ton of things now use the more correct method of applying
damage to you. Which means they will correctly factor in damage
modifiers and are less likely to break your sprite. Some examples
include embedded objects jostling around, chiropractice, and tackling a
wall. Report any oddities, such as extreme damage or bodyparts being
wrongly affected.
fix: Having acid splashed on your face may now disfigure you and make
you bald, as it once did three years ago.
fix: Itchy heretic trauma now better checks if the bodypart is covered
or not before determining if you should itch.
fix: "Repair Puncture" logs no longer mistakenly report you are
"Incising burned flesh"
/🆑
## About The Pull Request
Upon getting stabbed in your eyes or having a bullet fly through your
head there's a chance (minor for stabbing, extremely low for headshots)
you'll receive a new "Eye Puncture" wound which causes profuse bleeding
out of your now-empty eye hole. Once healed you'll have to deal with a
scar on your eye which cannot be cured and requires surgical
replacement. Eye scarring will reduce your eyes' max health by 15, give
you a minor screen tint and a fancy visual on your character sprite.
Getting scarring on both eyes will turn you completely blind.

This PR also introduces a new quirk which gives you eye scarring on the
eye of your choice and an eyepatch to go alongside it, just make sure
that it sits on the right eye.
Also added medical(white) subtype of eyepatches to loadout for those who
want that version instead. Credits to AnturK on discord for the idea.
## Why It's Good For The Game
Its a neat lil' feature that makes the game more immersive, and unlocks
more roleplay opportunities for players. New quirk gives access to this
feature for players who want to make it a part of their character's
backstory (or maybe as a part of permanent scar roleplaying).
## Changelog
🆑
add: Getting stabbed or shot in the eyes has a chance of giving you a
new wound and a semi-permanent scar, blinding you on one side
add: Added new "Scarred Eye" quirk which blinds you on one eye but gives
you a fancy eyepatch
add: Medical eyepatches have been added to loadout
/🆑
---------
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
# Conflicts:
# code/_globalvars/traits/_traits.dm
# code/_globalvars/traits/admin_tooling.dm
# code/modules/surgery/organs/internal/eyes/_eyes.dm
## About The Pull Request
Fixes some eyes to have standartized naming
## Why It's Good For The Game
Bugfix good
## Changelog
🆑
fix: Printed Moth X-Ray eyes are now correctly named, instead of being
just "robotic eyes"
/🆑
## About The Pull Request
Lil cleanup/tweak I couldn't do in the main PR because it conflicted
before and i forgot after. Yes this works with overrides that don't have
the arg, yes I tested it.
## Why It's Good For The Game
Don't run armor code thrice please thank you
## Changelog
🆑
code: Projectile impacts no longer fetch mobs' armor values thrice
/🆑
## About The Pull Request
Deletes _internal_organ.dm and moves all override procs from it into the
main organ file, since its unused now. Fixes wrong qdel check in
identity code.
## Changelog
🆑
code: Cleaned up organ code
/🆑
## About The Pull Request
Chance of getting an eye wound from being hit by a projectile now scales
inversely with your head armor. Meant to do this originally but forgot,
so here we go.
## Why It's Good For The Game
You'd expect that a bulletproof helmet will prevent your eyes from being
popped like balloons, especially if you don't take any damage from the
hit.
## Changelog
🆑
balance: Armor now decreases the chances of getting your eye blown out
by a rogue bullet
/🆑
## About The Pull Request
This allows you to use a fishing rod during the "manipulate organs" step
of the aforementioned surgery to snatch organs from a target.
Unlike other fish sources, this one has a negative fishing difficulty of
-20, which when summed with the default minigame difficulty should still
result in a negative difficulty. In layman terms, this means the
minigame is skipped here (unless you're wearing some clunky stuff like
insulated or boxing gloves). It also has a wait time of 8 to 13 seconds
versus the more random standard 3 to 25 seconds.
A small side-effect of this is that explosions during the "manipulate
organs" step will basically disembowel you, but it kinda fits anyway.
By the by, because of this, there is a tiny chance bluespace fishing
rods can yield you random organs. Worry not, they're newly generated, so
you won't be snatching it from another player by accident (at least for
now).
## Why It's Good For The Game
It adds more possible weird and rare shenanigans involving surgery.
## Changelog
🆑
Add: You can use a fishing rod to snatch organs during organ
manipulation surgery
/🆑
## About The Pull Request
Added the FOSBURY skillchip, found in hacked toy vendors.
This skillchip allows you to bypass the emote cooldown when flipping or
spinning. However, if used too often, it will lower the chip's
integrity. At first, this is harmless, emitting sparks only, but at a
certain point, your head starts smoking, your brain begins
short-circuiting, and once the chip has lost all integrity your head
will explode in a shower of gore, giving you a cranial fissure!
Added the Chipped quirk. It allows you to spawn with one skillchip. Of
note here is that the only chips you can spawn with are the 'default'
skillchips found in the toy vendor, you can NOT spawn in with the
fosbury chip or with the musical one.
Added the Chip Connector quirk. It contains a new implant, the chip
connector, which allows you to install and take out skillchips at any
time. Being EMPed will cause it to drop one random skillchip, and if you
try using it while it's malfunctioning you'll take out a bit of your
brain instead. It can also be made at the exosuit fabricator after basic
research.
Renamed the organ slots for brain implants and made the connector
implant take the CNS slot.
## Why It's Good For The Game
> Added the FOSBURY skillchip, found in hacked toy vendors.
This skillchip allows you to bypass the emote cooldown when flipping or
spinning. However, if used too often, it will lower the chip's
integrity. At first, this is harmless, emitting sparks only, but at a
certain point, your head starts smoking, your brain begins
short-circuiting, and once the chip has lost all integrity your head
will explode in a shower of gore, giving you a cranial fissure!
During the time flipping was bugged to have no cooldown or delay, it was
really funny seeing people flip at increasingly higher speeds. Many
people miss it, and to be honest, so do I. But everything needs limits
or it stops being funny and ends up being overdone. To this end this
skillchip lets people relive those days of glory, until they go out in a
beautiful explosion. The chip will last a very long while if well taken
care of, and there are plenty of warning signs before it gets too risky
to use, but we know what players are actually gonna do, and I am looking
forward to it.
> Added the Chipped quirk. It allows you to spawn with one skillchip. Of
note here is that the only chips you can spawn with are the 'default'
skillchips found in the toy vendor, you can NOT spawn in with the
fosbury chip or with the musical one.
Chips can be kind of neat sometimes, and I think always having one as
part of your character can make for some fun things as the consistency
of it makes it more likely to stick in your mind to do stuff with.
> 'but can't you just go to the vendor at the start of every shift?'
Sure. But we have loadouts. We have tagger, musician, and many other
things that are 'roundstart bloat', and while that by itself is not an
excuse, it's part of the design of character setup: Minimizing the time
spent running around the station for things your character is supposed
to have for their personality/roleplay/gimmick. They're paying the cost
of quirk points for it, anyways.
> Added the Chip Connector quirk. It contains a new implant, the chip
connector, which allows you to install and take out skillchips at any
time. Being EMPed will cause it to drop one random skillchip, and if you
try using it while it's malfunctioning you'll take out a bit of your
brain instead. It can also be made at the exosuit fabricator after basic
research.
I like the idea of having a gross usb drive on the back of your brain
that you shove chips into and out of, especially if it drops pieces of
your brain when malfunctioning. It also adds a little bit of extra
relevance to skillchips now that you don't need to spend 15 (!!!)
seconds inside a skillstation to add one. The cost is, as stated, quite
literally losing your brain on EMP's and the moderately expensive sum of
4 points.
> Renamed the organ slots for brain implants and made the connector
implant take the CNS slot.
It annoys me that there were organ slots for 'anti drop implant'. Now
they're just slots for anything meant to connect to the
cerebellum/central nervous system, making it less brute forcey and also
adding the start of some fun exclusivity between brain implants.
## Changelog
🆑
add: Added the FOSBURY skillchip, found in hacked toy vendors. This
skillchip allows you to bypass the emote cooldown when flipping or
spinning. However, if used too often, it will lower the chip's integrity
and cause malfunctions.
add: Added the Chipped quirk. It allows you to spawn with one base
skillchip. (not the one above)
add: Added the Chip Connector quirk. It contains a new implant, the chip
connector, which allows you to install and take out skillchips at any
time.
code: Renamed the organ slots for brain implants and made the connector
implant take the CNS slot.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
# Conflicts:
# code/datums/emotes.dm
## About The Pull Request
Eye color effects are now controlled via a new overrides system, which
should prevent conflicts between different sources - such as smoking
weed, becoming a cultist, stopping your weed and getting normal eyes
(and subsequently getting your red eyes back when you get deconverted)
## Why It's Good For The Game
Should ensure that different eye color effects don't collide between
each other. Also need this for a future feature I wanna add.
## Changelog
🆑
refactor: Eye color effects are now controlled via a new overrides
system, which should prevent conflicts between different sources.
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
Herculean/Atlas spinal implants allow you to break boulders to process
them manually. Doing so also grants athletics experience.
They also increase the speed at which you throw objects, and also
increase the range further. The Atlas version also allows you to reduce
equipment movespeed penalties. (Fikou wanted me to do this for
specifically modsuits, but I don't see any reason this can't apply to
more than that, modsuits are just generally the slowest equipment you
could wear)
Boulders have 30 throw force, are by default HUGE, but have no throw
range at all and really weak tk throw range. You need a throwing booster
to throw boulders around. (They do extra damage to SPECIAL mobs, like
lavaland bosses, because it's funny to kill a god-like being with a huge
rock while slow as shit)
You naturally get athletics experience by doing some actions. Fireman
carrying, climbing tables/crates, climbing rope and climbing ladders
give you a slow and steady stream of experience. Rope gives a larger
amount if only because the process for doing so is destructive in some
way (you have to get more climbing rope eventually, so there is an
associated cost). Spinal implants now improve climbing speed for
climbing over objects.
## Why It's Good For The Game
I just had this strange compulsion to make the spinal implant make you
good at throwing boulders at lethal speeds. It already has some cool
rock-based special effects around you. Having mastery over rock throwing
just kind of made sense. Additionally, I thought it would be a funny
method for someone to be able to kill a boss via way of thrown boulders.
Or some hapless nuclear operative unprepared for a bunch of assistants
lobbing boulders at them.
Additionally, I also think it letting you break boulders for ore is a
fairly minor but fun addition. Pull boulders out of the vents, smash
them. Good work out. Particularly for miners.
I talked a while ago with I think Jacq about adding some natural methods
for accumulating athletics experience over the course of a round that
doesn't involve the dedicated weight lifting machinery/boxing bag. I
thought any method for doing that should probably be relatively slow and
definitely nonviable for significant athletics gains beyond novice
level. Mooost people will hit novice on a multi-z map if they go up and
down ladders enough. Or climb a lot of tables/crates. The results aren't
going to have much noticeable impact, however, as you only gain
appreciable benefits above novice. Probably just greater visibility of
fitness in a round. (Rather nice for the RD, who gets to show off how
swole they are more regularly).
<details>
<summary>Spoiler warning</summary>

</details>
## Changelog
🆑
balance: Herculean/Atlas spinal implants make you better at climbing
tables, throw objects much faster and throw them much further. You can
also break boulders with your bare hands.
balance: Atlas implants let you offset the weight of worn/carried
equipment (like boulders).
balance: Boulders have no throw range, but if you can throw them via
throwing range boosters (such as the spinal implant), they deal fairly
large amounts of damage. Especially to powerful mobs like lavlaand
bosses.
balance: You naturally gain a small amount of athletics experience doing
some tasks, such as climbing rope, ladders and tables/crates, fireman
carrying, or smashing open boulders.
/🆑
## About The Pull Request
Soooooooooooooooooooooooooooooooo tasting code has been jank for a good
damn while, and with this we aim to fix that- let's start from the
beginning.
Earlier when I was making a food item, I noticed that it'd never
actually have the taste I gave it, just tasting indescribable as things
without tastes do.
Weird, cause it definitely has a taste set, and plenty of nutriment
subtype reagents!...
When looking into it, I noticed that we only copy the tastes to
*specifically* the base nutriment and the vitamin subtype:
57b718ad20/code/datums/components/food/edible.dm (L215-L216)
But! Surely the other reagents should have tastes, right?.... No:
57b718ad20/code/modules/reagents/chemistry/reagents/food_reagents.dm (L119-L120)
we were always returning the tastes data, but never actually setting it
except for those two reagents, overriding any and all tastes.
This caused the non-taste of the proteins and fats to override the food
taste applied to the vitamins with their volume.
So, to fix this, we replace these hardcoded ids with a check for
`carry_food_tastes` on the nutriment reagent, such that each can
individually define whether they carry food tastes. This lets oils have
their own tastes, while letting all other nutriments carry the tastes.
We then make `get_taste_description(...)` return the base flavour if no
special flavour is found, and add base flavours to proteins and vitamins
based on what pure proteins/vitamins with no further additives would
roughly taste like.
This fixes our issue!....... Except, we now always taste something "rich
earthy pungent" when we eat. Looking into it, that's the organ tissue
reagent, used in our stomachs:
57b718ad20/code/modules/reagents/chemistry/reagents/food_reagents.dm (L232-L236)
....Because whenever we ingest something, we taste the contents of our
stomach. This was previously less noticeable, as while it *did* count,
it only added a weight for _no flavour_.
To fix this we just, well, make it so you taste what you're eating and
not the container itself.
It's as simple as separating the tasting code from the reagent holder,
and making the tasting that happens on ingest exposure use that logic
instead.
We keep the old logic for the INTJ skillchip and tasting machine, just
re-routed through this, and split up some procs to avoid too much
duplication.
This fixes our issue! Though, there's still some minor issues.
This lets us add organ tissue instead of nutriment to other organs so
they no longer taste indescribable, as it actually works properly now,
but letting organ tissue hold flavours would risk having the stomach
organ tissue permanently leech the flavours of the organ tissue you eat.
So we make a subtype of organ tissue for the stomach, stomach lining,
which cannot hold flavours.
This lets us apply the base organ tissue to all other organs without
risking stomach contamination.
## Why It's Good For The Game
It's jank to taste your stomach contents.
It's jank for organs to taste like nothing.
It's jank for reagents with flavours to never taste like anything.
It's jank for tasteless reagents to block out food flavours.
It's jank for organs to only sometimes contain organ tissues.
yeah.
## Changelog
🆑
refactor: Refactored tasting code. Please report any jank tasting
behaviours.
fix: You taste what you eat instead of the contents of your own stomach.
fix: Other basic nutriment subtypes also carry food flavours, instead of
outweighing the food flavours with their lack of flavour.
fix: Basic nutriment subtypes have a flavour they default to, in case of
not carrying any food flavours.
fix: Oils taste like oil instead of tasting indescribable.
fix: Clothing eaten by moths actually carries its flavours instead of
tasting indescribable.
fix: Organs use organ tissue instead of nutriment.
fix: You can actually taste organ tissue.
qol: Mineral slurry tastes like minerals instead of tasting
indescribable.
fix: Tasted flavours can actually be "strong" in addition to mild or "a
hint of", as intended.
qol: Flavours are only strong when their percentage of what you're
tasting is more than 4x taste sensitivity instead of 3x, for most
default tongues being 60% and lizards 40% of the drink.
qol: Tasted flavours are sorted by strength, stronger flavours coming
first.
qol: Tasted flavours are grouped into "strong", "mild", and "hint" in
the message, replacing "You can taste a hint of bitterness, alcohol, a
hint of sweetness, and a hint of cola" with "You can taste alcohol and a
hint of bitterness, sweetness, and cola".
/🆑
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
## About The Pull Request
This PR kills the abstract internal and external typepaths for organs,
now replaced by an EXTERNAL_ORGAN flag to distinguish the two kinds.
This PR also fixes fox ears (from #87162, no tail is added) and
mushpeople's caps (they should be red, the screenshot is a tad
outdated).
And yes, you can now use a hair dye spray to recolor body parts like
most tails, podpeople hair, mushpeople caps and cat ears. The process
can be reversed by using the spray again.
## Why It's Good For The Game
Time-Green put some effort during the last few months to untie functions
and mechanics from external/internal organ pathing. Now, all that this
pathing is good for are a few typechecks, easily replaceable with
bitflags.
Also podpeople and mushpeople need a way to recolor their "hair". This
kind of applies to fish tails from the fish infusion, which colors can't
be selected right now. The rest is just there if you ever want to
recolor your lizard tail for some reason.
Proof of testing btw (screenshot taken before mushpeople cap fix, right
side has dyed body parts, moth can't be dyed, they're already fabolous):

## Changelog
🆑
code: Removed internal/external pathing from organs in favor of a bit
flag. Hopefully this shouldn't break anything about organs.
fix: Fixed invisible fox ears.
fix: Fixed mushpeople caps not being colored red by default.
add: You can now dye most tails, podpeople hair, mushpeople caps etc.
with a hair dye spray.
/🆑
## About The Pull Request
Fixes https://github.com/tgstation/tgstation/issues/87474
## Why It's Good For The Game
Being unable to remove eyes if there is scarring is bad.
## Changelog
🆑
fix: Fixes a runtime when trying to remove someones scarred eyes. Now
you can remove them!
/🆑