mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-07-11 08:14:26 +01:00
Medical Expansion (#6465)
* Starts work on the Medical Expansion. * Further Work * Save Everything! * Large volume of things. * Log of Change * I'm an idiot. * Kidney assisted sprites. They didn't exist, for some reason. * Fixfix * Fixfix * Update encased.dm * Update glass.dm * Update Chemistry-Reagents.dm I am once more an idiot. * Split augs. * Fixfix
This commit is contained in:
@@ -134,7 +134,7 @@
|
||||
if (!hasorgans(target))
|
||||
return
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return ..() && affected && affected.open == 3
|
||||
return (..() && affected && affected.open == 3)
|
||||
|
||||
/datum/surgery_step/open_encased/close/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
if (!hasorgans(target))
|
||||
@@ -214,4 +214,94 @@
|
||||
var/self_msg = "<font color='blue'>You applied \the [tool] to [target]'s [affected.encased].</font>"
|
||||
user.visible_message(msg, self_msg)
|
||||
|
||||
affected.open = 2
|
||||
affected.open = 2
|
||||
|
||||
///////////////////////////////////////////////////////////////
|
||||
// Saw/Retractor/Gel Combi-open and close.
|
||||
///////////////////////////////////////////////////////////////
|
||||
/datum/surgery_step/open_encased/advancedsaw_open
|
||||
allowed_tools = list(
|
||||
/obj/item/weapon/surgical/circular_saw/manager = 100
|
||||
)
|
||||
|
||||
priority = 3
|
||||
|
||||
min_duration = 60
|
||||
max_duration = 90
|
||||
|
||||
/datum/surgery_step/open_encased/advancedsaw_open/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
if (!hasorgans(target))
|
||||
return
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return ..() && affected && affected.open >= 2 && affected.open < 3
|
||||
|
||||
/datum/surgery_step/open_encased/advancedsaw_open/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
if (!hasorgans(target))
|
||||
return
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
|
||||
user.visible_message("[user] begins to open [target]'s [affected.encased] with \the [tool].", \
|
||||
"You begin to open [target]'s [affected.encased] with \the [tool].")
|
||||
target.custom_pain("Something hurts horribly in your [affected.name]!", 60)
|
||||
..()
|
||||
|
||||
/datum/surgery_step/open_encased/advancedsaw_open/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
if (!hasorgans(target))
|
||||
return
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
|
||||
user.visible_message("<font color='blue'>[user] has cut [target]'s [affected.encased] wide open with \the [tool].</font>", \
|
||||
"<font color='blue'>You have cut [target]'s [affected.encased] wide open with \the [tool].</font>")
|
||||
affected.open = 3
|
||||
|
||||
/datum/surgery_step/open_encased/advancedsaw_open/fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
if (!hasorgans(target))
|
||||
return
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
|
||||
user.visible_message("<font color='red'>[user]'s hand slips, searing [target]'s [affected.encased] with \the [tool]!</font>" , \
|
||||
"<font color='red'>Your hand slips, searing [target]'s [affected.encased] with \the [tool]!</font>" )
|
||||
|
||||
affected.createwound(CUT, 20)
|
||||
affected.createwound(BURN, 15)
|
||||
if(prob(affected.damage))
|
||||
affected.fracture()
|
||||
|
||||
|
||||
/datum/surgery_step/open_encased/advancedsaw_mend
|
||||
allowed_tools = list(
|
||||
/obj/item/weapon/surgical/circular_saw/manager = 100
|
||||
)
|
||||
|
||||
priority = 3
|
||||
|
||||
min_duration = 30
|
||||
max_duration = 60
|
||||
|
||||
/datum/surgery_step/open_encased/advancedsaw_mend/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
if (!hasorgans(target))
|
||||
return
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
return (..() && affected && affected.open == 3)
|
||||
|
||||
/datum/surgery_step/open_encased/advancedsaw_mend/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
if (!hasorgans(target))
|
||||
return
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
|
||||
var/msg = "[user] starts sealing \the [target]'s [affected.encased] with \the [tool]."
|
||||
var/self_msg = "You start sealing \the [target]'s [affected.encased] with \the [tool]."
|
||||
user.visible_message(msg, self_msg)
|
||||
target.custom_pain("Something hurts horribly in your [affected.name]!", 100)
|
||||
..()
|
||||
|
||||
/datum/surgery_step/open_encased/advancedsaw_mend/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
if (!hasorgans(target))
|
||||
return
|
||||
var/obj/item/organ/external/affected = target.get_organ(target_zone)
|
||||
|
||||
var/msg = "<font color='blue'>[user] sealed \the [target]'s [affected.encased] with \the [tool].</font>"
|
||||
var/self_msg = "<font color='blue'>You sealed \the [target]'s [affected.encased] with \the [tool].</font>"
|
||||
user.visible_message(msg, self_msg)
|
||||
|
||||
affected.open = 2
|
||||
|
||||
@@ -394,6 +394,65 @@
|
||||
"<span class='warning'>Your hand slips, damaging the flesh in [target]'s [affected.name] with \the [tool]!</span>")
|
||||
affected.createwound(BRUISE, 20)
|
||||
|
||||
///////////////////////////////////////////////////////////////
|
||||
// Organ Ripping Surgery
|
||||
///////////////////////////////////////////////////////////////
|
||||
|
||||
/datum/surgery_step/internal/rip_organ
|
||||
|
||||
allowed_tools = list(
|
||||
/obj/item/weapon/surgical/scalpel/ripper = 100
|
||||
)
|
||||
|
||||
priority = 3
|
||||
|
||||
blood_level = 3
|
||||
|
||||
min_duration = 60
|
||||
max_duration = 80
|
||||
|
||||
/datum/surgery_step/internal/rip_organ/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
if (!..())
|
||||
return 0
|
||||
|
||||
target.op_stage.current_organ = null
|
||||
|
||||
var/list/removable_organs = list()
|
||||
for(var/organ in target.internal_organs_by_name)
|
||||
var/obj/item/organ/internal/I = target.internal_organs_by_name[organ]
|
||||
if(istype(I) && I.parent_organ == target_zone)
|
||||
removable_organs |= organ
|
||||
|
||||
var/organ_to_remove = input(user, "Which organ do you want to remove?") as null|anything in removable_organs
|
||||
if(!organ_to_remove)
|
||||
return 0
|
||||
|
||||
target.op_stage.current_organ = organ_to_remove
|
||||
return ..()
|
||||
|
||||
/datum/surgery_step/internal/rip_organ/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
user.visible_message("[user] starts ripping [target]'s [target.op_stage.current_organ] out with \the [tool].", \
|
||||
"You start ripping [target]'s [target.op_stage.current_organ] out with \the [tool].")
|
||||
target.custom_pain("Someone's ripping out your [target.op_stage.current_organ]!", 100)
|
||||
..()
|
||||
|
||||
/datum/surgery_step/internal/rip_organ/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
user.visible_message("<span class='notice'>[user] has ripped [target]'s [target.op_stage.current_organ] out with \the [tool].</span>", \
|
||||
"<span class='notice'>You have ripped [target]'s [target.op_stage.current_organ] out with \the [tool].</span>")
|
||||
|
||||
// Extract the organ!
|
||||
if(target.op_stage.current_organ)
|
||||
var/obj/item/organ/O = target.internal_organs_by_name[target.op_stage.current_organ]
|
||||
if(O && istype(O))
|
||||
O.removed(user)
|
||||
target.op_stage.current_organ = null
|
||||
|
||||
/datum/surgery_step/internal/rip_organ/fail_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)
|
||||
user.visible_message("<span class='warning'>[user]'s hand slips, damaging [target]'s [affected.name] with \the [tool]!</span>", \
|
||||
"<span class='warning'>Your hand slips, damaging [target]'s [affected.name] with \the [tool]!</span>")
|
||||
affected.createwound(BRUISE, 20)
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
// HEART SURGERY //
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user