diff --git a/.gitconfig b/.gitconfig index de5ff6f2542..cd4cf17954b 100644 --- a/.gitconfig +++ b/.gitconfig @@ -2,4 +2,3 @@ name = mapmerge driver driver = ./mapmerge.sh %O %A %B recursive = text - diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 0dec82fe17c..38130f27395 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -241,6 +241,50 @@ new /obj/item/device/multitool/alien(src) new /obj/item/stack/cable_coil/alien(src) +/obj/item/weapon/storage/belt/medical/alien + name = "alien belt" + desc = "A belt(?) that can hold things." + icon = 'icons/obj/abductor.dmi' + icon_state = "belt" + item_state = "security" + can_hold = list( + /obj/item/device/healthanalyzer, + /obj/item/weapon/dnainjector, + /obj/item/weapon/reagent_containers/dropper, + /obj/item/weapon/reagent_containers/glass/beaker, + /obj/item/weapon/reagent_containers/glass/bottle, + /obj/item/weapon/reagent_containers/pill, + /obj/item/weapon/reagent_containers/syringe, + /obj/item/weapon/flame/lighter/zippo, + /obj/item/weapon/storage/fancy/cigarettes, + /obj/item/weapon/storage/pill_bottle, + /obj/item/stack/medical, + /obj/item/device/radio/headset, + /obj/item/device/pda, + /obj/item/taperoll, + /obj/item/device/megaphone, + /obj/item/clothing/mask/surgical, + /obj/item/clothing/head/surgery, + /obj/item/clothing/gloves, + /obj/item/weapon/reagent_containers/hypospray, + /obj/item/clothing/glasses, + /obj/item/weapon/crowbar, + /obj/item/device/flashlight, + /obj/item/weapon/cell/device, + /obj/item/weapon/extinguisher/mini, + /obj/item/weapon/surgical + ) + +/obj/item/weapon/storage/belt/medical/alien/New() + ..() + new /obj/item/weapon/surgical/scalpel/alien(src) + new /obj/item/weapon/surgical/hemostat/alien(src) + new /obj/item/weapon/surgical/retractor/alien(src) + new /obj/item/weapon/surgical/circular_saw/alien(src) + new /obj/item/weapon/surgical/FixOVein/alien(src) + new /obj/item/weapon/surgical/bone_clamp/alien(src) + new /obj/item/weapon/surgical/cautery/alien(src) + /obj/item/weapon/storage/belt/champion name = "championship belt" desc = "Proves to the world that you are the strongest!" diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm index 58c5d18ea06..96f5e30f693 100644 --- a/code/game/objects/items/weapons/surgery_tools.dm +++ b/code/game/objects/items/weapons/surgery_tools.dm @@ -166,13 +166,22 @@ /obj/item/weapon/surgical/bonesetter name = "bone setter" desc = "Put them in their place." - icon_state = "bone setter" + icon_state = "bone_setter" force = 8.0 throwforce = 9.0 throw_speed = 3 throw_range = 5 attack_verb = list("attacked", "hit", "bludgeoned") +/obj/item/weapon/surgical/bone_clamp + name = "bone clamp" + desc = "The best way to get a bone fixed fast." + icon_state = "bone_clamp" + force = 8 + throwforce = 9 + throw_speed = 3 + throw_range = 5 + attack_verb = list("attacked", "hit", "bludgeoned") // Cyborg Tools @@ -201,4 +210,38 @@ toolspeed = 0.5 /obj/item/weapon/surgical/bonesetter/cyborg - toolspeed = 0.5 \ No newline at end of file + toolspeed = 0.5 + + +// Alien Tools +/obj/item/weapon/surgical/retractor/alien + icon = 'icons/obj/abductor.dmi' + toolspeed = 0.25 + +/obj/item/weapon/surgical/hemostat/alien + icon = 'icons/obj/abductor.dmi' + toolspeed = 0.25 + +/obj/item/weapon/surgical/cautery/alien + icon = 'icons/obj/abductor.dmi' + toolspeed = 0.25 + +/obj/item/weapon/surgical/surgicaldrill/alien + icon = 'icons/obj/abductor.dmi' + toolspeed = 0.25 + +/obj/item/weapon/surgical/scalpel/alien + icon = 'icons/obj/abductor.dmi' + toolspeed = 0.25 + +/obj/item/weapon/surgical/circular_saw/alien + icon = 'icons/obj/abductor.dmi' + toolspeed = 0.25 + +/obj/item/weapon/surgical/FixOVein/alien + icon = 'icons/obj/abductor.dmi' + toolspeed = 0.25 + +/obj/item/weapon/surgical/bone_clamp/alien + icon = 'icons/obj/abductor.dmi' + toolspeed = 0.75 \ No newline at end of file diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index b99b9a7dde6..a6e6a948501 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -473,6 +473,15 @@ other types of metals and chemistry for reagents). build_path = /obj/item/weapon/surgical/scalpel/manager sort_string = "MBBAD" +/datum/design/item/bone_clamp + name = "Bone Clamp" + desc = "A miracle of modern science, this tool rapidly knits together bone, without the need for bone gel." + id = "bone_clamp" + req_tech = list(TECH_BIO = 4, TECH_MATERIAL = 5, TECH_MAGNET = 4, TECH_DATA = 4) + materials = list (DEFAULT_WALL_MATERIAL = 12500, "glass" = 7500, "silver" = 2500) + build_path = /obj/item/weapon/surgical/bone_clamp + sort_string = "MBBAE" + /datum/design/item/implant materials = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50) diff --git a/code/modules/surgery/bones.dm b/code/modules/surgery/bones.dm index 6a5a39df734..e1086dbdca9 100644 --- a/code/modules/surgery/bones.dm +++ b/code/modules/surgery/bones.dm @@ -145,4 +145,42 @@ 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("[user]'s hand slips, smearing [tool] in the incision in [target]'s [affected.name]!" , \ - "Your hand slips, smearing [tool] in the incision in [target]'s [affected.name]!") \ No newline at end of file + "Your hand slips, smearing [tool] in the incision in [target]'s [affected.name]!") + + + +/datum/surgery_step/clamp_bone + allowed_tools = list( + /obj/item/weapon/surgical/bone_clamp = 100 + ) + can_infect = 1 + blood_level = 1 + + min_duration = 70 + max_duration = 90 + + 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.robotic < ORGAN_ROBOT) && affected.open >= 2 && 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 repairing the damaged bones in [target]'s [affected.name] with \the [tool]." , \ + "You starts repairing 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!", 50) + ..() + + 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("[user] sets the bone in [target]'s [affected.name] with \the [tool].", \ + "You sets [target]'s bone in [affected.name] with \the [tool].") + affected.status &= ~ORGAN_BROKEN + + 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("[user]'s hand slips, damaging the bone in [target]'s [affected.name] with \the [tool]!" , \ + "Your hand slips, damaging the bone in [target]'s [affected.name] with \the [tool]!") + affected.createwound(BRUISE, 5) \ No newline at end of file diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi index 15ef72276fe..c08940b530c 100644 Binary files a/icons/obj/surgery.dmi and b/icons/obj/surgery.dmi differ