mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-11 10:22:13 +00:00
Merge pull request #10416 from r4d6/RCD-Updates
Massive RCD Port & Updates
This commit is contained in:
@@ -111,3 +111,6 @@
|
|||||||
#define RCD_WINDOWGRILLE 4
|
#define RCD_WINDOWGRILLE 4
|
||||||
#define RCD_MACHINE 8
|
#define RCD_MACHINE 8
|
||||||
#define RCD_COMPUTER 16
|
#define RCD_COMPUTER 16
|
||||||
|
|
||||||
|
#define RCD_UPGRADE_FRAMES 1
|
||||||
|
#define RCD_UPGRADE_SIMPLE_CIRCUITS 2
|
||||||
@@ -1408,6 +1408,9 @@
|
|||||||
/obj/machinery/door/airlock/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
|
/obj/machinery/door/airlock/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
|
||||||
switch(the_rcd.mode)
|
switch(the_rcd.mode)
|
||||||
if(RCD_DECONSTRUCT)
|
if(RCD_DECONSTRUCT)
|
||||||
|
if(security_level != AIRLOCK_SECURITY_NONE && the_rcd.canRturf != TRUE)
|
||||||
|
to_chat(user, "<span class='notice'>[src]'s reinforcement needs to be removed first.</span>")
|
||||||
|
return FALSE
|
||||||
return list("mode" = RCD_DECONSTRUCT, "delay" = 50, "cost" = 32)
|
return list("mode" = RCD_DECONSTRUCT, "delay" = 50, "cost" = 32)
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
|
|||||||
@@ -450,6 +450,21 @@
|
|||||||
return
|
return
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
/obj/structure/firelock_frame/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
|
||||||
|
if((constructionStep == CONSTRUCTION_NOCIRCUIT) && (the_rcd.upgrade & RCD_UPGRADE_SIMPLE_CIRCUITS))
|
||||||
|
return list("mode" = RCD_UPGRADE_SIMPLE_CIRCUITS, "delay" = 20, "cost" = 1)
|
||||||
|
return FALSE
|
||||||
|
|
||||||
|
/obj/structure/firelock_frame/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode)
|
||||||
|
switch(passed_mode)
|
||||||
|
if(RCD_UPGRADE_SIMPLE_CIRCUITS)
|
||||||
|
user.visible_message("<span class='notice'>[user] fabricates a circuit and places it into [src].</span>", \
|
||||||
|
"<span class='notice'>You adapt a firelock circuit and slot it into the assembly.</span>")
|
||||||
|
constructionStep = CONSTRUCTION_GUTTED
|
||||||
|
update_icon()
|
||||||
|
return TRUE
|
||||||
|
return FALSE
|
||||||
|
|
||||||
/obj/structure/firelock_frame/heavy
|
/obj/structure/firelock_frame/heavy
|
||||||
name = "heavy firelock frame"
|
name = "heavy firelock frame"
|
||||||
reinforced = TRUE
|
reinforced = TRUE
|
||||||
|
|||||||
@@ -256,6 +256,21 @@
|
|||||||
return
|
return
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
/obj/machinery/firealarm/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
|
||||||
|
if((buildstage == 0) && (the_rcd.upgrade & RCD_UPGRADE_SIMPLE_CIRCUITS))
|
||||||
|
return list("mode" = RCD_UPGRADE_SIMPLE_CIRCUITS, "delay" = 20, "cost" = 1)
|
||||||
|
return FALSE
|
||||||
|
|
||||||
|
/obj/machinery/firealarm/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode)
|
||||||
|
switch(passed_mode)
|
||||||
|
if(RCD_UPGRADE_SIMPLE_CIRCUITS)
|
||||||
|
user.visible_message("<span class='notice'>[user] fabricates a circuit and places it into [src].</span>", \
|
||||||
|
"<span class='notice'>You adapt a fire alarm circuit and slot it into the assembly.</span>")
|
||||||
|
buildstage = 1
|
||||||
|
update_icon()
|
||||||
|
return TRUE
|
||||||
|
return FALSE
|
||||||
|
|
||||||
/obj/machinery/firealarm/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir)
|
/obj/machinery/firealarm/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(.) //damage received
|
if(.) //damage received
|
||||||
|
|||||||
@@ -453,3 +453,44 @@
|
|||||||
randomdir = FALSE
|
randomdir = FALSE
|
||||||
duration = 30
|
duration = 30
|
||||||
pixel_x = -24
|
pixel_x = -24
|
||||||
|
|
||||||
|
/obj/effect/constructing_effect
|
||||||
|
icon = 'icons/effects/effects_rcd.dmi'
|
||||||
|
icon_state = ""
|
||||||
|
layer = ABOVE_ALL_MOB_LAYER
|
||||||
|
anchored = TRUE
|
||||||
|
var/status = 0
|
||||||
|
var/delay = 0
|
||||||
|
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||||
|
|
||||||
|
/obj/effect/constructing_effect/Initialize(mapload, rcd_delay, rcd_status)
|
||||||
|
. = ..()
|
||||||
|
status = rcd_status
|
||||||
|
delay = rcd_delay
|
||||||
|
if (status == RCD_DECONSTRUCT)
|
||||||
|
addtimer(CALLBACK(src, /atom/.proc/update_icon), 11)
|
||||||
|
delay -= 11
|
||||||
|
icon_state = "rcd_end_reverse"
|
||||||
|
else
|
||||||
|
update_icon()
|
||||||
|
|
||||||
|
/obj/effect/constructing_effect/update_icon()
|
||||||
|
icon_state = "rcd"
|
||||||
|
if (delay < 10)
|
||||||
|
icon_state += "_shortest"
|
||||||
|
else if (delay < 20)
|
||||||
|
icon_state += "_shorter"
|
||||||
|
else if (delay < 37)
|
||||||
|
icon_state += "_short"
|
||||||
|
if (status == RCD_DECONSTRUCT)
|
||||||
|
icon_state += "_reverse"
|
||||||
|
|
||||||
|
/obj/effect/constructing_effect/proc/end_animation()
|
||||||
|
if (status == RCD_DECONSTRUCT)
|
||||||
|
qdel(src)
|
||||||
|
else
|
||||||
|
icon_state = "rcd_end"
|
||||||
|
addtimer(CALLBACK(src, .proc/end), 15)
|
||||||
|
|
||||||
|
/obj/effect/constructing_effect/proc/end()
|
||||||
|
qdel(src)
|
||||||
@@ -47,7 +47,11 @@ RLD
|
|||||||
|
|
||||||
/obj/item/construction/examine(mob/user)
|
/obj/item/construction/examine(mob/user)
|
||||||
. = ..()
|
. = ..()
|
||||||
. += "\A [src]. It currently holds [matter]/[max_matter] matter-units."
|
. += "It currently holds [matter]/[max_matter] matter-units."
|
||||||
|
if(upgrade & RCD_UPGRADE_FRAMES)
|
||||||
|
. += "It contains the design for machine frames, computer frames and deconstruction."
|
||||||
|
if(upgrade & RCD_UPGRADE_SIMPLE_CIRCUITS)
|
||||||
|
. += "It contains the design for firelock, air alarm, fire alarm, apc circuits and crap power cells."
|
||||||
|
|
||||||
/obj/item/construction/Destroy()
|
/obj/item/construction/Destroy()
|
||||||
QDEL_NULL(spark_system)
|
QDEL_NULL(spark_system)
|
||||||
@@ -85,7 +89,9 @@ RLD
|
|||||||
to_chat(user, "<span class='notice'>[src] now holds [matter]/[max_matter] matter-units.</span>")
|
to_chat(user, "<span class='notice'>[src] now holds [matter]/[max_matter] matter-units.</span>")
|
||||||
else if(istype(W, /obj/item/rcd_upgrade))
|
else if(istype(W, /obj/item/rcd_upgrade))
|
||||||
to_chat(user, "<span class='notice'>You upgrade the RCD with the [W]!</span>")
|
to_chat(user, "<span class='notice'>You upgrade the RCD with the [W]!</span>")
|
||||||
upgrade = TRUE
|
var/obj/item/rcd_upgrade/rcd_up = W
|
||||||
|
if(!(upgrade & rcd_up.upgrade))
|
||||||
|
upgrade |= rcd_up.upgrade
|
||||||
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
|
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
|
||||||
qdel(W)
|
qdel(W)
|
||||||
else
|
else
|
||||||
@@ -116,10 +122,10 @@ RLD
|
|||||||
if(matter < amount)
|
if(matter < amount)
|
||||||
if(user)
|
if(user)
|
||||||
to_chat(user, no_ammo_message)
|
to_chat(user, no_ammo_message)
|
||||||
return 0
|
return FALSE
|
||||||
matter -= amount
|
matter -= amount
|
||||||
update_icon()
|
update_icon()
|
||||||
return 1
|
return TRUE
|
||||||
|
|
||||||
/obj/item/construction/proc/checkResource(amount, mob/user)
|
/obj/item/construction/proc/checkResource(amount, mob/user)
|
||||||
. = matter >= amount
|
. = matter >= amount
|
||||||
@@ -439,18 +445,22 @@ RLD
|
|||||||
var/list/rcd_results = A.rcd_vals(user, src)
|
var/list/rcd_results = A.rcd_vals(user, src)
|
||||||
if(!rcd_results)
|
if(!rcd_results)
|
||||||
return FALSE
|
return FALSE
|
||||||
|
var/delay = rcd_results["delay"] * delay_mod
|
||||||
|
var/obj/effect/constructing_effect/rcd_effect = new(get_turf(A), delay, src.mode)
|
||||||
var/turf/the_turf = get_turf(A)
|
var/turf/the_turf = get_turf(A)
|
||||||
var/turf_coords = "[COORD(the_turf)]"
|
var/turf_coords = "[COORD(the_turf)]"
|
||||||
investigate_log("[user] is attempting to use [src] on [A] (loc [turf_coords] at [the_turf]) with cost [rcd_results["cost"]], delay [rcd_results["delay"]], mode [rcd_results["mode"]].", INVESTIGATE_RCD)
|
investigate_log("[user] is attempting to use [src] on [A] (loc [turf_coords] at [the_turf]) with cost [rcd_results["cost"]], delay [rcd_results["delay"]], mode [rcd_results["mode"]].", INVESTIGATE_RCD)
|
||||||
if(do_after(user, rcd_results["delay"] * delay_mod, target = A))
|
if(do_after(user, delay, target = A))
|
||||||
if(checkResource(rcd_results["cost"], user))
|
if(checkResource(rcd_results["cost"], user))
|
||||||
var/atom/cached = A
|
var/atom/cached = A
|
||||||
if(A.rcd_act(user, src, rcd_results["mode"]))
|
if(A.rcd_act(user, src, rcd_results["mode"]))
|
||||||
|
rcd_effect.end_animation()
|
||||||
useResource(rcd_results["cost"], user)
|
useResource(rcd_results["cost"], user)
|
||||||
activate()
|
activate()
|
||||||
investigate_log("[user] used [src] on [cached] (loc [turf_coords] at [the_turf]) with cost [rcd_results["cost"]], delay [rcd_results["delay"]], mode [rcd_results["mode"]].", INVESTIGATE_RCD)
|
investigate_log("[user] used [src] on [cached] (loc [turf_coords] at [the_turf]) with cost [rcd_results["cost"]], delay [rcd_results["delay"]], mode [rcd_results["mode"]].", INVESTIGATE_RCD)
|
||||||
playsound(src, 'sound/machines/click.ogg', 50, 1)
|
playsound(src, 'sound/machines/click.ogg', 50, 1)
|
||||||
return TRUE
|
return TRUE
|
||||||
|
qdel(rcd_effect)
|
||||||
|
|
||||||
/obj/item/construction/rcd/Initialize()
|
/obj/item/construction/rcd/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
@@ -467,7 +477,7 @@ RLD
|
|||||||
"Grilles & Windows" = image(icon = 'icons/mob/radial.dmi', icon_state = "grillewindow"),
|
"Grilles & Windows" = image(icon = 'icons/mob/radial.dmi', icon_state = "grillewindow"),
|
||||||
"Floors & Walls" = image(icon = 'icons/mob/radial.dmi', icon_state = "wallfloor")
|
"Floors & Walls" = image(icon = 'icons/mob/radial.dmi', icon_state = "wallfloor")
|
||||||
)
|
)
|
||||||
if(upgrade)
|
if(upgrade & RCD_UPGRADE_FRAMES)
|
||||||
choices += list(
|
choices += list(
|
||||||
"Deconstruct" = image(icon= 'icons/mob/radial.dmi', icon_state = "delete"),
|
"Deconstruct" = image(icon= 'icons/mob/radial.dmi', icon_state = "delete"),
|
||||||
"Machine Frames" = image(icon = 'icons/mob/radial.dmi', icon_state = "machine"),
|
"Machine Frames" = image(icon = 'icons/mob/radial.dmi', icon_state = "machine"),
|
||||||
@@ -593,6 +603,7 @@ RLD
|
|||||||
energyfactor = 66
|
energyfactor = 66
|
||||||
|
|
||||||
/obj/item/construction/rcd/loaded
|
/obj/item/construction/rcd/loaded
|
||||||
|
materials = list(MAT_METAL=48000, MAT_GLASS=32000)
|
||||||
matter = 160
|
matter = 160
|
||||||
|
|
||||||
/obj/item/construction/rcd/loaded/upgraded
|
/obj/item/construction/rcd/loaded/upgraded
|
||||||
@@ -825,9 +836,18 @@ RLD
|
|||||||
|
|
||||||
/obj/item/rcd_upgrade
|
/obj/item/rcd_upgrade
|
||||||
name = "RCD advanced design disk"
|
name = "RCD advanced design disk"
|
||||||
desc = "It contains the design for machine frames, computer frames, and deconstruction."
|
desc = "It seems to be empty."
|
||||||
icon = 'icons/obj/module.dmi'
|
icon = 'icons/obj/module.dmi'
|
||||||
icon_state = "datadisk3"
|
icon_state = "datadisk3"
|
||||||
|
var/upgrade
|
||||||
|
|
||||||
|
/obj/item/rcd_upgrade/frames
|
||||||
|
desc = "It contains the design for machine frames, computer frames and deconstruction."
|
||||||
|
upgrade = RCD_UPGRADE_FRAMES
|
||||||
|
|
||||||
|
/obj/item/rcd_upgrade/simple_circuits
|
||||||
|
desc = "It contains the design for firelock, air alarm, fire alarm, apc circuits and crap power cells."
|
||||||
|
upgrade = RCD_UPGRADE_SIMPLE_CIRCUITS
|
||||||
|
|
||||||
#undef GLOW_MODE
|
#undef GLOW_MODE
|
||||||
#undef LIGHT_MODE
|
#undef LIGHT_MODE
|
||||||
|
|||||||
@@ -263,7 +263,7 @@
|
|||||||
A.autoclose = TRUE
|
A.autoclose = TRUE
|
||||||
return TRUE
|
return TRUE
|
||||||
if(RCD_DECONSTRUCT)
|
if(RCD_DECONSTRUCT)
|
||||||
if(ScrapeAway(flags = CHANGETURF_INHERIT_AIR) == src)
|
if(!ScrapeAway(flags = CHANGETURF_INHERIT_AIR))
|
||||||
return FALSE
|
return FALSE
|
||||||
to_chat(user, "<span class='notice'>You deconstruct [src].</span>")
|
to_chat(user, "<span class='notice'>You deconstruct [src].</span>")
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|||||||
@@ -822,6 +822,21 @@
|
|||||||
|
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
/obj/machinery/airalarm/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
|
||||||
|
if((buildstage == 0) && (the_rcd.upgrade & RCD_UPGRADE_SIMPLE_CIRCUITS))
|
||||||
|
return list("mode" = RCD_UPGRADE_SIMPLE_CIRCUITS, "delay" = 20, "cost" = 1)
|
||||||
|
return FALSE
|
||||||
|
|
||||||
|
/obj/machinery/airalarm/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode)
|
||||||
|
switch(passed_mode)
|
||||||
|
if(RCD_UPGRADE_SIMPLE_CIRCUITS)
|
||||||
|
user.visible_message("<span class='notice'>[user] fabricates a circuit and places it into [src].</span>", \
|
||||||
|
"<span class='notice'>You adapt an air alarm circuit and slot it into the assembly.</span>")
|
||||||
|
buildstage = 1
|
||||||
|
update_icon()
|
||||||
|
return TRUE
|
||||||
|
return FALSE
|
||||||
|
|
||||||
/obj/machinery/airalarm/AltClick(mob/user)
|
/obj/machinery/airalarm/AltClick(mob/user)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(!user.canUseTopic(src, !issilicon(user)) || !isturf(loc))
|
if(!user.canUseTopic(src, !issilicon(user)) || !isturf(loc))
|
||||||
|
|||||||
@@ -701,6 +701,52 @@
|
|||||||
else
|
else
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
/obj/machinery/power/apc/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
|
||||||
|
if(the_rcd.upgrade & RCD_UPGRADE_SIMPLE_CIRCUITS)
|
||||||
|
if(!has_electronics)
|
||||||
|
if(stat & BROKEN)
|
||||||
|
to_chat(user, "<span class='warning'>[src]'s frame is too damaged to support a circuit.</span>")
|
||||||
|
return FALSE
|
||||||
|
return list("mode" = RCD_UPGRADE_SIMPLE_CIRCUITS, "delay" = 20, "cost" = 1)
|
||||||
|
else if(!cell)
|
||||||
|
if(stat & MAINT)
|
||||||
|
to_chat(user, "<span class='warning'>There's no connector for a power cell.</span>")
|
||||||
|
return FALSE
|
||||||
|
return list("mode" = RCD_UPGRADE_SIMPLE_CIRCUITS, "delay" = 50, "cost" = 10) //16 for a wall
|
||||||
|
else
|
||||||
|
to_chat(user, "<span class='warning'>[src] has both electronics and a cell.</span>")
|
||||||
|
return FALSE
|
||||||
|
return FALSE
|
||||||
|
|
||||||
|
/obj/machinery/power/apc/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode)
|
||||||
|
switch(passed_mode)
|
||||||
|
if(RCD_UPGRADE_SIMPLE_CIRCUITS)
|
||||||
|
if(!has_electronics)
|
||||||
|
if(stat & BROKEN)
|
||||||
|
to_chat(user, "<span class='warning'>[src]'s frame is too damaged to support a circuit.</span>")
|
||||||
|
return
|
||||||
|
user.visible_message("<span class='notice'>[user] fabricates a circuit and places it into [src].</span>", \
|
||||||
|
"<span class='notice'>You adapt a power control board and click it into place in [src]'s guts.</span>")
|
||||||
|
has_electronics = TRUE
|
||||||
|
locked = TRUE
|
||||||
|
return TRUE
|
||||||
|
else if(!cell)
|
||||||
|
if(stat & MAINT)
|
||||||
|
to_chat(user, "<span class='warning'>There's no connector for a power cell.</span>")
|
||||||
|
return FALSE
|
||||||
|
var/obj/item/stock_parts/cell/crap/empty/C = new(src)
|
||||||
|
C.forceMove(src)
|
||||||
|
cell = C
|
||||||
|
chargecount = 0
|
||||||
|
user.visible_message("<span class='notice'>[user] fabricates a weak power cell and places it into [src].</span>", \
|
||||||
|
"<span class='warning'>Your [the_rcd.name] whirrs with strain as you create a weak power cell and place it into [src]!</span>")
|
||||||
|
update_icon()
|
||||||
|
return TRUE
|
||||||
|
else
|
||||||
|
to_chat(user, "<span class='warning'>[src] has both electronics and a cell.</span>")
|
||||||
|
return FALSE
|
||||||
|
return FALSE
|
||||||
|
|
||||||
/obj/machinery/power/apc/AltClick(mob/user)
|
/obj/machinery/power/apc/AltClick(mob/user)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(!user.canUseTopic(src, !issilicon(user)) || !isturf(loc))
|
if(!user.canUseTopic(src, !issilicon(user)) || !isturf(loc))
|
||||||
|
|||||||
@@ -389,13 +389,23 @@
|
|||||||
////////////Tools//////////////
|
////////////Tools//////////////
|
||||||
///////////////////////////////
|
///////////////////////////////
|
||||||
|
|
||||||
/datum/design/rcd_upgrade
|
/datum/design/rcd_upgrade/frames
|
||||||
name = "Advanced RCD designs upgrade"
|
name = "RCD frames designs upgrade"
|
||||||
desc = "Adds the computer frame and machine frame to the RCD."
|
desc = "Adds the computer frame and machine frame to the RCD."
|
||||||
id = "rcd_upgrade"
|
id = "rcd_upgrade_frames"
|
||||||
build_type = PROTOLATHE
|
build_type = PROTOLATHE
|
||||||
materials = list(MAT_METAL = 5000, MAT_GLASS = 2500, MAT_SILVER = 1500, MAT_TITANIUM = 2000)
|
materials = list(MAT_METAL = 5000, MAT_GLASS = 2500, MAT_SILVER = 1500, MAT_TITANIUM = 2000)
|
||||||
build_path = /obj/item/rcd_upgrade
|
build_path = /obj/item/rcd_upgrade/frames
|
||||||
|
category = list("Equipment")
|
||||||
|
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||||
|
|
||||||
|
/datum/design/rcd_upgrade/simple_circuits
|
||||||
|
name = "RCD simple circuits designs upgrade"
|
||||||
|
desc = "Adds the simple circuits to the RCD."
|
||||||
|
id = "rcd_upgrade_simple_circuits"
|
||||||
|
build_type = PROTOLATHE
|
||||||
|
materials = list(MAT_METAL = 5000, MAT_GLASS = 2500, MAT_SILVER = 1500, MAT_TITANIUM = 2000)
|
||||||
|
build_path = /obj/item/rcd_upgrade/simple_circuits
|
||||||
category = list("Equipment")
|
category = list("Equipment")
|
||||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||||
|
|
||||||
@@ -429,6 +439,26 @@
|
|||||||
category = list("Equipment")
|
category = list("Equipment")
|
||||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||||
|
|
||||||
|
/datum/design/rcd_loaded
|
||||||
|
name = "Rapid Construction Device"
|
||||||
|
desc = "A tool that can construct and deconstruct walls, airlocks and floors on the fly."
|
||||||
|
id = "rcd_loaded"
|
||||||
|
build_type = PROTOLATHE
|
||||||
|
materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT, MAT_GLASS = MINERAL_MATERIAL_AMOUNT) // costs more than what it did in the autolathe, this one comes loaded.
|
||||||
|
build_path = /obj/item/construction/rcd/loaded
|
||||||
|
category = list("Equipment")
|
||||||
|
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||||
|
|
||||||
|
/datum/design/rpd
|
||||||
|
name = "Rapid Pipe Dispenser"
|
||||||
|
desc = "A tool that can construct and deconstruct pipes on the fly."
|
||||||
|
id = "rpd"
|
||||||
|
build_type = PROTOLATHE
|
||||||
|
materials = list(MAT_METAL = 75000, MAT_GLASS = 37500)
|
||||||
|
build_path = /obj/item/pipe_dispenser
|
||||||
|
category = list("Equipment")
|
||||||
|
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||||
|
|
||||||
/datum/design/alienwrench
|
/datum/design/alienwrench
|
||||||
name = "Alien Wrench"
|
name = "Alien Wrench"
|
||||||
desc = "An advanced wrench obtained through Abductor technology."
|
desc = "An advanced wrench obtained through Abductor technology."
|
||||||
|
|||||||
@@ -200,7 +200,7 @@
|
|||||||
display_name = "Advanced Engineering"
|
display_name = "Advanced Engineering"
|
||||||
description = "Pushing the boundaries of physics, one chainsaw-fist at a time."
|
description = "Pushing the boundaries of physics, one chainsaw-fist at a time."
|
||||||
prereq_ids = list("engineering", "emp_basic")
|
prereq_ids = list("engineering", "emp_basic")
|
||||||
design_ids = list("engine_goggles", "magboots", "forcefield_projector", "weldingmask", "tray_goggles_prescription", "engine_goggles_prescription", "mesons_prescription", "rcd_upgrade")
|
design_ids = list("engine_goggles", "magboots", "forcefield_projector", "weldingmask" , "rcd_loaded", "rpd", "tray_goggles_prescription", "engine_goggles_prescription", "mesons_prescription", "rcd_upgrade_frames", "rcd_upgrade_simple_circuits")
|
||||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 4000)
|
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 4000)
|
||||||
export_price = 5000
|
export_price = 5000
|
||||||
|
|
||||||
|
|||||||
BIN
icons/effects/effects_rcd.dmi
Normal file
BIN
icons/effects/effects_rcd.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
Reference in New Issue
Block a user