mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-29 03:32:28 +00:00
end conflict fix
This commit is contained in:
@@ -383,7 +383,7 @@
|
||||
"ahs" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/weapon/pickaxe,/obj/item/weapon/storage/firstaid/toxin,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
|
||||
"aht" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/weapon/scalpel,/obj/item/stack/cable_coil,/obj/item/weapon/storage/firstaid/regular,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
|
||||
"ahu" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/weapon/circular_saw,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
|
||||
"ahv" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/optable,/obj/item/organ/brain,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
|
||||
"ahv" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/optable,/obj/item/organ/internal/brain,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
|
||||
"ahw" = (/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id_tag = "voxshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/shuttle/window{dir = 4; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_mid"; tag = "icon-window5 (EAST)"},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox)
|
||||
"ahx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/auxsolarport)
|
||||
"ahy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison)
|
||||
|
||||
@@ -8473,7 +8473,7 @@
|
||||
"dha" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/broken_device,/obj/item/robot_parts/chest,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
|
||||
"dhb" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/weapon/scalpel,/obj/item/stack/cable_coil,/obj/item/weapon/storage/firstaid/regular,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
|
||||
"dhc" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/weapon/pickaxe,/obj/item/weapon/storage/firstaid/toxin,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
|
||||
"dhd" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/optable,/obj/item/organ/brain,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
|
||||
"dhd" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/optable,/obj/item/organ/internal/brain,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
|
||||
"dhe" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/weapon/circular_saw,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
|
||||
"dhf" = (/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id_tag = "voxshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/shuttle/window{dir = 4; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_mid"; tag = "icon-window5 (EAST)"},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox)
|
||||
"dhg" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
|
||||
|
||||
@@ -26,4 +26,5 @@ var/global/list/power_monitors = list()
|
||||
|
||||
var/global/list/beacons = list()
|
||||
var/global/list/shuttle_caller_list = list() //list of all communication consoles and AIs, for automatic shuttle calls when there are none.
|
||||
var/global/list/tracked_implants = list() //list of all current implants that are tracked to work out what sort of trek everyone is on. Sadly not on lavaworld not implemented...
|
||||
var/global/list/tracked_implants = list() //list of all current implants that are tracked to work out what sort of trek everyone is on. Sadly not on lavaworld not implemented...
|
||||
var/global/list/surgeries_list = list() //list of all surgeries by name, associated with their path.
|
||||
@@ -1,42 +1,57 @@
|
||||
//Procedures in this file: Putting items in body cavity. Implant removal. Items removal.
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
// ITEM PLACEMENT SURGERY //
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
/datum/surgery/cavity_implant
|
||||
name = "cavity implant"
|
||||
steps = list(/datum/surgery_step/generic/cut_open,/datum/surgery_step/generic/clamp_bleeders, /datum/surgery_step/generic/retract_skin, /datum/surgery_step/open_encased/saw,
|
||||
/datum/surgery_step/open_encased/retract, /datum/surgery_step/cavity/make_space,/datum/surgery_step/cavity/place_item,/datum/surgery_step/cavity/close_space,/datum/surgery_step/open_encased/close,/datum/surgery_step/glue_bone, /datum/surgery_step/set_bone,/datum/surgery_step/finish_bone,/datum/surgery_step/generic/cauterize)
|
||||
|
||||
possible_locs = list("chest","head")
|
||||
|
||||
/datum/surgery/cavity_implant/soft
|
||||
name = "cavity implant"
|
||||
steps = list(/datum/surgery_step/generic/cut_open, /datum/surgery_step/generic/clamp_bleeders, /datum/surgery_step/generic/retract_skin, /datum/surgery_step/generic/cut_open, /datum/surgery_step/cavity/make_space,/datum/surgery_step/cavity/place_item,/datum/surgery_step/cavity/close_space,/datum/surgery_step/generic/cauterize)
|
||||
|
||||
possible_locs = list("groin")
|
||||
|
||||
/datum/surgery_step/cavity
|
||||
priority = 1
|
||||
can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
if(!hasorgans(target))
|
||||
return 0
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return affected && affected.open == (affected.encased ? 3 : 2) && !(affected.status & ORGAN_BLEEDING)
|
||||
|
||||
proc/get_max_wclass(obj/item/organ/external/affected)
|
||||
switch (affected.limb_name)
|
||||
if ("head")
|
||||
return 1
|
||||
if ("chest")
|
||||
return 3
|
||||
if ("groin")
|
||||
return 2
|
||||
/datum/surgery_step/cavity/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
if(!hasorgans(target))
|
||||
return 0
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return affected && affected.open == (affected.encased ? 3 : 2) && !(affected.status & ORGAN_BLEEDING)
|
||||
|
||||
proc/get_cavity(obj/item/organ/external/affected)
|
||||
switch (affected.limb_name)
|
||||
if ("head")
|
||||
return "cranial"
|
||||
if ("chest")
|
||||
return "thoracic"
|
||||
if ("groin")
|
||||
return "abdominal"
|
||||
return ""
|
||||
/datum/surgery_step/cavity/proc/get_max_wclass(obj/item/organ/external/affected)
|
||||
switch (affected.limb_name)
|
||||
if ("head")
|
||||
return 1
|
||||
if ("chest")
|
||||
return 3
|
||||
if ("groin")
|
||||
return 2
|
||||
return 0
|
||||
|
||||
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
var/obj/item/organ/external/chest/affected = target.get_organ(target_zone)
|
||||
user.visible_message("\red [user]'s hand slips, scraping around inside [target]'s [affected.name] with \the [tool]!", \
|
||||
"\red Your hand slips, scraping around inside [target]'s [affected.name] with \the [tool]!")
|
||||
affected.createwound(CUT, 20)
|
||||
/datum/surgery_step/cavity/proc/get_cavity(obj/item/organ/external/affected)
|
||||
switch (affected.limb_name)
|
||||
if ("head")
|
||||
return "cranial"
|
||||
if ("chest")
|
||||
return "thoracic"
|
||||
if ("groin")
|
||||
return "abdominal"
|
||||
return ""
|
||||
|
||||
/datum/surgery_step/cavity/fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
var/obj/item/organ/external/chest/affected = target.get_organ(target_zone)
|
||||
user.visible_message("\red [user]'s hand slips, scraping around inside [target]'s [affected.name] with \the [tool]!", \
|
||||
"\red Your hand slips, scraping around inside [target]'s [affected.name] with \the [tool]!")
|
||||
affected.createwound(CUT, 20)
|
||||
|
||||
/datum/surgery_step/cavity/make_space
|
||||
allowed_tools = list(
|
||||
@@ -48,22 +63,24 @@
|
||||
min_duration = 60
|
||||
max_duration = 80
|
||||
|
||||
can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return ..() && !affected.cavity && !affected.hidden
|
||||
/datum/surgery_step/cavity/make_space/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return ..() && !affected.cavity && !affected.hidden
|
||||
|
||||
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
user.visible_message("[user] starts making some space inside [target]'s [get_cavity(affected)] cavity with \the [tool].", \
|
||||
"You start making some space inside [target]'s [get_cavity(affected)] cavity with \the [tool]." )
|
||||
target.custom_pain("The pain in your chest is living hell!",1)
|
||||
affected.cavity = 1
|
||||
..()
|
||||
/datum/surgery_step/cavity/make_space/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
user.visible_message("[user] starts making some space inside [target]'s [get_cavity(affected)] cavity with \the [tool].", \
|
||||
"You start making some space inside [target]'s [get_cavity(affected)] cavity with \the [tool]." )
|
||||
target.custom_pain("The pain in your chest is living hell!",1)
|
||||
affected.cavity = 1
|
||||
..()
|
||||
|
||||
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
var/obj/item/organ/external/chest/affected = target.get_organ(target_zone)
|
||||
user.visible_message("\blue [user] makes some space inside [target]'s [get_cavity(affected)] cavity with \the [tool].", \
|
||||
"\blue You make some space inside [target]'s [get_cavity(affected)] cavity with \the [tool]." )
|
||||
/datum/surgery_step/cavity/make_space/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
var/obj/item/organ/external/chest/affected = target.get_organ(target_zone)
|
||||
user.visible_message("\blue [user] makes some space inside [target]'s [get_cavity(affected)] cavity with \the [tool].", \
|
||||
"\blue You make some space inside [target]'s [get_cavity(affected)] cavity with \the [tool]." )
|
||||
|
||||
return 1
|
||||
|
||||
/datum/surgery_step/cavity/close_space
|
||||
priority = 2
|
||||
@@ -77,22 +94,25 @@
|
||||
min_duration = 60
|
||||
max_duration = 80
|
||||
|
||||
can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return ..() && affected.cavity
|
||||
/datum/surgery_step/cavity/close_space/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return ..() && affected.cavity
|
||||
|
||||
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
user.visible_message("[user] starts mending [target]'s [get_cavity(affected)] cavity wall with \the [tool].", \
|
||||
"You start mending [target]'s [get_cavity(affected)] cavity wall with \the [tool]." )
|
||||
target.custom_pain("The pain in your chest is living hell!",1)
|
||||
affected.cavity = 0
|
||||
..()
|
||||
/datum/surgery_step/cavity/close_space/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
user.visible_message("[user] starts mending [target]'s [get_cavity(affected)] cavity wall with \the [tool].", \
|
||||
"You start mending [target]'s [get_cavity(affected)] cavity wall with \the [tool]." )
|
||||
target.custom_pain("The pain in your chest is living hell!",1)
|
||||
affected.cavity = 0
|
||||
..()
|
||||
|
||||
/datum/surgery_step/cavity/close_space/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
var/obj/item/organ/external/chest/affected = target.get_organ(target_zone)
|
||||
user.visible_message("\blue [user] mends [target]'s [get_cavity(affected)] cavity walls with \the [tool].", \
|
||||
"\blue You mend [target]'s [get_cavity(affected)] cavity walls with \the [tool]." )
|
||||
|
||||
return 1
|
||||
|
||||
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
var/obj/item/organ/external/chest/affected = target.get_organ(target_zone)
|
||||
user.visible_message("\blue [user] mends [target]'s [get_cavity(affected)] cavity walls with \the [tool].", \
|
||||
"\blue You mend [target]'s [get_cavity(affected)] cavity walls with \the [tool]." )
|
||||
|
||||
/datum/surgery_step/cavity/place_item
|
||||
priority = 0
|
||||
@@ -101,42 +121,53 @@
|
||||
min_duration = 80
|
||||
max_duration = 100
|
||||
|
||||
can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
if (!ishuman(target))
|
||||
return 0
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
var/can_fit = affected && !affected.hidden && affected.cavity && tool.w_class <= get_max_wclass(affected)
|
||||
return ..() && can_fit
|
||||
|
||||
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
user.visible_message("[user] starts putting \the [tool] inside [target]'s [get_cavity(affected)] cavity.", \
|
||||
"You start putting \the [tool] inside [target]'s [get_cavity(affected)] cavity." )
|
||||
target.custom_pain("The pain in your chest is living hell!",1)
|
||||
..()
|
||||
/datum/surgery_step/cavity/place_item/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
if (!ishuman(target))
|
||||
return 0
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
var/can_fit = affected && !affected.hidden && affected.cavity && tool.w_class <= get_max_wclass(affected)
|
||||
return ..() && can_fit
|
||||
|
||||
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
var/obj/item/organ/external/chest/affected = target.get_organ(target_zone)
|
||||
/datum/surgery_step/cavity/place_item/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
user.visible_message("[user] starts putting \the [tool] inside [target]'s [get_cavity(affected)] cavity.", \
|
||||
"You start putting \the [tool] inside [target]'s [get_cavity(affected)] cavity." )
|
||||
target.custom_pain("The pain in your chest is living hell!",1)
|
||||
..()
|
||||
|
||||
if(istype(tool, /obj/item/weapon/disk/nuclear))
|
||||
user << "Central command would kill you if you implanted the disk into someone."
|
||||
else
|
||||
user.visible_message("\blue [user] puts \the [tool] inside [target]'s [get_cavity(affected)] cavity.", \
|
||||
"\blue You put \the [tool] inside [target]'s [get_cavity(affected)] cavity." )
|
||||
if (tool.w_class > get_max_wclass(affected)/2 && prob(50) && !(affected.status & ORGAN_ROBOT))
|
||||
user << "\red You tear some vessels trying to fit such big object in this cavity."
|
||||
var/datum/wound/internal_bleeding/I = new ()
|
||||
affected.wounds += I
|
||||
affected.owner.custom_pain("You feel something rip in your [affected.name]!", 1)
|
||||
user.drop_item()
|
||||
affected.hidden = tool
|
||||
tool.loc = target
|
||||
affected.cavity = 0
|
||||
/datum/surgery_step/cavity/place_item/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
var/obj/item/organ/external/chest/affected = target.get_organ(target_zone)
|
||||
|
||||
if(istype(tool, /obj/item/weapon/disk/nuclear))
|
||||
user << "Central command would kill you if you implanted the disk into someone."
|
||||
return 0//fail
|
||||
else
|
||||
user.visible_message("\blue [user] puts \the [tool] inside [target]'s [get_cavity(affected)] cavity.", \
|
||||
"\blue You put \the [tool] inside [target]'s [get_cavity(affected)] cavity." )
|
||||
if (tool.w_class > get_max_wclass(affected)/2 && prob(50) && !(affected.status & ORGAN_ROBOT))
|
||||
user << "\red You tear some vessels trying to fit such big object in this cavity."
|
||||
var/datum/wound/internal_bleeding/I = new ()
|
||||
affected.wounds += I
|
||||
affected.owner.custom_pain("You feel something rip in your [affected.name]!", 1)
|
||||
user.drop_item()
|
||||
affected.hidden = tool
|
||||
target.internal_organs += tool
|
||||
tool.loc = target
|
||||
affected.cavity = 0
|
||||
|
||||
return 1
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
// IMPLANT/ITEM REMOVAL SURGERY //
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
///Fethas note:I might could condense this down but it would need to take out the part with poking around with a hemostat
|
||||
/datum/surgery/cavity_implant_rem
|
||||
name = "implant removal"
|
||||
steps = list(/datum/surgery_step/generic/cut_open, /datum/surgery_step/generic/clamp_bleeders, /datum/surgery_step/generic/retract_skin, /datum/surgery_step/generic/cut_open,/datum/surgery_step/cavity/implant_removal,/datum/surgery_step/cavity/close_space,/datum/surgery_step/generic/cauterize/)
|
||||
possible_locs = list("chest","head")
|
||||
|
||||
/datum/surgery_step/cavity/implant_removal
|
||||
allowed_tools = list(
|
||||
/obj/item/weapon/hemostat = 100, \
|
||||
@@ -147,82 +178,83 @@
|
||||
min_duration = 80
|
||||
max_duration = 100
|
||||
|
||||
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
user.visible_message("[user] starts poking around inside [target]'s [affected.name] with \the [tool].", \
|
||||
"You start poking around inside [target]'s [affected.name] with \the [tool]." )
|
||||
target.custom_pain("The pain in your [affected.name] is living hell!",1)
|
||||
..()
|
||||
/datum/surgery_step/cavity/implant_removal/begin_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
user.visible_message("[user] starts poking around inside [target]'s [affected.name] with \the [tool].", \
|
||||
"You start poking around inside [target]'s [affected.name] with \the [tool]." )
|
||||
target.custom_pain("The pain in your [affected.name] is living hell!",1)
|
||||
..()
|
||||
|
||||
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
var/obj/item/weapon/implant/I = locate(/obj/item/weapon/implant) in target
|
||||
/datum/surgery_step/cavity/implant_removal/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
var/obj/item/weapon/implant/I = locate(/obj/item/weapon/implant) in target
|
||||
if (affected.implants.len)
|
||||
|
||||
if (affected.implants.len)
|
||||
var/obj/item/obj = affected.implants[1]
|
||||
|
||||
var/obj/item/obj = affected.implants[1]
|
||||
user.visible_message("\blue [user] takes something out of [target]'s [affected.name] with \the [tool].", \
|
||||
"\blue You take [obj] out of [target]'s [affected.name]s with \the [tool]." )
|
||||
affected.implants -= obj
|
||||
|
||||
user.visible_message("\blue [user] takes something out of [target]'s [affected.name] with \the [tool].", \
|
||||
"\blue You take [obj] out of [target]'s [affected.name]s with \the [tool]." )
|
||||
affected.implants -= obj
|
||||
//Handle possessive brain borers.
|
||||
if(istype(obj,/mob/living/simple_animal/borer))
|
||||
var/mob/living/simple_animal/borer/worm = obj
|
||||
if(worm.controlling)
|
||||
target.release_control()
|
||||
worm.detatch()
|
||||
worm.leave_host()
|
||||
|
||||
//Handle possessive brain borers.
|
||||
if(istype(obj,/mob/living/simple_animal/borer))
|
||||
var/mob/living/simple_animal/borer/worm = obj
|
||||
if(worm.controlling)
|
||||
target.release_control()
|
||||
worm.detatch()
|
||||
worm.leave_host()
|
||||
obj.loc = get_turf(target)
|
||||
return 1
|
||||
else if(I && target_zone == "chest") //implant removal only works on the chest.
|
||||
user.visible_message("<span class='notice'>[user] takes something out of [target]'s [affected.name] with \the [tool].</span>", \
|
||||
"<span class='notice'>You take [I] out of [target]'s [affected.name]s with \the [tool].</span>" )
|
||||
|
||||
obj.loc = get_turf(target)
|
||||
I.removed(target)
|
||||
|
||||
else if(I && target_zone == "chest") //implant removal only works on the chest.
|
||||
user.visible_message("<span class='notice'>[user] takes something out of [target]'s [affected.name] with \the [tool].</span>", \
|
||||
"<span class='notice'>You take [I] out of [target]'s [affected.name]s with \the [tool].</span>" )
|
||||
|
||||
I.removed(target)
|
||||
|
||||
var/obj/item/weapon/implantcase/case
|
||||
|
||||
if(istype(user.get_item_by_slot(slot_l_hand), /obj/item/weapon/implantcase))
|
||||
case = user.get_item_by_slot(slot_l_hand)
|
||||
else if(istype(user.get_item_by_slot(slot_r_hand), /obj/item/weapon/implantcase))
|
||||
case = user.get_item_by_slot(slot_r_hand)
|
||||
else
|
||||
case = locate(/obj/item/weapon/implantcase) in get_turf(target)
|
||||
|
||||
if(case && !case.imp)
|
||||
case.imp = I
|
||||
I.loc = case
|
||||
case.update_icon()
|
||||
user.visible_message("[user] places [I] into [case]!", "<span class='notice'>You place [I] into [case].</span>")
|
||||
else
|
||||
qdel(I)
|
||||
|
||||
else if (affected.hidden)
|
||||
user.visible_message("\blue [user] takes something out of incision on [target]'s [affected.name] with \the [tool].", \
|
||||
"\blue You take something out of incision on [target]'s [affected.name]s with \the [tool]." )
|
||||
affected.hidden.loc = get_turf(target)
|
||||
if(!affected.hidden.blood_DNA)
|
||||
affected.hidden.blood_DNA = list()
|
||||
affected.hidden.blood_DNA[target.dna.unique_enzymes] = target.dna.b_type
|
||||
affected.hidden.update_icon()
|
||||
affected.hidden = null
|
||||
var/obj/item/weapon/implantcase/case
|
||||
|
||||
if(istype(user.get_item_by_slot(slot_l_hand), /obj/item/weapon/implantcase))
|
||||
case = user.get_item_by_slot(slot_l_hand)
|
||||
else if(istype(user.get_item_by_slot(slot_r_hand), /obj/item/weapon/implantcase))
|
||||
case = user.get_item_by_slot(slot_r_hand)
|
||||
else
|
||||
user.visible_message("\blue [user] could not find anything inside [target]'s [affected.name], and pulls \the [tool] out.", \
|
||||
"\blue You could not find anything inside [target]'s [affected.name]." )
|
||||
case = locate(/obj/item/weapon/implantcase) in get_turf(target)
|
||||
|
||||
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
..()
|
||||
var/obj/item/organ/external/chest/affected = target.get_organ(target_zone)
|
||||
if (affected.implants.len)
|
||||
var/fail_prob = 10
|
||||
fail_prob += 100 - tool_quality(tool)
|
||||
if (prob(fail_prob))
|
||||
var/obj/item/weapon/implant/imp = affected.implants[1]
|
||||
user.visible_message("\red Something beeps inside [target]'s [affected.name]!")
|
||||
playsound(imp.loc, 'sound/items/countdown.ogg', 75, 1, -3)
|
||||
spawn(25)
|
||||
imp.activate()
|
||||
if(case && !case.imp)
|
||||
case.imp = I
|
||||
I.loc = case
|
||||
case.update_icon()
|
||||
user.visible_message("[user] places [I] into [case]!", "<span class='notice'>You place [I] into [case].</span>")
|
||||
else
|
||||
qdel(I)
|
||||
target.sec_hud_set_implants()
|
||||
return 1
|
||||
else if (affected.hidden)
|
||||
user.visible_message("\blue [user] takes something out of incision on [target]'s [affected.name] with \the [tool].", \
|
||||
"\blue You take something out of incision on [target]'s [affected.name]s with \the [tool]." )
|
||||
affected.hidden.loc = get_turf(target)
|
||||
if(!affected.hidden.blood_DNA)
|
||||
affected.hidden.blood_DNA = list()
|
||||
affected.hidden.blood_DNA[target.dna.unique_enzymes] = target.dna.b_type
|
||||
affected.hidden.update_icon()
|
||||
affected.hidden = null
|
||||
else
|
||||
user.visible_message("\blue [user] could not find anything inside [target]'s [affected.name], and pulls \the [tool] out.", \
|
||||
"You could not find anything inside [target]'s [affected.name]")
|
||||
return 1
|
||||
|
||||
/datum/surgery_step/cavity/implant_removal/fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool,datum/surgery/surgery)
|
||||
..()
|
||||
var/obj/item/organ/external/chest/affected = target.get_organ(target_zone)
|
||||
if (affected.implants.len)
|
||||
var/fail_prob = 10
|
||||
fail_prob += 100 - tool_quality(tool)
|
||||
if (prob(fail_prob))
|
||||
var/obj/item/weapon/implant/imp = affected.implants[1]
|
||||
user.visible_message("\red Something beeps inside [target]'s [affected.name]!")
|
||||
playsound(imp.loc, 'sound/items/countdown.ogg', 75, 1, -3)
|
||||
spawn(25)
|
||||
imp.activate()
|
||||
return 0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user