Made resleeving machines constructable by adding circuits and designs.

This commit is contained in:
Leshana
2017-02-19 14:18:58 -05:00
parent b9d84565f1
commit 6262973afe
6 changed files with 126 additions and 20 deletions

View File

@@ -36,4 +36,34 @@
req_tech = list(TECH_MAGNET = 4, TECH_COMBAT = 3, TECH_BIO = 3)
materials = list(DEFAULT_WALL_MATERIAL = 1000, "glass" = 1000)
build_path = /obj/item/clothing/glasses/sunglasses/omnihud
sort_string = "GAAFB"
sort_string = "GAAFB"
// Resleeving Circuitboards
/datum/design/circuit/comm_server
name = "grower pod"
id = "transhuman_clonepod"
req_tech = list(TECH_DATA = 3, TECH_BIO = 3)
build_path = /obj/item/weapon/circuitboard/transhuman_clonepod
sort_string = "HAADA"
/datum/design/circuit/transhuman_synthprinter
name = "SynthFab 3000"
id = "transhuman_synthprinter"
req_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3)
build_path = /obj/item/weapon/circuitboard/transhuman_synthprinter
sort_string = "HAADB"
/datum/design/circuit/transhuman_resleever
name = "resleeving pod"
id = "transhuman_resleever"
req_tech = list(TECH_ENGINEERING = 4, TECH_BIO = 4)
build_path = /obj/item/weapon/circuitboard/transhuman_resleever
sort_string = "HAADC"
/datum/design/circuit/resleeving_control
name = "resleeving control console"
id = "resleeving_control"
req_tech = list(TECH_DATA = 5)
build_path = /obj/item/weapon/circuitboard/resleeving_control
sort_string = "HAADE"

View File

@@ -0,0 +1,41 @@
#ifndef T_BOARD
#error T_BOARD macro is not defined but we need it!
#endif
/obj/item/weapon/circuitboard/transhuman_clonepod
name = T_BOARD("grower pod")
board_type = new /datum/frame/frame_types/machine
build_path = /obj/machinery/clonepod/transhuman
origin_tech = list(TECH_DATA = 3, TECH_BIO = 3)
req_components = list(
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/scanning_module = 2,
/obj/item/weapon/stock_parts/manipulator = 2,
/obj/item/weapon/stock_parts/console_screen = 1)
/obj/item/weapon/circuitboard/transhuman_synthprinter
name = T_BOARD("SynthFab 3000")
board_type = new /datum/frame/frame_types/machine
build_path = /obj/machinery/transhuman/synthprinter
origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3)
req_components = list(
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/matter_bin = 1,
/obj/item/weapon/stock_parts/scanning_module = 1,
/obj/item/weapon/stock_parts/manipulator = 2)
/obj/item/weapon/circuitboard/transhuman_resleever
name = T_BOARD("resleeving pod")
board_type = new /datum/frame/frame_types/machine
build_path = /obj/machinery/transhuman/resleever
origin_tech = list(TECH_ENGINEERING = 4, TECH_BIO = 4)
req_components = list(
/obj/item/stack/cable_coil = 2,
/obj/item/weapon/stock_parts/scanning_module = 2,
/obj/item/weapon/stock_parts/manipulator = 2,
/obj/item/weapon/stock_parts/console_screen = 1)
/obj/item/weapon/circuitboard/resleeving_control
name = T_BOARD("resleeving control console")
build_path = /obj/machinery/computer/transhuman/resleeving
origin_tech = list(TECH_DATA = 5)

View File

@@ -4,7 +4,7 @@
icon_keyboard = "med_key"
icon_screen = "dna"
light_color = "#315ab4"
circuit = /obj/item/weapon/circuitboard/cloning
circuit = /obj/item/weapon/circuitboard/resleeving_control
req_access = list(access_heads) //Only used for record deletion right now.
var/list/pods = list() //Linked grower pods.
var/list/spods = list()

View File

@@ -1,9 +0,0 @@
////////////////////////////////
//// Consoles for resleeving tech
//// for printing bodies and 'decanting'
////////////////////////////////
//TODO Tweaked cloning console
//TODO Subtype for synths
//TODO Mind-backup management console

View File

