diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index 0fcf8ad9c19..07c2bb70bff 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -39,10 +39,8 @@ /obj/item/lightreplacer - name = "light replacer" desc = "A device to automatically replace lights. Refill with broken or working light bulbs, or sheets of glass." - icon = 'icons/obj/janitor.dmi' icon_state = "lightreplacer0" item_state = "electronic" @@ -52,20 +50,19 @@ slot_flags = SLOT_BELT origin_tech = "magnets=3;engineering=4" force = 8 - var/max_uses = 20 var/uses = 10 - // How much to increase per each glass? + /// How much to increase per each glass? var/increment = 5 - // How much to take from the glass? + /// How much to take from the glass? var/decrement = 1 var/charge = 1 - - // Eating used bulbs gives us bulb shards + /// Eating used bulbs gives us bulb shards var/bulb_shards = 0 - // when we get this many shards, we get a free bulb. + /// when we get this many shards, we get a free bulb. var/shards_required = 4 - + /// It can replace lights at a distance? + var/bluespace_toggle = FALSE /obj/item/lightreplacer/examine(mob/user) . = ..() @@ -232,10 +229,12 @@ /obj/item/lightreplacer/afterattack(atom/T, mob/U, proximity) . = ..() - if(!proximity) + if(!proximity && !bluespace_toggle) return if(!isturf(T)) return + if(get_dist(src, T) >= (U.client.view + 2)) // To prevent people from using it over cameras + return var/used = FALSE for(var/atom/A in T) @@ -243,6 +242,9 @@ break used = TRUE if(istype(A, /obj/machinery/light)) + if(!proximity) // only beams if at a distance + U.Beam(A, icon_state = "rped_upgrade", icon = 'icons/effects/effects.dmi', time = 5) + playsound(src, 'sound/items/pshoom.ogg', 40, 1) ReplaceLight(A, U) if(!used) @@ -259,6 +261,15 @@ for(var/I in 1 to coeff) Charge() +/obj/item/lightreplacer/bluespace + name = "bluespace light replacer" + desc = "A modified light replacer that zaps lights into place. Refill with broken or working light bulbs, or sheets of glass." + icon_state = "lightreplacer_blue0" + bluespace_toggle = TRUE + +/obj/item/lightreplacer/bluespace/emag_act() + return // long range explosions are stupid + #undef LIGHT_OK #undef LIGHT_EMPTY #undef LIGHT_BROKEN diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index e7603ca9432..86a73375b07 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -422,6 +422,7 @@ new /obj/item/ammo_box/magazine/m45(src) new /obj/item/ammo_box/magazine/m45(src) update_icon() + /obj/item/storage/belt/janitor name = "janibelt" desc = "A belt used to hold most janitorial supplies." @@ -443,9 +444,9 @@ ) /obj/item/storage/belt/janitor/full/populate_contents() - new /obj/item/lightreplacer(src) new /obj/item/holosign_creator/janitor(src) new /obj/item/reagent_containers/spray/cleaner/advanced(src) + new /obj/item/reagent_containers/spray/cleaner/advanced(src) new /obj/item/soap/deluxe(src) new /obj/item/grenade/chem_grenade/cleaner(src) new /obj/item/grenade/chem_grenade/cleaner(src) diff --git a/code/modules/research/designs/janitorial_designs.dm b/code/modules/research/designs/janitorial_designs.dm index 9b06e77d04e..bf253a9e168 100644 --- a/code/modules/research/designs/janitorial_designs.dm +++ b/code/modules/research/designs/janitorial_designs.dm @@ -50,3 +50,13 @@ materials = list(MAT_METAL = 1500, MAT_SILVER = 150, MAT_GLASS = 3000) build_path = /obj/item/lightreplacer category = list("Janitorial") + +/datum/design/light_replacer_bluespace + name = "Bluespace Light Replacer" + desc = "A device to automatically replace lights from a distance. Refill with working light bulbs." + id = "light_replacer_bluespace" + req_tech = list("bluespace" = 7, "materials" = 5, "engineering" = 6, "plasmatech" = 6) + build_type = PROTOLATHE + materials = list(MAT_METAL = 1500, MAT_SILVER = 150, MAT_GLASS = 6000, MAT_BLUESPACE = 300) + build_path = /obj/item/lightreplacer/bluespace + category = list("Janitorial") diff --git a/code/modules/response_team/ert_outfits.dm b/code/modules/response_team/ert_outfits.dm index d271a393670..cf89f76b2f9 100644 --- a/code/modules/response_team/ert_outfits.dm +++ b/code/modules/response_team/ert_outfits.dm @@ -487,7 +487,7 @@ l_pocket = /obj/item/melee/classic_baton/telescopic backpack_contents = list( /obj/item/grenade/chem_grenade/antiweed = 2, - /obj/item/reagent_containers/spray/cleaner/advanced = 1, + /obj/item/lightreplacer = 1, /obj/item/storage/bag/trash = 1, /obj/item/twohanded/push_broom, /obj/item/storage/box/lights/mixed = 1, @@ -534,7 +534,7 @@ /obj/item/grenade/clusterbuster/cleaner = 1, /obj/item/storage/box/lights/mixed = 1, /obj/item/storage/bag/trash/bluespace = 1, - /obj/item/reagent_containers/spray/cleaner/advanced = 1, + /obj/item/lightreplacer/bluespace = 1, /obj/item/melee/flyswatter = 1 ) diff --git a/icons/obj/janitor.dmi b/icons/obj/janitor.dmi index 4f6c9d6d09b..3ac46fc3384 100644 Binary files a/icons/obj/janitor.dmi and b/icons/obj/janitor.dmi differ