Files
Bubberstation/code/modules/surgery/organs/internal/appendix
Bloop 6df77ad80d [MIRROR] Death of mutant bodyparts AND external organs (#85137) (#4335)
* 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:

![immagine](https://github.com/user-attachments/assets/a4965508-22e2-4d3a-8523-29fec6bce91e)

🆑
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.

![image](https://github.com/user-attachments/assets/c1ae4ff3-6844-405d-819b-9c390511e321)

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:

![immagine](https://github.com/user-attachments/assets/a4965508-22e2-4d3a-8523-29fec6bce91e)

NEW:

![immagine](https://github.com/user-attachments/assets/0f8e80cd-d11f-4fd4-a919-acb7237fa927)

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>
2025-01-12 21:42:00 -05:00
..