* Initial commit
Fixes up surgery.dm
Adds some tool behavior
* More basic changes
* Checkpointing: this is a little gross right now
* Add signal COMPONENT_CANCEL_ATTACK_CHAIN
* Cleans up surgery initiator
* Mostly gets surgery (and canceling it) working
* Add abstract proxy surgery steps
Also adds them to organ manipulation
* Clean up most existing surgeries
* Rework organ openness, adds define for aborting a beginstep
* surgery works again, also implements retry defines
* fix surgery computer
* add limb repair to synth implant removal
* retry implant checks
* Clean up abductor surgeries as well as some other things
* A lot
- Reworks organ manipulation to use a series of surgery steps instead
- Fixes some runtimes with open hands
- Lets mito zero out the germ level while treating necrosis
- Adds a debug surgery tool
* add debug surgery tool, note some TODOs for later
* Add conditional check for surgeries repeating
* update surgery retry logic to make it more of a bonus
* Lets abductors automatically retry any failed surgery steps
* Rework robotic surgery to use abstract/proxy steps
* Bunch of bugfixes and more!
- Limb reattachment works properly now, you can just slap a limb onto a person
- If the limb isn't robotic, it'll be useless until the surgery is finished with a hemostat, though it might be enough to get the patient out of the OR.
* Remove more now-implicit checks
* Slight reorganization
* more fixes across the board
* Remove unused variable
* Trying not to lose my mind here
- Does away with can_run() entirely
- Cleans up visible messages in code
- begin steps should now all have ..() afterwards
- slime bone surgery should be fixed now
- more docs
* Robotic surgery is stoppable with a crowbar, all surgery can_start now checks parent
* Fix some broken robotic typepaths
* Typepath fixes, do away with some last TODOs
* Forgor
* Last cleanups before we go gold
* jk lol
* Make early surgery termination clearer
* More "last" cleanups
* Fixes tool flags, surgery initiation
- Fixes surgery not being startable by sharp objects
- Moves surgical tool flags to item traits
* Clean up surgery cancellation, especially for borgos
* I think this should GC better
* Apply suggestions from code review
Co-authored-by: Sirryan2002 <80364400+Sirryan2002@users.noreply.github.com>
* Status is now step number
* Add a 20% chance to find nothing during organ manipulation
* Improve documentation, make forced_surgery a normal arg
* Charlie's reviews
* Why are abductors like this
* Little more verification, ensuring limb augmentation and organ manip healing work properly
* Fix torso organ manip being unfinishable
* Fix cavity implants, open-hand/any item steps
* Make sharp objects not try to start an operation with help intent
* Comments, quick target fix
* Re-order list so advanced bruise pack is pulled first
* Make surgical gripper function like an open hand
* Make mito only use one unit per organ for now
* Check if user is on operable surface before trying to operate
* Reduce admin logging
* Fix some bugs that appeared during the testmerge
- you can no longer start robotic surgeries with a scalpel (lol)
- you can now cancel surgeries on the first step after I fixed some bugs that I introduced (woo hoo)
- Synthetic limb attachment is now combined into a single startable surgery step, though still retains the fun flavor of both
* Swats some more bugs
- (hopefully) fixes a huge source of runtimes where we tried to check if we could run surgeries before checking if the surgery used an organ
- In doing so, moves the logic for determining if a surgery can start to the mob-level
- Fixes robotic reattachment surgery not working
* multi-bug drifting???
- Fixes a bug where a branching surgery with an any tool option could possibly override a step with a matching tool
- Fixes some intermediate surgeries failing due to not having specified possible_locs
* A few more fixes
- Fixes any surgery tool steps again
- Fixes cavity surgery again
* Hopefully fixes getting stuck in robotic organ manip
* Remove extra parent call
* Steel review
* Steel review
* Fix spacing for possible locs
* Roundstart traits
* Advanced surgical traits and other hal fixes
Co-authored-by: Sirryan2002 <80364400+Sirryan2002@users.noreply.github.com>
```diff
-- KOM-RAD's hand slips, tearing blood vessals and causing massive bleeding in Vampy The Vampiric Clown's lower body with the hemostat!
++ KOM-RAD's hand slips, tearing blood vessels and causing massive bleeding in Vampy The Vampiric Clown's lower body with the hemostat!
```
This is a merged port from /tg/station and Virgo on logging standards.
The diary has been replaced with GLOB.world_game_log, diaryofmeanpeople
is gone (because it wasn't actually used) and a whole bunch of logging
procs have been changed to optimize Splunk.
renames take_damage() for organs to receive_damage()
renames Deconstruct() to deconstruct() for atmos objects
obj_integrity, max_integrity, integrity_failure vars moved to /obj level, obj_integrity = max_integrity on New()
Combination of #6743 and #6479, because I am a pro mlg git user, who
would never have issues with the master branch no sir
Doing surgery with another person watching, even if they don't wear a
mask, doesn't warrant an infection either, but beyond that you are
pushing your luck
However, doing surgery in this scenario:

Resulted in acute infections to the heart and lungs.
So, recap:
-Wash your hands, wash your tools if needed, clean your room, wear a
mask and nothing bad happens.
You can even invite a friend to watch over
-Do brain surgery in a blood filled room with 11 clowns honking and
breathing cooties down your patient, and it's just bad
//-Letting your patient go without closing the incisions is also bad why
would you even do that (NOT WORKING ATM)
Allows to use a droppers, bottle, drinking glasses, drinking bottles.
beakers, sprays, or if you are brave
enough, an entire bucket, to treat internal organ infections with
alcohol. The more alcoholic the thing is the more it disinfects. This is
an available option during organ manipulation, at the time where you can
apply trauma kits and etc, so you can for instance apply a trauma kit
and then drip a bottle of vodka over someone's liver to treat infection.
Also adds a debridement surgery to revive dead EXTERNAL organs. Same
list of utensils as the previous, lets you apply mithocolide on a dead
limb or chest to make it unded. Surgery steps are incision, scalpel,
applying a reagent container, cauterize.
🆑 pinatacolada
add: dirty surgery environments get you nasty infections
add: ghetto surgery internal organ disinfection with alcohol
add: dead limb revival surgery step
/🆑
Start of porting the /tg/station mecha update.
This commit only cleans up the code and adds the proper dependencies for
the mecha.
- Removes relative pathing from /datum/events
- Updated Process_Spacemove() to use
atom/movable/proc/get_spacemove_backup()
- Basically just makes launching off of unanchored objects in space an
OOP behaviour
- Removed styling atrocities and relative pathing from most of the mecha files.
- Notable exceptions:
- code/game/mecha/mech_bay.dm
- code/game/mecha/mech_fabricator.dm
- code/game/mecha/mecha_construction_paths.dm
- code/game/mecha/mecha_parts.dm
- code/game/mecha/mecha_wreckage.dm
- code/game/mecha/paintkits.dm
- Removed dyndomove/dyndoattackby/dyndobulletact. No more icky dynamic
calls. Replaced by specific code for the 3 modules that used it.
- Refactored module cooldown. It now uses addtimer, and power usage is
hooked directly into the cooldown calls.
- Added atom/movable/proc/has_buckled_mobs(). Currently not that useful,
but, necessary for porting the multi-buckling system from /tg/.
- Split code/game/mecha/equipment/tools/tools.dm into multiple files.
- Removed snowflake behaviour from exosuit drill. It now calls
turf.drill_act(src).
- Different from /tg/: Allows you to drill any wall/floor normally.
- Drill no longer gibs mobs. It deals 80 organ damage instead.
- Drill can be used to harvest dead mobs.
- Removed all global_iterator systems from mecha and mecha equipment.
Everything now uses object processing.
- Mecha now have a turn sound variable and step sound variable. Updated
all subtypes to use these instead of snowflake domove procs.
- Removed mecha_do_after, mecha now uses the normal do_after.
- Removed enter_after, same as above.
- /obj/mecha/Process_Spacemove no longer strangely calls the user's
spacemove.
- /obj/mecha/return_pressure now uses return_air instead of copypasted
cabin air detection.
- Same for /obj/mecha/return_temperature
- Added /obj/mecha/Exited. Basically, properly clears occupant refs,
even if they teleport out/otherwise exit improperly.
- Added hooks for mecha action buttons; Didn't implement them yet.
- Moved mecha UI to code/game/mecha/mecha_topic.dm
- Fixed turfs not updating atmos when ChangeTurf(/turf/space) is used.
- Updated visible_message and audible_message. Both now use
get_mobs_in_view() to ensure that mobs inside containers can see
messages.
- Removed /obj/item/mecha_parts/mecha_equipment/tool subtype. It had no
use. Any subtypes are now just subtypes of
/obj/item/mecha_parts/mecha_equipment.
- Decreased destroy objective chance from 10% to 4% for clings and
traitors. Should be so slightly rarer than hijack, so you should stop
seeing it every round.
- Changeling arm blades can be used as ghetto circular saws, this will
help changelings with their debrain objectives a bit, a ghetto scalpel
is easily found in the form of a glass shard already.