mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-12 10:42:37 +00:00
extract surgeries require FOUR steps, while whatever is embedded continues to fuck up the person and make them lose all their blood. It's always MUCH more reasonable to heal the person first and make them violently pull the shuriken or whatever out of themselves. Now it should be possible to consider doing the slow-ass surgery.
44 lines
1.9 KiB
Plaintext
44 lines
1.9 KiB
Plaintext
/datum/surgery/embedded_removal
|
|
name = "removal of embedded objects"
|
|
steps = list(/datum/surgery_step/incise, /datum/surgery_step/remove_object)
|
|
possible_locs = list(BODY_ZONE_R_ARM,BODY_ZONE_L_ARM,BODY_ZONE_R_LEG,BODY_ZONE_L_LEG,BODY_ZONE_CHEST,BODY_ZONE_HEAD)
|
|
|
|
|
|
/datum/surgery_step/remove_object
|
|
name = "remove embedded objects"
|
|
time = 32
|
|
accept_hand = 1
|
|
var/obj/item/bodypart/L = null
|
|
|
|
|
|
/datum/surgery_step/remove_object/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
|
L = surgery.operated_bodypart
|
|
if(L)
|
|
user.visible_message("[user] looks for objects embedded in [target]'s [parse_zone(user.zone_selected)].", "<span class='notice'>You look for objects embedded in [target]'s [parse_zone(user.zone_selected)]...</span>")
|
|
else
|
|
user.visible_message("[user] looks for [target]'s [parse_zone(user.zone_selected)].", "<span class='notice'>You look for [target]'s [parse_zone(user.zone_selected)]...</span>")
|
|
|
|
|
|
/datum/surgery_step/remove_object/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
|
if(L)
|
|
if(ishuman(target))
|
|
var/mob/living/carbon/human/H = target
|
|
var/objects = 0
|
|
for(var/obj/item/I in L.embedded_objects)
|
|
objects++
|
|
I.forceMove(get_turf(H))
|
|
L.embedded_objects -= I
|
|
if(!H.has_embedded_objects())
|
|
H.clear_alert("embeddedobject")
|
|
SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "embedded")
|
|
|
|
if(objects > 0)
|
|
user.visible_message("[user] successfully removes [objects] objects from [H]'s [L]!", "<span class='notice'>You successfully remove [objects] objects from [H]'s [L.name].</span>")
|
|
else
|
|
to_chat(user, "<span class='warning'>You find no objects embedded in [H]'s [L]!</span>")
|
|
|
|
else
|
|
to_chat(user, "<span class='warning'>You can't find [target]'s [parse_zone(user.zone_selected)], let alone any objects embedded in it!</span>")
|
|
|
|
return 1
|