From 7dfdb50919f0a7bbc9c8f7d1841500912a910b00 Mon Sep 17 00:00:00 2001 From: Incoming Date: Wed, 28 Oct 2015 17:30:28 -0400 Subject: [PATCH] Adds dental implant surgery. While targeting the mouth drill a hole in a tooth then stick a pill in there for hands free later use. --- code/modules/surgery/dental_implant.dm | 41 +++++++++++++++++++ code/modules/surgery/generic_steps.dm | 15 ++++++- .../Incoming5643-fake-death-pill.yml | 6 +++ tgstation.dme | 1 + 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 code/modules/surgery/dental_implant.dm create mode 100644 html/changelogs/Incoming5643-fake-death-pill.yml diff --git a/code/modules/surgery/dental_implant.dm b/code/modules/surgery/dental_implant.dm new file mode 100644 index 00000000000..fd754302486 --- /dev/null +++ b/code/modules/surgery/dental_implant.dm @@ -0,0 +1,41 @@ +/datum/surgery/dental_implant + name = "dental implant" + steps = list(/datum/surgery_step/drill, /datum/surgery_step/insert_pill) + possible_locs = list("mouth") + +/datum/surgery_step/insert_pill + name = "insert pill" + implements = list(/obj/item/weapon/reagent_containers/pill = 100) + time = 16 + +/datum/surgery_step/insert_pill/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + user.visible_message("[user] begins to wedge [tool] in [target]'s [parse_zone(target_zone)].", "You begin to wedge [tool] in [target]'s [parse_zone(target_zone)]...") + +/datum/surgery_step/insert_pill/success(mob/user, mob/living/carbon/target, target_zone, var/obj/item/weapon/reagent_containers/pill/tool, datum/surgery/surgery) + if(!istype(tool)) + return 0 + + user.drop_item() + target.internal_organs += tool + tool.loc = target + + var/datum/action/item_action/hands_free/activate_pill/P = new + P.button_icon_state = tool.icon_state + P.target = tool + P.Grant(target) + + user.visible_message("[user] wedges [tool] into [target]'s [parse_zone(target_zone)]!", "You wedge [tool] into [target]'s [parse_zone(target_zone)].") + return 1 + +/datum/action/item_action/hands_free/activate_pill + name = "activate pill" + +/datum/action/item_action/hands_free/activate_pill/Trigger() + user << "You grit your teeth and burst the implanted [target]! + if(CheckRemoval(owner)) + return 0 + if(target.reagents.total_volume) + target.reagents.reaction(owner, INGEST) + target.reagents.trans_to(owner, target.reagents.total_volume) + qdel(target) + return 1 \ No newline at end of file diff --git a/code/modules/surgery/generic_steps.dm b/code/modules/surgery/generic_steps.dm index 8ae69a48768..537ba293d36 100644 --- a/code/modules/surgery/generic_steps.dm +++ b/code/modules/surgery/generic_steps.dm @@ -86,4 +86,17 @@ H.apply_damage(50,"brute","[target_zone]") user.visible_message("[user] saws [target]'s [parse_zone(target_zone)] open!", "You saw [target]'s [parse_zone(target_zone)] open.") - return 1 \ No newline at end of file + return 1 + +//drill bone +/datum/surgery_step/drill + name = "drill bone" + implements = list(/obj/item/weapon/surgicaldrill = 100, /obj/item/weapon/pickaxe/drill = 60, /obj/item/mecha_parts/mecha_equipment/drill = 60, /obj/item/weapon/screwdriver = 20) + time = 30 + +/datum/surgery_step/drill/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + user.visible_message("[user] begins to drill into the bone in [target]'s [parse_zone(target_zone)].", "You begin to drill into the bone in [target]'s [parse_zone(target_zone)]...") + +/datum/surgery_step/drill/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + user.visible_message("[user] drills into [target]'s [parse_zone(target_zone)]!", "You drill into [target]'s [parse_zone(target_zone)].") + return 1 diff --git a/html/changelogs/Incoming5643-fake-death-pill.yml b/html/changelogs/Incoming5643-fake-death-pill.yml new file mode 100644 index 00000000000..e20161b93b2 --- /dev/null +++ b/html/changelogs/Incoming5643-fake-death-pill.yml @@ -0,0 +1,6 @@ +author: Incoming5643 + +delete-after: True + +changes: + - rscadd: "Added dental implant surgery. While targeting the mouth drill a hole in a tooth then stick a pill in there for hands free later use." diff --git a/tgstation.dme b/tgstation.dme index c57f42076ae..37331044f8a 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1513,6 +1513,7 @@ #include "code\modules\space transition\space_transition.dm" #include "code\modules\surgery\cavity_implant.dm" #include "code\modules\surgery\core_removal.dm" +#include "code\modules\surgery\dental_implant.dm" #include "code\modules\surgery\dethrall.dm" #include "code\modules\surgery\eye_surgery.dm" #include "code\modules\surgery\gender_reassignment.dm"