Commit Graph

79 Commits

Author SHA1 Message Date
Nathan Winters 67f8814c5a Fixes cyborgs being perfect surgeons (#21749)
* Fixes borgs being perfect surgeons

* Replace an outdated tip with an actual tip
2023-07-24 14:59:51 +01:00
Luc 270677fb73 Add signal handling for organ removals mid surgery (#20567) 2023-03-13 22:56:07 +00:00
GDN 07a84dd5c8 Minorly refactors the "gripper" cyborg item and moves the "drop gripped item" to an action button (#19990)
* moves the "Drop item" verb and minorly refactors grippers

* converted to an action button + ryan's review
2022-12-24 12:48:42 -05:00
Luc d00d53803f Require lying down for a surgery step to operate (#19570) 2022-11-01 21:33:32 +00:00
Vi3trice 05d93f665a [TM] Port TG Jump Point Search and SSpathfinder (#18984)
* move along move along

* Update bot.dm

* Diagonals are now more expensive

* Update path.dm

* Update parrot.dm

* Update path.dm

* Tweaks

* Fix cleanbot, add path safety

* Tweaked, added a safety, removed the previous one

* Update medbot.dm

* path.len isn't very safe as a whole, floorbots also had order of operations wrong

* Update medbot.dm

* clings not even once

* Back to the drawing board

* Update path.dm

* Make mules actually clear the drawn path.

* Make bots use step_towards unconditionally instead of flipping between step_to and Move

* Making extra sure the path is cleared. Somehow path was left over.

* Check for length as get_path_to is always true

* This and that
2022-10-30 15:54:51 +00:00
Vi3trice 03ce2920e1 Defining Part 4 - Code cleanup toward defines (... and the rest) (#19388)
* I wasn't done

* nits
2022-10-28 19:28:23 +02:00
Vi3trice 59dfdba201 Everything else through the door (#19358) 2022-10-13 21:56:58 +02:00
Luc b060b4b6d2 Surgery Hotfixes: Part 1 (#19108)
* Fixes up a few notable bugs with surgery
- Synthetic cavity implants now have a close step (oops!)
- Fixes up logic for intermediate surgery steps

* nah I'll deal with this later

* oops this was unused
2022-09-21 21:46:03 +01:00
Luc 346a1b8142 Yet Another Surgery Refactor (#18325)
* 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>
2022-09-16 18:48:43 +01:00
alex-gh fc2b99bd51 Surgery refactors (#18183)
* Remove dead code

* Refactor magic numbers to defines
2022-07-05 21:20:38 +02:00
moxian 1f39be6cfb [GBP no update] Fix the display of the zone being operated on during the surgery (#18087)
* Fix the display of the zone during the surgery

* wrecks => rips. Better english
2022-06-26 11:32:41 +01:00
moxian f4bd86cc5e Surgery on napping people wakes them up. (#17661)
* Surgery on napping people wakes them up.

* Fix a potential afreeze issue

* Code review

* has_status_effect now returns `null` if no status effect

* move `voluntary` to be an arg to New

* Update code/modules/surgery/helpers.dm

Co-authored-by: Charlie <69320440+hal9000PR@users.noreply.github.com>

* And this other IsSleeping call

Co-authored-by: Charlie <69320440+hal9000PR@users.noreply.github.com>
2022-06-25 00:20:24 +01:00
Fox McCloud 02b9445b9b Refactors DNA Mutations; Refactors Mutations to use Traits (#15483)
* Refactors Mutations

* traits

* more work

* styling fix

* yet even more work

* oh hush

* almost there

* it continues yet further

* and that's genetics done

* and that's it folks

* last bit and golem fixup

* oof

* oops

* tweaks and fixes

* styling
2021-02-21 21:25:19 +00:00
AffectedArc07 0aa89bd3de Merge pull request #13748 from Fox-McCloud/rig-purge
Purges Rigs
2020-08-09 18:21:39 +01:00
Aziz Chynaliev 12c031760a Fix runtime when 'item' is null during surgery germs spreading (#13975)
* Fix runtime when 'item' is null during germs spreading

* Change explicit null check to implicit

* Oops
2020-08-02 23:28:39 -06:00
Fox McCloud c4143aedf0 Purges Rigs 2020-07-01 13:09:15 -04:00
Fox McCloud 5194094d3a Refactors Zone Selection (#12523) 2019-10-08 21:11:09 -04:00
Fox McCloud a4641cc0cf Removes Dirty Floors (#12519) 2019-10-08 20:58:05 -04:00
alex-gh 7c57d652e1 Fixed non-breating mobs adding to germ_level in surgery. 2019-02-02 13:40:05 +01:00
Desolate f7627d2fcb Resolves conflicts. 2018-10-11 05:36:22 -05:00
joep van der velden c8e7625978 Removed the comment 2018-10-03 22:45:13 +02:00
joep van der velden 1eab4397c0 Fixes it 2018-10-03 22:42:00 +02:00
Desolate c974e29a3c global lists global defined 2018-10-02 15:52:46 -05:00
Fox McCloud 7440dad57e further conversion 2018-07-18 01:13:24 -04:00
Fox McCloud aae5405d03 AGHHHHHHHHHHHHHHHHHHH WHATTT 2018-07-17 04:58:36 -04:00
Fox McCloud fd3e0e950f Fixes Ridiculous Surgical Infections 2018-07-12 17:14:16 -04:00
Fox McCloud 27ebe7a6fe Standardized Robotic Organ Checking--Removes Mechassited Organs 2018-07-07 21:33:42 -04:00
Fox-McCloud 6ec234430e Merge remote-tracking branch 'upstream/master' into lungsss
# Conflicts:
#	code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
#	code/modules/mob/living/carbon/carbon_defines.dm
2017-11-18 18:49:47 -05:00
TDSSS 1e7575afde Adjusted ghetto surgery tool chances to keep ghetto surgery chances overall roughly equal. Also added rigsuit removal to list of surgeries that don't care about pain. 2017-10-15 15:28:25 -07:00
TDSSS 897e201775 Started on surgery stuff
Adds pain modifier to surgery if patient is conscious

Now actually compiles

Makes surgery easier if patient is drunk, allowing for easier ghetto surgery.

Now reduces failure chance if painkillers are in the patient's system.

Fixed argument spacing (hopefully)

Repairing robotic limbs no longer needs anesthesia.

Revert "Repairing robotic limbs no longer needs anesthesia."

This reverts commit 12c1f4140a.

Repairing robotic limbs doesn't cause a pain modifier, because they don't feel pain. Now actually works.

Moves typecasting from the helper proc to outside fo it and checks for sleeping.

Now correctly checks for repair to robotic limbs.

Increased effectiveness of Hydrocodone and Morphine to 99% on maintainer recommendation.
2017-10-15 15:28:13 -07:00
Fox-McCloud 9d14e6c9da Merge remote-tracking branch 'upstream/master' into lungsss
# Conflicts:
#	code/modules/mob/living/carbon/alien/humanoid/life.dm
#	code/modules/mob/living/carbon/human/life.dm
#	code/modules/mob/living/carbon/human/species/station.dm
#	code/modules/surgery/surgery.dm
2017-08-05 19:03:52 -04:00
Fox-McCloud b34c14739b Various little fixes/refactors 2017-07-25 08:15:25 -04:00
Fox-McCloud 77375fc1c4 Breathing is Now Handled on Lungs 2017-07-19 03:28:21 -04:00
Fox-McCloud b07eb1a0b5 Refactors Species Flags into Species Traits List 2017-07-13 18:55:45 -04:00
Sam 4d57fff5c9 Updates Intents 2017-06-10 09:43:36 +01:00
Crazy Lemon 4140b89b33 catch a possible runtime real quicklike 2017-04-16 15:03:15 -07:00
pinatacolada fae387b51a i went to great lengths to fix this 2017-04-06 18:34:38 +01:00
pinatacolada eafa00f4b7 Dirty surgery rooms more prone to infections and ghetto surgery internal organ disinfection and dead limb revival
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:

![why would you even do this](http://puu.sh/u7kLj/f3a444e1e9.jpg)
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
/🆑
2017-03-23 15:10:28 +00:00
Fox-McCloud 991bd8c702 Fixes Abductor Surgery 2017-03-17 18:28:23 -04:00
Markolie 8ed466955e Surgery toolspeed changes 2017-03-08 10:46:43 +01:00
Markolie 3aa1399995 Implement usesound/toolspeed 2017-03-07 16:46:28 +01:00
Crazylemon64 28de2252c6 Removes debugging code 2016-08-14 18:27:04 -07:00
Crazylemon64 7d2983b4bf Makes IPC surgery much more reliable, object insertion surgery
works better now, and `can_use` is actually called now.
2016-08-14 18:12:23 -07:00
Tigercat2000 71e5344a98 Mass replace 2016-07-07 19:34:02 -07:00
Tigercat2000 78f53553f8 Reduce lines by removing blank lines added by PJ's script 2016-04-05 08:25:57 -07:00
Tigercat2000 9d430844c3 Replace most (if not all) output << operators with to_chat(user, message)
Currently, to_chat is literally just a proc that does user << message.
But it'll let us do output modification in the future, especially for
something like Goon's HTML chat.

Big thanks to PJB for his to_chat script, see
https://github.com/d3athrow/vgstation13/pull/6625 for more details.
2016-04-05 08:15:05 -07:00
Fox-McCloud 4316775c1a Surgery Tweaks 2016-03-04 21:47:41 -05:00
Aurorablade 378c5d03bc removes the removed so we can remove while we remove 2016-02-27 22:51:40 -05:00
Aurorablade c5011003bd its done
Review it, test iit locally. going to bed now, long shift at work
tomarrow.
2016-02-12 03:04:24 -05:00
Aurorablade e1899e4af9 almost 2016-02-06 18:42:26 -05:00