mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-26 18:12:40 +00:00
Fixes #1790 Fixes #1791 Fixes a number of issues with robot sprites, chem master machine, and surgery steps The issue with borg sprites was caused by duplicate calls to ..() Ive standardised robot module parent calls to the top of the function Fixed the chemmaster not depositing pills in bottles properly. I added a new add_to_storage proc to storage.dm which is just a simple, safe means of putting stuff in stuff. it handles the checking. Fixed some issues with surgery. A few surgery steps had incorrect "open" var ranges defined which was causing organ repair surgery to be interfered with Also removed screwdriver from the list of bone mending tools, and added duct tape instead as the ghetto alternative. And allowed energyswords + chainswords to be used for cutting open ribs. theyre already useable for amputation Fixed an incorrect return var for surgery that was making surgeons able to attack their patients on help intent. Shouldnt happen anymore And also fixed the experimental welder being un-makeable at the protolathe.
150 lines
7.1 KiB
Plaintext
150 lines
7.1 KiB
Plaintext
//Procedures in this file: Fracture repair surgery
|
|
//////////////////////////////////////////////////////////////////
|
|
// BONE SURGERY //
|
|
//////////////////////////////////////////////////////////////////
|
|
|
|
/datum/surgery_step/glue_bone
|
|
allowed_tools = list(
|
|
/obj/item/weapon/bonegel = 100, \
|
|
/obj/item/weapon/tape_roll = 60
|
|
)
|
|
can_infect = 1
|
|
blood_level = 1
|
|
|
|
min_duration = 50
|
|
max_duration = 60
|
|
|
|
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.status & ORGAN_ROBOT) && affected.open >= 2 && affected.open < 3 && affected.stage == 0
|
|
|
|
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)
|
|
if (affected.stage == 0)
|
|
user.visible_message("[user] starts applying medication to the damaged bones in [target]'s [affected.name] with \the [tool]." , \
|
|
"You start applying medication to the damaged bones in [target]'s [affected.name] with \the [tool].")
|
|
target.custom_pain("Something in your [affected.name] is causing you a lot of pain!",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)
|
|
user.visible_message("\blue [user] applies some [tool] to [target]'s bone in [affected.name]", \
|
|
"\blue You apply some [tool] to [target]'s bone in [affected.name] with \the [tool].")
|
|
affected.stage = 1
|
|
|
|
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("\red [user]'s hand slips, smearing [tool] in the incision in [target]'s [affected.name]!" , \
|
|
"\red Your hand slips, smearing [tool] in the incision in [target]'s [affected.name]!")
|
|
|
|
/datum/surgery_step/set_bone
|
|
allowed_tools = list(
|
|
/obj/item/weapon/bonesetter = 100, \
|
|
/obj/item/weapon/wrench = 75 \
|
|
)
|
|
|
|
min_duration = 60
|
|
max_duration = 70
|
|
|
|
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.name != "head" && !(affected.status & ORGAN_ROBOT) && affected.open >= 2 && affected.stage == 1
|
|
|
|
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] is beginning to set the bone in [target]'s [affected.name] in place with \the [tool]." , \
|
|
"You are beginning to set the bone in [target]'s [affected.name] in place with \the [tool].")
|
|
target.custom_pain("The pain in your [affected.name] is going to make you pass out!",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)
|
|
if (affected.status & ORGAN_BROKEN)
|
|
user.visible_message("\blue [user] sets the bone in [target]'s [affected.name] in place with \the [tool].", \
|
|
"\blue You set the bone in [target]'s [affected.name] in place with \the [tool].")
|
|
affected.stage = 2
|
|
else
|
|
user.visible_message("\blue [user] sets the bone in [target]'s [affected.name]\red in the WRONG place with \the [tool].", \
|
|
"\blue You set the bone in [target]'s [affected.name]\red in the WRONG place with \the [tool].")
|
|
affected.fracture()
|
|
|
|
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("\red [user]'s hand slips, damaging the bone in [target]'s [affected.name] with \the [tool]!" , \
|
|
"\red Your hand slips, damaging the bone in [target]'s [affected.name] with \the [tool]!")
|
|
affected.createwound(BRUISE, 5)
|
|
|
|
/datum/surgery_step/mend_skull
|
|
allowed_tools = list(
|
|
/obj/item/weapon/bonesetter = 100, \
|
|
/obj/item/weapon/wrench = 75 \
|
|
)
|
|
|
|
min_duration = 60
|
|
max_duration = 70
|
|
|
|
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.name == "head" && !(affected.status & ORGAN_ROBOT) && affected.open >= 2 && affected.stage == 1
|
|
|
|
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
|
user.visible_message("[user] is beginning to piece together [target]'s skull with \the [tool]." , \
|
|
"You are beginning to piece together [target]'s skull with \the [tool].")
|
|
..()
|
|
|
|
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)
|
|
user.visible_message("\blue [user] sets [target]'s skull with \the [tool]." , \
|
|
"\blue You set [target]'s skull with \the [tool].")
|
|
affected.stage = 2
|
|
|
|
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("\red [user]'s hand slips, damaging [target]'s face with \the [tool]!" , \
|
|
"\red Your hand slips, damaging [target]'s face with \the [tool]!")
|
|
var/obj/item/organ/external/head/h = affected
|
|
h.createwound(BRUISE, 10)
|
|
h.disfigured = 1
|
|
|
|
/datum/surgery_step/finish_bone
|
|
allowed_tools = list(
|
|
/obj/item/weapon/bonegel = 100, \
|
|
/obj/item/weapon/tape_roll = 60
|
|
)
|
|
can_infect = 1
|
|
blood_level = 1
|
|
|
|
min_duration = 50
|
|
max_duration = 60
|
|
|
|
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 >= 2 && affected.open < 3 && !(affected.status & ORGAN_ROBOT) && affected.stage == 2
|
|
|
|
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 to finish mending the damaged bones in [target]'s [affected.name] with \the [tool].", \
|
|
"You start to finish mending the damaged bones in [target]'s [affected.name] with \the [tool].")
|
|
..()
|
|
|
|
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)
|
|
user.visible_message("\blue [user] has mended the damaged bones in [target]'s [affected.name] with \the [tool]." , \
|
|
"\blue You have mended the damaged bones in [target]'s [affected.name] with \the [tool]." )
|
|
affected.status &= ~ORGAN_BROKEN
|
|
affected.status &= ~ORGAN_SPLINTED
|
|
affected.stage = 0
|
|
affected.perma_injury = 0
|
|
|
|
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("\red [user]'s hand slips, smearing [tool] in the incision in [target]'s [affected.name]!" , \
|
|
"\red Your hand slips, smearing [tool] in the incision in [target]'s [affected.name]!") |