@@ -6,6 +6,7 @@
/////// Grower Pod ///////
/obj/machinery/clonepod/transhuman
name = "grower pod"
circuit = /obj/item/weapon/circuitboard/transhuman_clonepod
/obj/machinery/clonepod/transhuman/growclone(var/datum/transhuman/body_record/current_project)
var/datum/dna2/record/R = current_project.mydna
@@ -143,6 +144,7 @@
desc = "A rapid fabricator for synthetic bodies."
icon = 'icons/obj/machines/synthpod.dmi'
icon_state = "pod_0"
circuit = /obj/item/weapon/circuitboard/transhuman_synthprinter
density = 1
anchored = 1
@@ -154,6 +156,17 @@
var/datum/transhuman/body_record/current_project
var/broken = 0
/obj/machinery/transhuman/synthprinter/New()
..()
component_parts = list()
component_parts += new /obj/item/weapon/stock_parts/matter_bin(src)
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
component_parts += new /obj/item/stack/cable_coil(src, 2)
RefreshParts()
update_icon()
/obj/machinery/transhuman/synthprinter/process()
if(stat & NOPOWER)
if(busy)
@@ -248,6 +261,16 @@
user << "Current print cycle is [busy]% complete."
return
/obj/machinery/transhuman/synthprinter/attackby(obj/item/W as obj, mob/user as mob)
src.add_fingerprint(user)
if(default_deconstruction_screwdriver(user, W))
return
if(default_deconstruction_crowbar(user, W))
return
if(default_part_replacement(user, W))
return
return ..()
/obj/machinery/transhuman/synthprinter/update_icon()
..()
icon_state = "pod_0"
@@ -262,6 +285,7 @@
desc = "Used to combine mind and body into one unit."
icon = 'icons/obj/machines/implantchair.dmi'
icon_state = "implantchair"
circuit = /obj/item/weapon/circuitboard/transhuman_resleever
density = 1
opacity = 0
anchored = 1
@@ -269,6 +293,18 @@
var/mob/living/carbon/human/occupant = null
var/connected = null
/obj/machinery/transhuman/resleever/New()
..()
component_parts = list()
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
component_parts += new /obj/item/weapon/stock_parts/console_screen(src)
component_parts += new /obj/item/stack/cable_coil(src, 2)
RefreshParts()
update_icon()
/obj/machinery/transhuman/resleever/attack_hand(mob/user as mob)
user.set_machine(src)
var/health_text = ""
@@ -293,19 +329,27 @@
user << browse(dat, "window=resleever")
onclose(user, "resleever")
/obj/machinery/transhuman/resleever/attackby(var/obj/item/weapon/G as obj, var/mob/user as mob)
if(istype(G, /obj/item/weapon/grab))
if(!ismob(G:affecting))
/obj/machinery/transhuman/resleever/attackby(obj/item/W as obj, mob/user as mob)
src.add_fingerprint(user)
if(default_deconstruction_screwdriver(user, W))
return
if(default_deconstruction_crowbar(user, W))
return
if(default_part_replacement(user, W))
return
if(istype(W, /obj/item/weapon/grab))
var/obj/item/weapon/grab/G = W
if(!ismob(G.affecting))
return
for(var/mob/living/carbon/slime/M in range(1,G:affecting))
if(M.Victim == G:affecting)
usr << "[G:affecting:name] will not fit into the [src.name] because they have a slime latched onto their head."
for(var/mob/living/carbon/slime/M in range(1, G.affecting))
if(M.Victim == G.affecting)
usr << "[G.affecting:name] will not fit into the [src.name] because they have a slime latched onto their head."
return
var/mob/M = G:affecting
var/mob/M = G.affecting
if(put_mob(M))
qdel(G)
src.updateUsrDialog()
return
return ..()
/obj/machinery/transhuman/resleever/proc/putmind(var/datum/transhuman/mind_record/MR)
if(!occupant || !istype(occupant) || occupant.stat >= DEAD)

View File

@@ -2092,8 +2092,8 @@
#include "code\modules\research\rdmachines.dm"
#include "code\modules\research\research.dm"
#include "code\modules\research\server.dm"
#include "code\modules\resleeving\circuitboards.dm"
#include "code\modules\resleeving\computers.dm"
#include "code\modules\resleeving\consoles.dm"
#include "code\modules\resleeving\general.dm"
#include "code\modules\resleeving\infocore.dm"
#include "code\modules\resleeving\machines.dm"