Merge pull request #1177 from Fox-McCloud/laserrrrzzzz

Researchable Surgical Tools Port
This commit is contained in:
ZomgPonies
2015-05-26 22:21:10 -04:00
4 changed files with 167 additions and 1 deletions
@@ -165,3 +165,43 @@
reliability_base = 76
build_path = /obj/item/device/flash/synthetic
category = list("Misc")
/datum/design/item/scalpel_laser1
name = "Basic Laser Scalpel"
desc = "A scalpel augmented with a directed laser, for more precise cutting without blood entering the field. This one looks basic and could be improved."
id = "scalpel_laser1"
req_tech = list("biotech" = 2, "materials" = 2, "magnets" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 12500, "$glass" = 7500)
build_path = /obj/item/weapon/scalpel/laser1
category = list("Medical")
/datum/design/item/scalpel_laser2
name = "Improved Laser Scalpel"
desc = "A scalpel augmented with a directed laser, for more precise cutting without blood entering the field. This one looks somewhat advanced."
id = "scalpel_laser2"
req_tech = list("biotech" = 3, "materials" = 4, "magnets" = 4)
build_type = PROTOLATHE
materials = list("$metal" = 12500, "$glass" = 7500, "$silver" = 2500)
build_path = /obj/item/weapon/scalpel/laser2
category = list("Medical")
/datum/design/item/scalpel_laser3
name = "Advanced Laser Scalpel"
desc = "A scalpel augmented with a directed laser, for more precise cutting without blood entering the field. This one looks to be the pinnacle of precision energy cutlery!"
id = "scalpel_laser3"
req_tech = list("biotech" = 4, "materials" = 6, "magnets" = 5)
build_type = PROTOLATHE
materials = list("$metal" = 12500, "$glass" = 7500, "$silver" = 2000, "$gold" = 1500)
build_path = /obj/item/weapon/scalpel/laser3
category = list("Medical")
/datum/design/item/scalpel_manager
name = "Incision Management System"
desc = "A true extension of the surgeon's body, this marvel instantly and completely prepares an incision allowing for the immediate commencement of therapeutic steps."
id = "scalpel_manager"
req_tech = list("biotech" = 4, "materials" = 7, "magnets" = 5, "programming" = 4)
build_type = PROTOLATHE
materials = list ("$metal" = 12500, "$glass" = 7500, "$silver" = 1500, "$gold" = 1500, "$diamond" = 750)
build_path = /obj/item/weapon/scalpel/manager
category = list("Medical")
+84
View File
@@ -21,6 +21,90 @@
return 0
return 1
/datum/surgery_step/generic/cut_with_laser
allowed_tools = list(
/obj/item/weapon/scalpel/laser3 = 95, \
/obj/item/weapon/scalpel/laser2 = 85, \
/obj/item/weapon/scalpel/laser1 = 75, \
/obj/item/weapon/melee/energy/sword = 5
)
min_duration = 90
max_duration = 110
can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
if(..())
var/obj/item/organ/external/affected = target.get_organ(target_zone)
return affected.open == 0 && target_zone != "mouth"
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 the bloodless incision on [target]'s [affected.name] with \the [tool].", \
"You start the bloodless incision on [target]'s [affected.name] with \the [tool].")
target.custom_pain("You feel a horrible, searing pain in your [affected.name]!",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] has made a bloodless incision on [target]'s [affected.name] with \the [tool].", \
"\blue You have made a bloodless incision on [target]'s [affected.name] with \the [tool].",)
//Could be cleaner ...
affected.open = 1
if(istype(target) && !(target.species.flags & NO_BLOOD))
affected.status |= ORGAN_BLEEDING
affected.createwound(CUT, 1)
affected.clamp()
spread_germs_to_organ(affected, user)
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 as the blade sputters, searing a long gash in [target]'s [affected.name] with \the [tool]!", \
"\red Your hand slips as the blade sputters, searing a long gash in [target]'s [affected.name] with \the [tool]!")
affected.createwound(CUT, 7.5)
affected.createwound(BURN, 12.5)
/datum/surgery_step/generic/incision_manager
allowed_tools = list(
/obj/item/weapon/scalpel/manager = 100
)
min_duration = 80
max_duration = 120
can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
if(..())
var/obj/item/organ/external/affected = target.get_organ(target_zone)
return affected.open == 0 && target_zone != "mouth"
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 construct a prepared incision on and within [target]'s [affected.name] with \the [tool].", \
"You start to construct a prepared incision on and within [target]'s [affected.name] with \the [tool].")
target.custom_pain("You feel a horrible, searing pain in your [affected.name] as it is pushed apart!",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] has constructed a prepared incision on and within [target]'s [affected.name] with \the [tool].", \
"\blue You have constructed a prepared incision on and within [target]'s [affected.name] with \the [tool].",)
affected.open = 1
if(istype(target) && !(target.species.flags & NO_BLOOD))
affected.status |= ORGAN_BLEEDING
affected.createwound(CUT, 1)
affected.clamp()
affected.open = 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 jolts as the system sparks, ripping a gruesome hole in [target]'s [affected.name] with \the [tool]!", \
"\red Your hand jolts as the system sparks, ripping a gruesome hole in [target]'s [affected.name] with \the [tool]!")
affected.createwound(CUT, 20)
affected.createwound(BURN, 15)
/datum/surgery_step/generic/cut_open
allowed_tools = list(
/obj/item/weapon/scalpel = 100, \
+43 -1
View File
@@ -41,11 +41,13 @@
desc = "You can drill using this item. You dig?"
icon = 'icons/obj/surgery.dmi'
icon_state = "drill"
hitsound = 'sound/weapons/circsawhit.ogg'
hitsound = 'sound/weapons/drill.ogg'
m_amt = 10000
g_amt = 6000
flags = CONDUCT
force = 15.0
sharp = 1
edge = 1
w_class = 3.0
origin_tech = "materials=1;biotech=1"
attack_verb = list("drilled")
@@ -82,6 +84,44 @@
return (BRUTELOSS)
/*
* Researchable Scalpels
*/
/obj/item/weapon/scalpel/laser1
name = "laser scalpel"
desc = "A scalpel augmented with a directed laser, for more precise cutting without blood entering the field. This one looks basic and could be improved."
icon_state = "scalpel_laser1_on"
item_state = "scalpel"
damtype = "fire"
hitsound = 'sound/weapons/sear2.ogg'
/obj/item/weapon/scalpel/laser2
name = "laser scalpel"
desc = "A scalpel augmented with a directed laser, for more precise cutting without blood entering the field. This one looks somewhat advanced."
icon_state = "scalpel_laser2_on"
item_state = "scalpel"
damtype = "fire"
force = 12.0
hitsound = 'sound/weapons/sear2.ogg'
/obj/item/weapon/scalpel/laser3
name = "laser scalpel"
desc = "A scalpel augmented with a directed laser, for more precise cutting without blood entering the field. This one looks to be the pinnacle of precision energy cutlery!"
icon_state = "scalpel_laser3_on"
item_state = "scalpel"
damtype = "fire"
force = 15.0
hitsound = 'sound/weapons/sear2.ogg'
/obj/item/weapon/scalpel/manager
name = "incision management system"
desc = "A true extension of the surgeon's body, this marvel instantly and completely prepares an incision allowing for the immediate commencement of therapeutic steps."
icon_state = "scalpel_manager_on"
item_state = "scalpel"
damtype = "fire"
force = 18.0
hitsound = 'sound/weapons/sear2.ogg'
/obj/item/weapon/circular_saw
name = "circular saw"
desc = "For heavy duty cutting."
@@ -90,6 +130,8 @@
hitsound = 'sound/weapons/circsawhit.ogg'
flags = CONDUCT
force = 15.0
sharp = 1
edge = 1
w_class = 3.0
throwforce = 9.0
throw_speed = 3