diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm index 6bac63dff0..ac616e21ab 100644 --- a/code/game/machinery/PDApainter.dm +++ b/code/game/machinery/PDApainter.dm @@ -101,7 +101,7 @@ else return ..() -/obj/machinery/pdapainter/deconstruct(disassembled = TRUE) +/obj/machinery/aug_manipulator/obj_break(damage_flag) if(!(flags_1 & NODECONSTRUCT_1)) if(!(stat & BROKEN)) stat |= BROKEN diff --git a/code/game/machinery/aug_manipulator.dm b/code/game/machinery/aug_manipulator.dm index 28733a6b6c..169425353e 100644 --- a/code/game/machinery/aug_manipulator.dm +++ b/code/game/machinery/aug_manipulator.dm @@ -16,6 +16,7 @@ . += "Alt-click to eject the limb." /obj/machinery/aug_manipulator/Initialize() + . = ..() initial_icon_state = initial(icon_state) return ..() diff --git a/sandcode/code/game/machinery/PDApainter.dm b/sandcode/code/game/machinery/PDApainter.dm new file mode 100644 index 0000000000..7eb1de31fa --- /dev/null +++ b/sandcode/code/game/machinery/PDApainter.dm @@ -0,0 +1,28 @@ +/obj/machinery/pdapainter + circuit = /obj/item/circuitboard/machine/pdapainter + +/obj/machinery/pdapainter/Initialize() //aug_manipulator code is so stupid that i sincerely can't make out why it doesn't just work normally + . = ..() //in any case if you figure out how to make it just work normally, have a go at it. + if(!component_parts) + circuit = null + circuit = new /obj/item/circuitboard/machine/pdapainter + component_parts = list() + component_parts += circuit + +/obj/machinery/pdapainter/examine(mob/user) + . += ..() + if(panel_open) + . += "Its maintenance panel is currently open." + +/obj/machinery/pdapainter/screwdriver_act(mob/living/user, obj/item/W) + . = TRUE + if(..()) + return + if(default_deconstruction_screwdriver(user, icon_state, icon_state, W)) + return TRUE + return FALSE + +/obj/machinery/pdapainter/crowbar_act(mob/living/user, obj/item/W) + . = ..() + if(default_deconstruction_crowbar(W, FALSE)) + return TRUE diff --git a/sandcode/code/game/machinery/aug_manipulator.dm b/sandcode/code/game/machinery/aug_manipulator.dm new file mode 100644 index 0000000000..6f9f6dc8e4 --- /dev/null +++ b/sandcode/code/game/machinery/aug_manipulator.dm @@ -0,0 +1,28 @@ +/obj/machinery/aug_manipulator + circuit = /obj/item/circuitboard/machine/aug_manipulator + +/obj/machinery/aug_manipulator/Initialize() //aug_manipulator code is so stupid that i sincerely can't make out why it doesn't just work normally + . = ..() //in any case if you figure out how to make it just work normally, have a go at it. + if(!component_parts) + circuit = null + circuit = new /obj/item/circuitboard/machine/aug_manipulator + component_parts = list() + component_parts += circuit + +/obj/machinery/aug_manipulator/examine(mob/user) + . += ..() + if(panel_open) + . += "Its maintenance panel is currently open." + +/obj/machinery/aug_manipulator/screwdriver_act(mob/living/user, obj/item/W) + . = TRUE + if(..()) + return + if(default_deconstruction_screwdriver(user, icon_state, icon_state, W)) + return TRUE + return FALSE + +/obj/machinery/aug_manipulator/crowbar_act(mob/living/user, obj/item/W) + . = ..() + if(default_deconstruction_crowbar(W, FALSE)) + return TRUE diff --git a/sandcode/code/game/machinery/camera/camera.dm b/sandcode/code/game/machinery/camera/camera.dm new file mode 100644 index 0000000000..4a92b667cd --- /dev/null +++ b/sandcode/code/game/machinery/camera/camera.dm @@ -0,0 +1,23 @@ +/obj/machinery/camera/examine(mob/user) + . += ..() + if(isEmpProof()) + . += "It has electromagnetic interference shielding installed." + else + . += "It can be shielded against electromagnetic interference with some plasma." + if(isXRay()) + . += "It has an X-ray photodiode installed." + else + . += "It can be upgraded with an X-ray photodiode with an analyzer." + if(isMotion()) + . += "It has a proximity sensor installed." + else + . += "It can be upgraded with a proximity sensor." + + if(!status) + . += "It's currently deactivated." + if(!panel_open && powered()) + . += "You'll need to open its maintenance panel with a screwdriver to turn it back on." + if(panel_open) + . += "Its maintenance panel is currently open." + if(!status && powered()) + . += "It can reactivated with wirecutters." diff --git a/sandcode/code/game/objects/items/circuitboards/machine_circuitboards.dm b/sandcode/code/game/objects/items/circuitboards/machine_circuitboards.dm index ab97d07d54..8b9c6c56c5 100644 --- a/sandcode/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/sandcode/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -41,7 +41,6 @@ /obj/item/stock_parts/manipulator = 5, /obj/item/stock_parts/scanning_module = 5, /obj/item/stack/ore/bluespace_crystal = 5) - needs_anchored = FALSE /obj/item/circuitboard/machine/telecomms/message_server name = "Message Server (Machine Board)" @@ -50,3 +49,11 @@ /obj/item/stock_parts/manipulator = 2, /obj/item/stack/cable_coil = 1, /obj/item/stock_parts/subspace/filter = 1) + +/obj/item/circuitboard/machine/aug_manipulator + name = "Augment Manipulator (Machine Board)" + build_path = /obj/machinery/aug_manipulator + +/obj/item/circuitboard/machine/pdapainter + name = "PDA painter (Machine Board)" + build_path = /obj/machinery/pdapainter diff --git a/sandcode/code/modules/research/designs/machine_designs.dm b/sandcode/code/modules/research/designs/machine_designs.dm index fa8cac12f7..15d25a96f3 100644 --- a/sandcode/code/modules/research/designs/machine_designs.dm +++ b/sandcode/code/modules/research/designs/machine_designs.dm @@ -74,3 +74,11 @@ build_path = /obj/item/circuitboard/machine/spaceship_navigation_beacon category = list("Misc. Machinery") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/pdapainter + name = "Machine Design (PDA painter)" + desc = "The circuit board for a pda painter" + id = "pdapaint" + build_path = /obj/item/circuitboard/machine/pdapainter + category = list("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE diff --git a/sandcode/code/modules/research/designs/medical_designs.dm b/sandcode/code/modules/research/designs/medical_designs.dm new file mode 100644 index 0000000000..ce7d0bce09 --- /dev/null +++ b/sandcode/code/modules/research/designs/medical_designs.dm @@ -0,0 +1,7 @@ +/datum/design/board/aug_manipulator + name = "Machine Design (Augment Manipulator)" + desc = "The circuit board for a augment manipulator" + id = "augmanip" + build_path = /obj/item/circuitboard/machine/aug_manipulator + category = list("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE diff --git a/sandcode/code/modules/research/techweb/nodes/computer_hud_nodes.dm b/sandcode/code/modules/research/techweb/nodes/computer_hud_nodes.dm index ba76a5398c..e5ff7779f5 100644 --- a/sandcode/code/modules/research/techweb/nodes/computer_hud_nodes.dm +++ b/sandcode/code/modules/research/techweb/nodes/computer_hud_nodes.dm @@ -1,3 +1,7 @@ /datum/techweb_node/telecomms/New() . = ..() design_ids += "message-server" + +/datum/techweb_node/comptech/New() + . = ..() + design_ids += "pdapaint" diff --git a/sandcode/code/modules/research/techweb/nodes/medical_nodes.dm b/sandcode/code/modules/research/techweb/nodes/medical_nodes.dm new file mode 100644 index 0000000000..be76cde414 --- /dev/null +++ b/sandcode/code/modules/research/techweb/nodes/medical_nodes.dm @@ -0,0 +1,3 @@ +/datum/techweb_node/surplus_limbs/New() + . = ..() + design_ids += "augmanip" diff --git a/tgstation.dme b/tgstation.dme index 7d30d694b0..28ed13cf6f 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3639,10 +3639,13 @@ #include "sandcode\code\datums\wires\firealarm.dm" #include "sandcode\code\game\area\ship_area.dm" #include "sandcode\code\game\area\areas\ruins\lavaland.dm" +#include "sandcode\code\game\machinery\aug_manipulator.dm" #include "sandcode\code\game\machinery\autodoc.dm" #include "sandcode\code\game\machinery\cryopod.dm" #include "sandcode\code\game\machinery\cryptominers.dm" +#include "sandcode\code\game\machinery\PDApainter.dm" #include "sandcode\code\game\machinery\posialert.dm" +#include "sandcode\code\game\machinery\camera\camera.dm" #include "sandcode\code\game\machinery\computer\arcade\tetris.dm" #include "sandcode\code\game\machinery\pipe\construction.dm" #include "sandcode\code\game\mecha\mecha_construction_paths.dm" @@ -3757,6 +3760,7 @@ #include "sandcode\code\modules\research\designs\biogenerator_designs.dm" #include "sandcode\code\modules\research\designs\machine_designs.dm" #include "sandcode\code\modules\research\designs\mechfabricator_designs.dm" +#include "sandcode\code\modules\research\designs\medical_designs.dm" #include "sandcode\code\modules\research\designs\misc_designs.dm" #include "sandcode\code\modules\research\designs\telecomms_designs.dm" #include "sandcode\code\modules\research\designs\tool_designs.dm" @@ -3766,6 +3770,7 @@ #include "sandcode\code\modules\research\techweb\all_nodes.dm" #include "sandcode\code\modules\research\techweb\bluespace_nodes.dm" #include "sandcode\code\modules\research\techweb\nodes\computer_hud_nodes.dm" +#include "sandcode\code\modules\research\techweb\nodes\medical_nodes.dm" #include "sandcode\code\modules\research\techweb\nodes\robotics_nodes.dm" #include "sandcode\code\modules\ruins\lavalandruin_code\doom.dm" #include "sandcode\code\modules\ruins\lavalandruin_code\kinggoat.dm"