Commit Graph
17 Commits
Author SHA1 Message Date
AeriandGitHub 9036e5bd26 Protean surgery and also spellcheck I guess (#5683)
# About The Pull Request
Restores Protean self-surgery, which was broken by the TG surgery system
rework. The rework introduced required_bodytype gating on all mechanical
surgery operations and an OPERATION_SELF_OPERABLE flag requirement for
self-targeting. Protean limbs use BODYTYPE_NANO, which was never added
to any of these checks, leaving Proteans unable to access the synth
flavored surgery operations they're intended to have and locked out of
self-surgery entirely.

The fix adds BODYTYPE_NANO to the required_bodytype of all six
preparatory mechanical operations in operation_generic_mechanic.dm
(unscrew shell, open hatch, screw shell, prepare electronics,
unwrench/wrench endoskeleton) and to the two prosthetic organ/feature
manipulation operations in operation_organ_manip.dm.

Synths were already handled by a prior Nova edit that added
BODYTYPE_SYNTHETIC; this PR extends the same treatment to Proteans and
logs it with a Bubber Edit comment.

As a drive-by shooting fix, I also changed a persistent "Orginal" [sic]
typo in BUBBER/NOVA EDIT comments across six surgery operation files.
These were copied verbatim from the original Nova edit and propagated
into every subsequent edit comment in the directory.

# Why It's Good For The Game
Proteans are a Bubberstation-original species with self-surgery as
intended functionality. The TG surgery rework silently broke this
without any corresponding fix being applied downstream. A surgeon could
still operate on a Protean using organic surgical tools but this is
sub-optimal and annoying.

# Proof Of Testing
Spawned as Protean, laid down on a table, applied surgical drapes,
worked through the full mechanical surgery chain on myself. Do you
really need a screenshot of me laying on a table?


🆑
fix: Protean self-surgery now works correctly after the TG surgery
rework broke it
fix: Surgeons can now use mechanical tools on Proteans as intended,
consistent with Synth behaviour
spellcheck: Fixed "Orginal" typo in NOVA/BUBBER EDIT comments across six
surgery operation files
/🆑
2026-05-26 21:08:50 -04:00
+37 21b4095dfd [MDB IGNORE] [IDB IGNORE] Upstream Sync - 04/17/2026 (#5453)
Upstream 04/17/2026

fixes https://github.com/Bubberstation/Bubberstation/issues/5549

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: rageguy505 <54517726+rageguy505@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Aliceee2ch <160794176+Aliceee2ch@users.noreply.github.com>
Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
Co-authored-by: Tsar-Salat <62388554+Tsar-Salat@users.noreply.github.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: Maxipat <108554989+Maxipat112@users.noreply.github.com>
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: SimplyLogan <47579821+loganuk@users.noreply.github.com>
Co-authored-by: loganuk <fakeemail123@aol.com>
Co-authored-by: Leland Kemble <70413276+lelandkemble@users.noreply.github.com>
Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com>
Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
Co-authored-by: Lucy <lucy@absolucy.moe>
Co-authored-by: siliconOpossum <138069572+siliconOpossum@users.noreply.github.com>
Co-authored-by: Isratosh <Isratosh@hotmail.com>
Co-authored-by: TheRyeGuyWhoWillNowDie <70169560+TheRyeGuyWhoWillNowDie@users.noreply.github.com>
Co-authored-by: Neocloudy <88008002+Neocloudy@users.noreply.github.com>
Co-authored-by: Alexander V. <volas@ya.ru>
Co-authored-by: ElGitificador <168473461+ElGitificador@users.noreply.github.com>
Co-authored-by: Twaticus <46540570+Twaticus@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Co-authored-by: Cameron Lennox <killer65311@gmail.com>
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: Layzu666 <121319428+Layzu666@users.noreply.github.com>
Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com>
Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: mrmanlikesbt <99309552+mrmanlikesbt@users.noreply.github.com>
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: John F. Kennedy <54908920+MacaroniCritter@users.noreply.github.com>
Co-authored-by: Cursor <102828457+theselfish@users.noreply.github.com>
Co-authored-by: Josh <josh.adam.powell@gmail.com>
Co-authored-by: Josh Powell <josh.powell@softwire.com>
Co-authored-by: Yobrocharlie <Charliemiller5617@gmail.com>
Co-authored-by: Hardly3D <66234359+Hardly3D@users.noreply.github.com>
Co-authored-by: shayoki <96078776+shayoki@users.noreply.github.com>
Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
2026-05-16 00:56:00 +02:00
RoxyandThe Sharkening 26d7f00a76 Roxy Comments 2026-04-11 08:57:59 -06:00
shayoki be0da4af11 probably 3 2026-03-10 11:55:19 -05:00
SmArtKarandGitHub 91a8c52903 Fixes lipoplasty being usable to dupe infinite meat (#95013)
## About The Pull Request

Closes #95010
A) Fatness was only updated in stomach's life cycle, which was not
called if the patient was stasis'd. It should also be called in
update_nutrition on carbons (can't be exclusive to there as it also
relies on ticking from stomachs)
B) Lipoplasty AND checked obesity and nutrition rather than OR checking
which could allow you to ***increase*** the target's nutrition if they
were obese but hungry (from not being hungry for long enough)
C) It also didn't check for NOHUNGER which also would prevent hunger
updates.
D) It also used old species system for picking the meat type rather than
spawning chest's meat type.

