diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index 9ab6115634..97c61caffd 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -67,6 +67,9 @@ // when we get this many shards, we get a free bulb. var/shards_required = 4 + // whether it is "bluespace powered" (can be used at a range) + var/bluespace_toggle = FALSE + /obj/item/lightreplacer/New() uses = max_uses / 2 failmsg = "The [name]'s refill light blinks red." @@ -242,7 +245,7 @@ /obj/item/lightreplacer/afterattack(atom/T, mob/U, proximity) . = ..() - if(!proximity) + if(!proximity && !bluespace_toggle) return if(!isturf(T)) return @@ -253,6 +256,9 @@ break used = TRUE if(istype(A, /obj/machinery/light)) + if(!proximity && bluespace_toggle) + U.Beam(A, icon_state = "rped_upgrade", time = 1 SECONDS) + playsound(src, 'sound/items/pshoom.ogg', 40, 1) ReplaceLight(A, U) if(!used) @@ -266,6 +272,15 @@ /obj/item/lightreplacer/cyborg/janicart_insert(mob/user, obj/structure/janitorialcart/J) return +/obj/item/lightreplacer/blue + name = "bluespace light replacer" + desc = "A modified light replacer that zaps lights into place. Refill with broken or working lightbulbs, or sheets of glass." + icon_state = "lightreplacer_blue" + bluespace_toggle = TRUE + +/obj/item/lightreplacer/blue/emag_act() + return // balancing against longrange explosions + #undef LIGHT_OK #undef LIGHT_EMPTY #undef LIGHT_BROKEN diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index 630a3629cf..a2471ce553 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -407,6 +407,16 @@ category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_ENGINEERING +/datum/design/light_replacer_blue + name = "Bluespace Light Replacer" + desc = "A device to automatically replace lights at a distance. Refill with working light bulbs." + id = "light_replacer_blue" + build_type = PROTOLATHE + materials = list(/datum/material/iron = 1500, /datum/material/silver = 150, /datum/material/glass = 3000, /datum/material/bluespace = 300) + build_path = /obj/item/lightreplacer/blue + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_ENGINEERING + /datum/design/normtrash name = "Trashbag" desc = "It's a bag for trash, you put garbage in it." diff --git a/code/modules/research/techweb/_techweb_node.dm b/code/modules/research/techweb/_techweb_node.dm index 92eaa2bd41..8ea4b95d03 100644 --- a/code/modules/research/techweb/_techweb_node.dm +++ b/code/modules/research/techweb/_techweb_node.dm @@ -106,4 +106,4 @@ "destructive_analyzer", "circuit_imprinter", "experimentor", "rdconsole", "bepis", "design_disk", "tech_disk", "rdserver", "rdservercontrol", "mechfab", "paystand", "space_heater", "beaker", "large_beaker", "xlarge_beaker", "bucket", "hypovial", "large_hypovial", "syringe", "pillbottle", "sec_shellclip", "sec_beanbag", "sec_rshot", "sec_bshot", "sec_slug", "sec_islug", "sec_dart", "sec_38", "sec_38lethal", - "rglass","plasteel","plastitanium","plasmaglass","plasmareinforcedglass","titaniumglass","plastitaniumglass", "salestagger") + "rglass","plasteel","plastitanium","plasmaglass","plasmareinforcedglass","titaniumglass","plastitaniumglass", "salestagger", "light_replacer") diff --git a/code/modules/research/techweb/nodes/bluespace_nodes.dm b/code/modules/research/techweb/nodes/bluespace_nodes.dm index 802f7854b1..28cda2cfa3 100644 --- a/code/modules/research/techweb/nodes/bluespace_nodes.dm +++ b/code/modules/research/techweb/nodes/bluespace_nodes.dm @@ -13,7 +13,7 @@ display_name = "Applied Bluespace Research" description = "Using bluespace to make things faster and better." prereq_ids = list("bluespace_basic", "engineering") - design_ids = list("bs_rped","biobag_holding","minerbag_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "bluespacesmartdart", "xenobio_slimebasic", "bluespace_tray") + design_ids = list("bs_rped","biobag_holding","minerbag_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "bluespacesmartdart", "xenobio_slimebasic", "bluespace_tray", "light_replacer_blue") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) /datum/techweb_node/adv_bluespace diff --git a/icons/obj/janitor.dmi b/icons/obj/janitor.dmi index 50975dc828..74ec511768 100644 Binary files a/icons/obj/janitor.dmi and b/icons/obj/janitor.dmi differ