From d3e018720cbd3e4a22d22241f3e561e681d8ba62 Mon Sep 17 00:00:00 2001 From: Darius <5933805+LeDrascol@users.noreply.github.com> Date: Sat, 24 Dec 2022 15:57:11 -0500 Subject: [PATCH] Port the Bluespace Light Replacer - Ports the Bluespace Light Replacer from TG -- Added to Applied Bluespace Research instead of Advanced Sanitation Technology - Makes the basic Light Replacer a default tech node --- .../objects/items/devices/lightreplacer.dm | 17 ++++++++++++++++- code/modules/research/designs/misc_designs.dm | 10 ++++++++++ .../modules/research/techweb/_techweb_node.dm | 2 +- .../research/techweb/nodes/bluespace_nodes.dm | 2 +- icons/obj/janitor.dmi | Bin 28064 -> 29389 bytes 5 files changed, 28 insertions(+), 3 deletions(-) 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 50975dc828bb4423fef6e1f4323ebfbbf29b65cf..74ec51176845203b394b5069330867a3f79e02bb 100644 GIT binary patch delta 9329 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 delta 8011 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 V6F0k+V1Jo|R21JR)X7