From 83082e4c9a8b6c87326e124d30106eb61f60905d Mon Sep 17 00:00:00 2001 From: CometBlaze <59415394+CometBlaze@users.noreply.github.com> Date: Wed, 2 Oct 2024 13:33:28 +0100 Subject: [PATCH 1/6] adds an integrated surgical toolset --- .../objects/items/weapons/surgery_tools.dm | 41 +++++++++++++++++++ .../loadout/items/augments.dm | 13 ++++++ .../subtypes/augment/augments/combitool.dm | 31 ++++++++++++++ 3 files changed, 85 insertions(+) diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm index 4af219b209d..0607800a22b 100644 --- a/code/game/objects/items/weapons/surgery_tools.dm +++ b/code/game/objects/items/weapons/surgery_tools.dm @@ -35,6 +35,12 @@ obj_flags = OBJ_FLAG_CONDUCTABLE origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1) +/* + * Integrated Retractor + */ +/obj/item/surgery/retractor/integrated + name = "integrated retractor" + desc = "A pair of retractor forceps portruding from the palm of the hand, allowing for careful opening of incisions." /* * Hemostat */ @@ -48,6 +54,12 @@ obj_flags = OBJ_FLAG_CONDUCTABLE origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1) attack_verb = list("attacked", "pinched") +/* + * Integrated Hemostat + */ +/obj/item/surgery/hemostat/integrated + name = "integrated hemostat" + desc = "Two prongs of adjustable length portruding from the index and middle fingers, able to clamp bloodvessels shut during surgery or remove things from the surgical site as needed." /* * Cautery @@ -63,6 +75,12 @@ origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1) attack_verb = list("burnt") +/* + * Integrated Cautery + */ +/obj/item/surgery/cautery/integrated + name = "integrated cautery" + desc = "A small cautery pen. Used for sealing incisions with electrical current." /* * Surgical Drill */ @@ -106,6 +124,15 @@ drop_sound = 'sound/items/drop/knife.ogg' pickup_sound = 'sound/items/pickup/knife.ogg' + +/* + * Integrated Scalpel + */ +/obj/item/surgery/scalpel/integrated + name = "integrated scalpel" + desc = "An integrated scalpel, effectively just a small blade portruding from the index finger. Useful for surgery and little else." + force = 0 + /* * Researchable Scalpels */ @@ -188,6 +215,20 @@ throw_range = 5 attack_verb = list("attacked", "hit", "bludgeoned") +/*/obj/item/surgery/combitool + name = "surgical combitool" + desc = "An integrated surgical combitool module." + icon_state = "digitool" + item_state = "digitool" + w_class = WEIGHT_CLASS_BULKY + var/list/tools = list( + "scalpel", + "hemostat", + "retractor", + "cautery" + ) + var/current_tool = 1 */ + /obj/item/storage/box/fancy/tray name = "surgery tray" desc = "A tray of surgical tools." diff --git a/code/modules/client/preference_setup/loadout/items/augments.dm b/code/modules/client/preference_setup/loadout/items/augments.dm index 460bf0d21f9..4e9a3b15f44 100644 --- a/code/modules/client/preference_setup/loadout/items/augments.dm +++ b/code/modules/client/preference_setup/loadout/items/augments.dm @@ -48,6 +48,12 @@ path = /obj/item/organ/internal/augment/tool/combitool cost = 5 +/datum/gear/augment/integrated/surgical + display_name = "retractable surgical combitool" + description = "An augment that allows the user to deploy a surgical combitool." + path = /obj/item/organ/internal/augment/tool/integrated/surgical + cost = 3 + /datum/gear/augment/combitool/New() ..() var/list/augs = list() @@ -55,6 +61,13 @@ augs["retractable combitool, left hand"] = /obj/item/organ/internal/augment/tool/combitool/left gear_tweaks += new /datum/gear_tweak/path(augs) +/datum/gear/augment/integrated/surgical/New() + ..() + var/list/augs = list() + augs["retractable surgical combitool, right hand"] = /obj/item/organ/internal/augment/tool/integrated/surgical + augs["retractable surgical combitool, left hand"] = /obj/item/organ/internal/augment/tool/integrated/surgical/left + gear_tweaks += new /datum/gear_tweak/path(augs) + /datum/gear/augment/lighter display_name = "retractable lighter" description = "An augment that allows the user to project a lighter out of their fingertip." diff --git a/code/modules/organs/subtypes/augment/augments/combitool.dm b/code/modules/organs/subtypes/augment/augments/combitool.dm index 4e77b2888bc..3835d9e5114 100644 --- a/code/modules/organs/subtypes/augment/augments/combitool.dm +++ b/code/modules/organs/subtypes/augment/augments/combitool.dm @@ -7,6 +7,37 @@ organ_tag = BP_AUG_TOOL augment_type = /obj/item/combitool/robotic +/obj/item/organ/internal/augment/tool/integrated/surgical + name = "retractable surgical combitool" + icon_state = "augment-tool" + action_button_name = "Deploy Surgical Combitool" + action_button_icon = "augment-tool" + parent_organ = BP_R_HAND + organ_tag = BP_AUG_TOOL + var/list/tools = list( + "scalpel" = /obj/item/surgery/scalpel/integrated, + "hemostat" = /obj/item/surgery/hemostat/integrated, + "retractor" = /obj/item/surgery/retractor/integrated, + "cautery" = /obj/item/surgery/cautery/integrated + ) + var/using_tool = FALSE + +/obj/item/organ/internal/augment/tool/integrated/attack_self(var/mob/user) + if(using_tool) + ..() + using_tool = FALSE + return 1 + var/tool = RADIAL_INPUT(user, tools) + if(tool) + using_tool = TRUE + augment_type = tools[tool] + ..() + return 1 + /obj/item/organ/internal/augment/tool/combitool/left parent_organ = BP_L_HAND aug_slot = slot_l_hand + +/obj/item/organ/internal/augment/tool/integrated/surgical/left + parent_organ = BP_L_HAND + aug_slot = slot_l_hand From ae0d539165ac4e13164c69956a0101bbf270e257 Mon Sep 17 00:00:00 2001 From: CometBlaze <59415394+CometBlaze@users.noreply.github.com> Date: Wed, 2 Oct 2024 18:17:17 +0100 Subject: [PATCH 2/6] changelog and tweaks --- .../objects/items/weapons/surgery_tools.dm | 27 --------- .../loadout/items/augments.dm | 17 +++--- .../subtypes/augment/augments/combitool.dm | 31 ---------- .../subtypes/augment/augments/integrated.dm | 35 +++++++++++ .../CometBlaze-surgical_implant.yml | 58 +++++++++++++++++++ 5 files changed, 102 insertions(+), 66 deletions(-) create mode 100644 code/modules/organs/subtypes/augment/augments/integrated.dm create mode 100644 html/changelogs/CometBlaze-surgical_implant.yml diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm index 0607800a22b..a4b45e1169b 100644 --- a/code/game/objects/items/weapons/surgery_tools.dm +++ b/code/game/objects/items/weapons/surgery_tools.dm @@ -35,12 +35,6 @@ obj_flags = OBJ_FLAG_CONDUCTABLE origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1) -/* - * Integrated Retractor - */ -/obj/item/surgery/retractor/integrated - name = "integrated retractor" - desc = "A pair of retractor forceps portruding from the palm of the hand, allowing for careful opening of incisions." /* * Hemostat */ @@ -54,12 +48,6 @@ obj_flags = OBJ_FLAG_CONDUCTABLE origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1) attack_verb = list("attacked", "pinched") -/* - * Integrated Hemostat - */ -/obj/item/surgery/hemostat/integrated - name = "integrated hemostat" - desc = "Two prongs of adjustable length portruding from the index and middle fingers, able to clamp bloodvessels shut during surgery or remove things from the surgical site as needed." /* * Cautery @@ -75,12 +63,6 @@ origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1) attack_verb = list("burnt") -/* - * Integrated Cautery - */ -/obj/item/surgery/cautery/integrated - name = "integrated cautery" - desc = "A small cautery pen. Used for sealing incisions with electrical current." /* * Surgical Drill */ @@ -124,15 +106,6 @@ drop_sound = 'sound/items/drop/knife.ogg' pickup_sound = 'sound/items/pickup/knife.ogg' - -/* - * Integrated Scalpel - */ -/obj/item/surgery/scalpel/integrated - name = "integrated scalpel" - desc = "An integrated scalpel, effectively just a small blade portruding from the index finger. Useful for surgery and little else." - force = 0 - /* * Researchable Scalpels */ diff --git a/code/modules/client/preference_setup/loadout/items/augments.dm b/code/modules/client/preference_setup/loadout/items/augments.dm index 4e9a3b15f44..62d2484c154 100644 --- a/code/modules/client/preference_setup/loadout/items/augments.dm +++ b/code/modules/client/preference_setup/loadout/items/augments.dm @@ -49,23 +49,24 @@ cost = 5 /datum/gear/augment/integrated/surgical - display_name = "retractable surgical combitool" - description = "An augment that allows the user to deploy a surgical combitool." + display_name = "retractable surgical toolset" + description = "An augment that allows the user to deploy a selection of surgical tools." path = /obj/item/organ/internal/augment/tool/integrated/surgical cost = 3 + allowed_roles = list("Physician", "Surgeon", "Chief Medical Officer", "Research Director", "Scientist", "Xenobiologist", "Medical Personnel", "Science Personnel") -/datum/gear/augment/combitool/New() +/datum/gear/augment/integrated/surgical/New() ..() var/list/augs = list() - augs["retractable combitool, right hand"] = /obj/item/organ/internal/augment/tool/combitool - augs["retractable combitool, left hand"] = /obj/item/organ/internal/augment/tool/combitool/left + augs["retractable surgical toolset, right hand"] = /obj/item/organ/internal/augment/tool/integrated/surgical + augs["retractable surgical toolset, left hand"] = /obj/item/organ/internal/augment/tool/integrated/surgical/left gear_tweaks += new /datum/gear_tweak/path(augs) -/datum/gear/augment/integrated/surgical/New() +/datum/gear/augment/combitool/New() ..() var/list/augs = list() - augs["retractable surgical combitool, right hand"] = /obj/item/organ/internal/augment/tool/integrated/surgical - augs["retractable surgical combitool, left hand"] = /obj/item/organ/internal/augment/tool/integrated/surgical/left + augs["retractable combitool, right hand"] = /obj/item/organ/internal/augment/tool/combitool + augs["retractable combitool, left hand"] = /obj/item/organ/internal/augment/tool/combitool/left gear_tweaks += new /datum/gear_tweak/path(augs) /datum/gear/augment/lighter diff --git a/code/modules/organs/subtypes/augment/augments/combitool.dm b/code/modules/organs/subtypes/augment/augments/combitool.dm index 3835d9e5114..4e77b2888bc 100644 --- a/code/modules/organs/subtypes/augment/augments/combitool.dm +++ b/code/modules/organs/subtypes/augment/augments/combitool.dm @@ -7,37 +7,6 @@ organ_tag = BP_AUG_TOOL augment_type = /obj/item/combitool/robotic -/obj/item/organ/internal/augment/tool/integrated/surgical - name = "retractable surgical combitool" - icon_state = "augment-tool" - action_button_name = "Deploy Surgical Combitool" - action_button_icon = "augment-tool" - parent_organ = BP_R_HAND - organ_tag = BP_AUG_TOOL - var/list/tools = list( - "scalpel" = /obj/item/surgery/scalpel/integrated, - "hemostat" = /obj/item/surgery/hemostat/integrated, - "retractor" = /obj/item/surgery/retractor/integrated, - "cautery" = /obj/item/surgery/cautery/integrated - ) - var/using_tool = FALSE - -/obj/item/organ/internal/augment/tool/integrated/attack_self(var/mob/user) - if(using_tool) - ..() - using_tool = FALSE - return 1 - var/tool = RADIAL_INPUT(user, tools) - if(tool) - using_tool = TRUE - augment_type = tools[tool] - ..() - return 1 - /obj/item/organ/internal/augment/tool/combitool/left parent_organ = BP_L_HAND aug_slot = slot_l_hand - -/obj/item/organ/internal/augment/tool/integrated/surgical/left - parent_organ = BP_L_HAND - aug_slot = slot_l_hand diff --git a/code/modules/organs/subtypes/augment/augments/integrated.dm b/code/modules/organs/subtypes/augment/augments/integrated.dm new file mode 100644 index 00000000000..8a6b014398d --- /dev/null +++ b/code/modules/organs/subtypes/augment/augments/integrated.dm @@ -0,0 +1,35 @@ +/obj/item/organ/internal/augment/tool/integrated + name = "retractable toolset" + icon_state = "augment-tool" + action_button_name = "Deploy Tool" + action_button_icon = "augment-tool" + parent_organ = BP_R_HAND + organ_tag = BP_AUG_TOOL + var/list/tools + var/using_tool = FALSE + +/obj/item/organ/internal/augment/tool/integrated/surgical + name = "retractable surgical toolset" + action_button_name = "Deploy Surgical Tool" + tools = list( + "scalpel" = /obj/item/surgery/scalpel, + "hemostat" = /obj/item/surgery/hemostat, + "retractor" = /obj/item/surgery/retractor, + "cautery" = /obj/item/surgery/cautery + ) + +/obj/item/organ/internal/augment/tool/integrated/attack_self(var/mob/user) + if(using_tool) + ..() + using_tool = FALSE + return 1 + var/tool = RADIAL_INPUT(user, tools) + if(tool) + using_tool = TRUE + augment_type = tools[tool] + ..() + return 1 + +/obj/item/organ/internal/augment/tool/integrated/surgical/left + parent_organ = BP_L_HAND + aug_slot = slot_l_hand diff --git a/html/changelogs/CometBlaze-surgical_implant.yml b/html/changelogs/CometBlaze-surgical_implant.yml new file mode 100644 index 00000000000..22f56aa03b3 --- /dev/null +++ b/html/changelogs/CometBlaze-surgical_implant.yml @@ -0,0 +1,58 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# - (fixes bugs) +# wip +# - (work in progress) +# qol +# - (quality of life) +# soundadd +# - (adds a sound) +# sounddel +# - (removes a sound) +# rscadd +# - (adds a feature) +# rscdel +# - (removes a feature) +# imageadd +# - (adds an image or sprite) +# imagedel +# - (removes an image or sprite) +# spellcheck +# - (fixes spelling or grammar) +# experiment +# - (experimental change) +# balance +# - (balance changes) +# code_imp +# - (misc internal code change) +# refactor +# - (refactors code) +# config +# - (makes a change to the config files) +# admin +# - (makes changes to administrator tools) +# server +# - (miscellaneous changes to server) +################################# + +# Your name. +author: CometBlaze + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added an integrated surgical toolset containing a scalpel, a hemostat, a retractor and a cautery. Selectable in the loadout by the appropriate jobs." From 0d99a22d9634f2f68a2efb1fb20404831648eb0b Mon Sep 17 00:00:00 2001 From: CometBlaze <59415394+CometBlaze@users.noreply.github.com> Date: Wed, 2 Oct 2024 20:04:02 +0100 Subject: [PATCH 3/6] adds bloat --- aurorastation.dme | 1 + 1 file changed, 1 insertion(+) diff --git a/aurorastation.dme b/aurorastation.dme index 342d9ece4ee..0d6bf2f1e8c 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -3003,6 +3003,7 @@ #include "code\modules\organs\subtypes\augment\augments\fuel_cell.dm" #include "code\modules\organs\subtypes\augment\augments\gustatorial_centre.dm" #include "code\modules\organs\subtypes\augment\augments\health_analyzer.dm" +#include "code\modules\organs\subtypes\augment\augments\integrated.dm" #include "code\modules\organs\subtypes\augment\augments\language_processor.dm" #include "code\modules\organs\subtypes\augment\augments\lighter.dm" #include "code\modules\organs\subtypes\augment\augments\memory_inhibitor.dm" From 5d6b8d809d16ea4043bc9f9ec757659cfb12b32e Mon Sep 17 00:00:00 2001 From: CometBlaze <59415394+CometBlaze@users.noreply.github.com> Date: Thu, 3 Oct 2024 00:20:46 +0100 Subject: [PATCH 4/6] that should not have been there --- code/game/objects/items/weapons/surgery_tools.dm | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm index a4b45e1169b..4af219b209d 100644 --- a/code/game/objects/items/weapons/surgery_tools.dm +++ b/code/game/objects/items/weapons/surgery_tools.dm @@ -188,20 +188,6 @@ throw_range = 5 attack_verb = list("attacked", "hit", "bludgeoned") -/*/obj/item/surgery/combitool - name = "surgical combitool" - desc = "An integrated surgical combitool module." - icon_state = "digitool" - item_state = "digitool" - w_class = WEIGHT_CLASS_BULKY - var/list/tools = list( - "scalpel", - "hemostat", - "retractor", - "cautery" - ) - var/current_tool = 1 */ - /obj/item/storage/box/fancy/tray name = "surgery tray" desc = "A tray of surgical tools." From 0155e48e2f2deba9d4fb9066e572672ce6a49e7b Mon Sep 17 00:00:00 2001 From: CometBlaze <59415394+CometBlaze@users.noreply.github.com> Date: Fri, 4 Oct 2024 09:26:27 +0100 Subject: [PATCH 5/6] addresses requests --- .../organs/subtypes/augment/augments/integrated.dm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/code/modules/organs/subtypes/augment/augments/integrated.dm b/code/modules/organs/subtypes/augment/augments/integrated.dm index 8a6b014398d..cdc120b1831 100644 --- a/code/modules/organs/subtypes/augment/augments/integrated.dm +++ b/code/modules/organs/subtypes/augment/augments/integrated.dm @@ -5,7 +5,10 @@ action_button_icon = "augment-tool" parent_organ = BP_R_HAND organ_tag = BP_AUG_TOOL - var/list/tools + cooldown = 1 + /// What tools the implant has + var/list/obj/item/tools + /// Do we have an active tool or not? var/using_tool = FALSE /obj/item/organ/internal/augment/tool/integrated/surgical @@ -22,13 +25,13 @@ if(using_tool) ..() using_tool = FALSE - return 1 + return var/tool = RADIAL_INPUT(user, tools) if(tool) using_tool = TRUE augment_type = tools[tool] ..() - return 1 + return /obj/item/organ/internal/augment/tool/integrated/surgical/left parent_organ = BP_L_HAND From 5e508721a066588b83b395a24d18a952d997fa06 Mon Sep 17 00:00:00 2001 From: CometBlaze <59415394+CometBlaze@users.noreply.github.com> Date: Sun, 6 Oct 2024 11:59:43 +0100 Subject: [PATCH 6/6] Does not come back Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> Signed-off-by: CometBlaze <59415394+CometBlaze@users.noreply.github.com> --- code/modules/organs/subtypes/augment/augments/integrated.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/organs/subtypes/augment/augments/integrated.dm b/code/modules/organs/subtypes/augment/augments/integrated.dm index cdc120b1831..a9ec16cc9fc 100644 --- a/code/modules/organs/subtypes/augment/augments/integrated.dm +++ b/code/modules/organs/subtypes/augment/augments/integrated.dm @@ -31,7 +31,6 @@ using_tool = TRUE augment_type = tools[tool] ..() - return /obj/item/organ/internal/augment/tool/integrated/surgical/left parent_organ = BP_L_HAND