mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Made resleeving machines constructable by adding circuits and designs.
This commit is contained in:
@@ -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"
|
||||
|
||||
41
code/modules/resleeving/circuitboards.dm
Normal file
41
code/modules/resleeving/circuitboards.dm
Normal 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)
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user