mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-29 03:21:42 +00:00
You can now dry plants using a special machine, and you can now stuff those plants into pipes to smoke then. It slowly transfers the reagents from the plant into the smoker.
174 lines
7.6 KiB
Plaintext
174 lines
7.6 KiB
Plaintext
//Procedures in this file: Robotic limbs attachment
|
|
//////////////////////////////////////////////////////////////////
|
|
// LIMB SURGERY //
|
|
//////////////////////////////////////////////////////////////////
|
|
|
|
/datum/surgery_step/limb/
|
|
can_infect = 0
|
|
can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
|
if (!hasorgans(target))
|
|
return 0
|
|
var/datum/organ/external/affected = target.get_organ(target_zone)
|
|
if (!affected)
|
|
return 0
|
|
if (!(affected.status & ORGAN_DESTROYED))
|
|
return 0
|
|
if (affected.parent)
|
|
if (affected.parent.status & ORGAN_DESTROYED)
|
|
return 0
|
|
return affected.name != "head"
|
|
|
|
|
|
/datum/surgery_step/limb/cut
|
|
allowed_tools = list(
|
|
/obj/item/weapon/scalpel = 100, \
|
|
/obj/item/weapon/kitchenknife = 75, \
|
|
/obj/item/weapon/shard = 50, \
|
|
)
|
|
|
|
min_duration = 80
|
|
max_duration = 100
|
|
|
|
can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
|
if(..())
|
|
var/datum/organ/external/affected = target.get_organ(target_zone)
|
|
return !(affected.status & ORGAN_CUT_AWAY)
|
|
|
|
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
|
var/datum/organ/external/affected = target.get_organ(target_zone)
|
|
user.visible_message("[user] starts cutting away flesh where [target]'s [affected.display_name] used to be with \the [tool].", \
|
|
"You start cutting away flesh where [target]'s [affected.display_name] used to be with \the [tool].")
|
|
..()
|
|
|
|
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
|
var/datum/organ/external/affected = target.get_organ(target_zone)
|
|
user.visible_message("\blue [user] cuts away flesh where [target]'s [affected.display_name] used to be with \the [tool].", \
|
|
"\blue You cut away flesh where [target]'s [affected.display_name] used to be with \the [tool].")
|
|
affected.status |= ORGAN_CUT_AWAY
|
|
|
|
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
|
var/datum/organ/external/affected = target.get_organ(target_zone)
|
|
if (affected.parent)
|
|
affected = affected.parent
|
|
user.visible_message("\red [user]'s hand slips, cutting [target]'s [affected.display_name] open!", \
|
|
"\red Your hand slips, cutting [target]'s [affected.display_name] open!")
|
|
affected.createwound(CUT, 10)
|
|
|
|
|
|
/datum/surgery_step/limb/mend
|
|
allowed_tools = list(
|
|
/obj/item/weapon/retractor = 100, \
|
|
/obj/item/weapon/crowbar = 75, \
|
|
/obj/item/weapon/kitchen/utensil/fork = 50)
|
|
|
|
min_duration = 80
|
|
max_duration = 100
|
|
|
|
can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
|
if(..())
|
|
var/datum/organ/external/affected = target.get_organ(target_zone)
|
|
return affected.status & ORGAN_CUT_AWAY && affected.open < 3 && !(affected.status & ORGAN_ATTACHABLE)
|
|
|
|
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
|
var/datum/organ/external/affected = target.get_organ(target_zone)
|
|
user.visible_message("[user] is beginning to reposition flesh and nerve endings where where [target]'s [affected.display_name] used to be with [tool].", \
|
|
"You start repositioning flesh and nerve endings where [target]'s [affected.display_name] used to be with [tool].")
|
|
..()
|
|
|
|
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
|
var/datum/organ/external/affected = target.get_organ(target_zone)
|
|
user.visible_message("\blue [user] has finished repositioning flesh and nerve endings where [target]'s [affected.display_name] used to be with [tool].", \
|
|
"\blue You have finished repositioning flesh and nerve endings where [target]'s [affected.display_name] used to be with [tool].")
|
|
affected.open = 3
|
|
|
|
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
|
var/datum/organ/external/affected = target.get_organ(target_zone)
|
|
if (affected.parent)
|
|
affected = affected.parent
|
|
user.visible_message("\red [user]'s hand slips, tearing flesh on [target]'s [affected.display_name]!", \
|
|
"\red Your hand slips, tearing flesh on [target]'s [affected.display_name]!")
|
|
target.apply_damage(10, BRUTE, affected, sharp=1)
|
|
|
|
|
|
/datum/surgery_step/limb/prepare
|
|
allowed_tools = list(
|
|
/obj/item/weapon/cautery = 100, \
|
|
/obj/item/clothing/mask/smokable/cigarette = 75, \
|
|
/obj/item/weapon/flame/lighter = 50, \
|
|
/obj/item/weapon/weldingtool = 25
|
|
)
|
|
|
|
min_duration = 60
|
|
max_duration = 70
|
|
|
|
can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
|
if(..())
|
|
var/datum/organ/external/affected = target.get_organ(target_zone)
|
|
return affected.open == 3
|
|
|
|
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
|
var/datum/organ/external/affected = target.get_organ(target_zone)
|
|
user.visible_message("[user] starts adjusting the area around [target]'s [affected.display_name] with \the [tool].", \
|
|
"You start adjusting the area around [target]'s [affected.display_name] with \the [tool].")
|
|
..()
|
|
|
|
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
|
var/datum/organ/external/affected = target.get_organ(target_zone)
|
|
user.visible_message("\blue [user] has finished adjusting the area around [target]'s [affected.display_name] with \the [tool].", \
|
|
"\blue You have finished adjusting the area around [target]'s [affected.display_name] with \the [tool].")
|
|
affected.status |= ORGAN_ATTACHABLE
|
|
affected.amputated = 1
|
|
affected.setAmputatedTree()
|
|
affected.open = 0
|
|
|
|
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
|
var/datum/organ/external/affected = target.get_organ(target_zone)
|
|
if (affected.parent)
|
|
affected = affected.parent
|
|
user.visible_message("\red [user]'s hand slips, searing [target]'s [affected.display_name]!", \
|
|
"\red Your hand slips, searing [target]'s [affected.display_name]!")
|
|
target.apply_damage(10, BURN, affected)
|
|
|
|
|
|
/datum/surgery_step/limb/attach
|
|
allowed_tools = list(/obj/item/robot_parts = 100)
|
|
|
|
min_duration = 80
|
|
max_duration = 100
|
|
|
|
can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
|
if(..())
|
|
var/obj/item/robot_parts/p = tool
|
|
if (p.part)
|
|
if (!(target_zone in p.part))
|
|
return 0
|
|
var/datum/organ/external/affected = target.get_organ(target_zone)
|
|
return affected.status & ORGAN_ATTACHABLE
|
|
|
|
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
|
var/datum/organ/external/affected = target.get_organ(target_zone)
|
|
user.visible_message("[user] starts attaching \the [tool] where [target]'s [affected.display_name] used to be.", \
|
|
"You start attaching \the [tool] where [target]'s [affected.display_name] used to be.")
|
|
|
|
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
|
var/obj/item/robot_parts/L = tool
|
|
var/datum/organ/external/affected = target.get_organ(target_zone)
|
|
user.visible_message("\blue [user] has attached \the [tool] where [target]'s [affected.display_name] used to be.", \
|
|
"\blue You have attached \the [tool] where [target]'s [affected.display_name] used to be.")
|
|
affected.germ_level = 0
|
|
affected.robotize()
|
|
if(L.sabotaged)
|
|
affected.sabotaged = 1
|
|
else
|
|
affected.sabotaged = 0
|
|
target.update_body()
|
|
target.updatehealth()
|
|
target.UpdateDamageIcon()
|
|
del(tool)
|
|
|
|
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
|
var/datum/organ/external/affected = target.get_organ(target_zone)
|
|
user.visible_message("\red [user]'s hand slips, damaging connectors on [target]'s [affected.display_name]!", \
|
|
"\red Your hand slips, damaging connectors on [target]'s [affected.display_name]!")
|
|
target.apply_damage(10, BRUTE, affected, sharp=1)
|