Also converted magic numbers in lipoplasty/butchering/gibbers to fetch
nutrition_factor from nutriments they fill the meat with.

## Changelog
🆑
fix: Lipoplasty can no longer be used to infinitely farm meat or
increase patient's nutrition level
fix: If your chest has somehow been swapped, you will drop the correct
type of meat when undergoing lipoplasty
code: Removed magic numbers in human meat related code
/🆑
2026-01-29 20:27:05 -05:00
MrMelbertandGitHub bd179b079a Secure prosthetic surgery ignores clothing (#95011) 2026-01-29 19:50:42 +01:00
SmArtKarandGitHub 8e63bdd337 Moves disfiguration to be handled by the head instead of the mob itself (#94948)
## About The Pull Request
TRAIT_DISFIGURED and physical disfiguration are now handled by the head
bodypart rather than being on the mob itself. This is mostly for
internal purposes, but it does mean that:
- Players can now perform plastic surgery on torn off heads.
- Disfigured mobs' heads keep their face hidden, and when attached to a
different body won't magically get repaired and vice versa, attaching a
new head to a disfigured corpse no longer disfigures it.
- Robotic (and other non-huskable) heads no longer become disfigured
from husking
- Also in the rare case of grafting a head torn off from a husk onto
another body, they no longer permanently turn into an Unknown. (lol)

## Why It's Good For The Game

Saner code, we generally want limb-specific behaviors to be on limbs
themselves and not on the mob. Also yeah that one weird edge case.
~~Husks are next on the chopping block~~

## Changelog
🆑
qol: Plastic surgery can now be done on detached heads.
refactor: Refactored how disfiguration is handled to be stored on head's
side
fix: Robotic (and other non-huskable) heads no longer become disfigured
from husking
fix: Attaching a head from a husk to a different body no longer
permanently turns them into an Unknown.
/🆑
2026-01-28 20:25:25 +00:00
MrMelbertandGitHub a9bf8675ce Tend wound stats are reported through more means (#95003)
## About The Pull Request

In addition to holding an analyzer, the following will also show you
precise stats during tend wounds

- Operating computers
- Vitals readers
- The Health Analyzer MODsuit module

## Why It's Good For The Game

Health analyzer displaying stats during tend wounds is very helpful
But so is holding other surgical tools. 
So I figure why not allow the three other means of health scanning
people hands free work in place of an ol' analyzer?

## Changelog

🆑 Melbert
qol: Operating computers, Vitals readers, and the health analyzer
MODsuit module (when active) can be used in the place of a health
analyzer to display precise health stats during a Tend Wounds surgery
/🆑
2026-01-27 19:02:58 -05:00
BloopandGitHub 3a1b6a7995 Adds some extra args to some surgery procs (#94904)
## About The Pull Request

Tin, we already have these available, might as well make them available
to the procs as well.

## Why It's Good For The Game

Code extensibility

## Changelog

Not player-facing
2026-01-19 12:21:50 -06:00
MrMelbertandGitHub b3e15f3027 Singing cauteries (#94880)
## About The Pull Request

Corrects Singing -> Singeing

Also as this proc can be invoked with a suture, add a message for that
too

## Changelog

🆑 Melbert
spellcheck: Corrects the blind message for manual cauterization
/🆑
2026-01-16 17:10:51 -05:00
MrMelbertandGitHub 2a9faabcd7 Fix wound surgical state (#94858)
## About The Pull Request

Fixes #94855

Three things

1. We filter incompatible surgical states when removing the wound. I'm
not sure if this contributed to the problem, but it seemed wrong
regardless - At that point we don't really care about incompatible
states since we're removing everything regardless
2. `COMSIG_BODYPART_UPDATING_SURGERY_STATE` was registered before adding
the states, which would cause the act of adding the states to clear the
variable.
3. The signal handler was missing the source arg, so it was removing the
wrong values.

## Changelog

🆑 Melbert
fix: Surgical state applied by wounds no longer persist after fix
/🆑
2026-01-14 15:14:42 -07:00
MrMelbertandGitHub 156b8b0bae Adds an operation for treating a dislocation, also wound surgeries get wound scanner boost (#94727)
## About The Pull Request

- Adds `"reset dislocation"` operation, which effectively does
everything that manually treating a dislocation does, with the same
tools.

- All wound surgeries now get a speed boost for treating a scanned wound

## Why It's Good For The Game

- A doctor who attempts to reset a dislocated limb of a patient
undergoing surgery would fail due to attempting to "operate" on the
patient with the bonesetter (surgery takes priority over wound
treatment). I decided the best way to fix this was to add an operation
analog to the manual wound treatment. Effectively the same thing (same
steps, in fact), but doing the operation form is faster and doesn't
leave residual brute damage, to reward people who go through the effort.

- For consistency reasons this made sense to me - scanning a wound
improves manual treatment rates, so it should also apply to surgeries
which treat the wound.

## Changelog

🆑 Melbert
add: Adds "reset dislocation" operation, which is a surgical analog to
resetting a dislocated limb. Same tools, same steps, but if you go
through the effort of doing it surgically, it's faster and safer.
add: All wound surgeries now gain a speed bonus from being wound
scanned.
/🆑
2026-01-05 16:27:48 -07:00
MrMelbertandGitHub 5ef61fde05 Being drunk makes you a worse surgeon unless you land in the Balmer Peak (also Balmer Peak tweak) (#94674)
## About The Pull Request

1. Balmer Peak voicelines can only trigger if you are of a whimsical
personality
2. If you are drunk, you get worse at surgery (up to 12x worse at 100
drunkness). However if you are within the Balmer peak you are BETTER at
surgery (0.8x).

## Why It's Good For The Game

1. Balmer voicelines are super annoying so I figure it should be
restricted to characters that would say it ICly
2. Being drunk obviously means you're bound to screw up surgery, right?

## Changelog

🆑 Melbert
add: Scientists only say Balmer voicelines if they are whimsical
add: Surgery gets slower if the surgeon is drunk, UNLESS you land in the
Balmer Peak, then it's actually faster.
/🆑
2026-01-04 20:38:22 -07:00
MrMelbertandGitHub d8110cb820 Fix several surgery operations having priority (#94712)
## About The Pull Request

From the horses mouth, "copypasta" 

## Changelog

🆑 Melbert
fix: Fixes more surgeries being marked as a priority operation that
intended
/🆑
2026-01-03 21:35:34 -07:00
SmArtKarandGitHub a4f0dcb76f Adds flaying, human butchering and limb surgeries (#94612)
## About The Pull Request

Merry Christmas!

This PR expands on the more gruesome areas of chef content, such as
cannibalism.
Human limbs can now be individually butchered for their meat and skin
with a knife or another butchering implement once the skin has been cut
and retracted (forks now can be used as bootleg retractors). If the limb
contains organs, those will need to be removed first, which also can be
quickly performed with a butchering tool at the cost of damaging the
inhards (head and chest will require the bone to be cut first, which can
be done with a butcher's cleaver if you don't have a saw)
You can also butcher humans whole by right clicking them with a
butchering implement on combat mode, which will attempt to gut/cut apart
the selected limb. Obviously this requires the limb to be prepped first,
so meat hooks/kitchenspikes now allow mobs strung on them to be operated
on without needing drapes. Its a pretty bad spot to be performing
surgeries at though, so beware! Torsos can only be butchered after all
other limbs have been. The gutting/butchering delay is based off the
owner's stat, halving if the limb is detached and doubling if the owner
is still alive and kicking.

<img width="392" height="265" alt="dreamseeker_D7QWbWKStd"
src="https://github.com/user-attachments/assets/050d7c25-3572-4b02-ae93-d8efefe54885"
/>

(The video is too large for github)
https://streamable.com/459a0y

After being butchered, most limbs will leave behind a nonfunctional
skeletal limb (with exceptions like jelly limbs with no skeleton inside)
which is always disabled. Skeleton chests husk their owner, so you'll
need to replace it first.
Gibbers now source their meat from the victim's limbs (and not their
species) at an RNG-based percentage based on the matter bin's tier.

As to allow individual limbs to be butchered, you can now perform (some)
surgeries on individual limbs. There are some obvious restrictions like
zombification or bioware surgeries, but most of the ones that make sense
can be performed on someone's chopped off head as long as you've got the
tools.
Wounds also contribute to surgeries now, major slash wounds count as
cut/open skin (and sealing the vessels would reduce their bleed rate),
and critical blunt wounds count as sawed bones.

I've refactored gibbers, butchering and meat spike code as well as fixed
some backend bugs while I was at it.

## Why It's Good For The Game

While rather gruesome, I feel like the freedom which these mechanics
provide fits us pretty well. We already have plenty of nasty stuff and
this doesn't really go that much further, and a chef serving their own
leg in their dish is pretty funny. (Also you can scrape plasma off
plasmamen bones)
2025-12-31 12:55:39 -06:00
MrMelbertandGitHub debc5754b2 Fix inverted moth wing repair check (#94616)
## About The Pull Request

The instructions state `if the limb has bones, they must be intact` 
But the code checked `if the limb has bones, they must be be sawed`

Also removed the organ flag requirement (it's redundant)
Also updated some wording

## Changelog

🆑 Melbert
fix: Moth wing repair surgery correctly checks that bones are intact
rather than bones are sawed
/🆑
2025-12-28 22:06:59 -05:00
MrMelbertandGitHub bfdb237612 Spooky Scary Supreme Surgery (Rework) (#93697) 2025-12-19 18:42:58 +01:00