Files
Bubberstation/code/modules/surgery/implant_removal.dm
SkyratBot 3916ea03de [MIRROR] Kapulimbs [MDB IGNORE] (#12497)
* Kapulimbs

* conflicts

* part one of fixes

* more fex

* ugh

* more fix

* eee

* e

* more fix

* Well it compiles, but we need to get digi legs working

* more fixes

* https://github.com/tgstation/tgstation/pull/65887

* https://github.com/tgstation/tgstation/pull/65904

* https://github.com/tgstation/tgstation/pull/65923

* more fix

* now uses dna specific icon overrides.

* species code no longer dictates what icon the limbs use

* digitigrade legs implemenation

* more fixes, species indexing, species bodyparts

* remaining mutant bois

* 0

* okay this work!

* IPC stuffs

* inv file uses

* optimisation and limb string rendering digitigrade stuff

* wew

* partial vox support

* bodymarkings are now stored on the bodypart

* limb key caching

* Update carbon_update_icons.dm

* Update carbon_update_icons.dm

* Moves our mutant variance to the new system and makes shoes squash.

* all legs do it

* https://github.com/tgstation/tgstation/pull/65918

* https://github.com/tgstation/tgstation/pull/65899

* https://github.com/tgstation/tgstation/pull/65990

* teshari bodytype

* them teshari's aren't humans

* bandaid for future proper teshari implementation

* Update vox_bodyparts.dm

* fixes chests and teshari implementation

* fixes

* fex

* Update mutant_zombie_bodyparts.dm

* oops

* Update synthetic_lizard_bodyparts.dm

* Update code/modules/mob/living/carbon/human/human_update_icons.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update code/modules/mob/living/carbon/human/human_update_icons.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update code/modules/mob/living/carbon/human/human_update_icons.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update modular_skyrat/master_files/code/modules/surgery/bodyparts/species_parts/ghoul_bodyparts.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update modular_skyrat/master_files/code/modules/surgery/bodyparts/species_parts/ghoul_bodyparts.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update modular_skyrat/master_files/code/modules/surgery/bodyparts/species_parts/ghoul_bodyparts.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update modular_skyrat/master_files/code/modules/surgery/bodyparts/species_parts/ghoul_bodyparts.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update code/modules/mob/living/carbon/human/species.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Update scissors.dm

* wound stuff

* Update carbon_examine.dm

* more stuff

* Delete human_update_icons.dm

* begone thot

* https://github.com/tgstation/tgstation/pull/66065

* Update _external_organs.dm

Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-04-11 02:40:05 +01:00

76 lines
2.9 KiB
Plaintext

/datum/surgery/implant_removal
name = "Implant removal"
steps = list(
/datum/surgery_step/incise,
/datum/surgery_step/clamp_bleeders,
/datum/surgery_step/retract_skin,
/datum/surgery_step/extract_implant,
/datum/surgery_step/close)
target_mobtypes = list(/mob/living/carbon/human)
possible_locs = list(BODY_ZONE_CHEST)
//extract implant
/datum/surgery_step/extract_implant
name = "extract implant"
implements = list(
TOOL_HEMOSTAT = 100,
TOOL_CROWBAR = 65,
/obj/item/kitchen/fork = 35)
time = 64
success_sound = 'sound/surgery/hemostat1.ogg'
var/obj/item/implant/implant
/datum/surgery_step/extract_implant/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
for(var/obj/item/object in target.implants)
implant = object
break
if(implant)
display_results(user, target, span_notice("You begin to extract [implant] from [target]'s [target_zone]..."),
span_notice("[user] begins to extract [implant] from [target]'s [target_zone]."),
span_notice("[user] begins to extract something from [target]'s [target_zone]."))
display_pain(target, "You feel a serious pain in your [target_zone]!")
else
display_results(user, target, span_notice("You look for an implant in [target]'s [target_zone]..."),
span_notice("[user] looks for an implant in [target]'s [target_zone]."),
span_notice("[user] looks for something in [target]'s [target_zone]."))
/datum/surgery_step/extract_implant/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
if(implant)
display_results(user, target, span_notice("You successfully remove [implant] from [target]'s [target_zone]."),
span_notice("[user] successfully removes [implant] from [target]'s [target_zone]!"),
span_notice("[user] successfully removes something from [target]'s [target_zone]!"))
display_pain(target, "You can feel your [implant] pulled out of you!")
implant.removed(target)
var/obj/item/implantcase/case
for(var/obj/item/implantcase/implant_case in user.held_items)
case = implant_case
break
if(!case)
case = locate(/obj/item/implantcase) in get_turf(target)
if(case && !case.imp)
case.imp = implant
implant.forceMove(case)
case.update_appearance()
display_results(user, target, span_notice("You place [implant] into [case]."),
span_notice("[user] places [implant] into [case]!"),
span_notice("[user] places it into [case]!"))
else
qdel(implant)
else
to_chat(user, span_warning("You can't find anything in [target]'s [target_zone]!"))
return ..()
/datum/surgery/implant_removal/mechanic
name = "implant removal"
requires_bodypart_type = BODYTYPE_ROBOTIC
steps = list(
/datum/surgery_step/mechanic_open,
/datum/surgery_step/open_hatch,
/datum/surgery_step/mechanic_unwrench,
/datum/surgery_step/extract_implant,
/datum/surgery_step/mechanic_wrench,
/datum/surgery_step/mechanic_close)