diff --git a/aurorastation.dme b/aurorastation.dme index 093a1af2a4e..ea44316611f 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -1256,6 +1256,7 @@ #include "code\game\objects\structures\curtains.dm" #include "code\game\objects\structures\displaycase.dm" #include "code\game\objects\structures\door_assembly.dm" +#include "code\game\objects\structures\ECD.dm" #include "code\game\objects\structures\extinguisher.dm" #include "code\game\objects\structures\fireaxe_cabinet.dm" #include "code\game\objects\structures\flags_banners.dm" diff --git a/code/game/objects/structures/ECD.dm b/code/game/objects/structures/ECD.dm new file mode 100644 index 00000000000..c73535b4cd1 --- /dev/null +++ b/code/game/objects/structures/ECD.dm @@ -0,0 +1,83 @@ +#define ECD_LOOSE 0 +#define ECD_BOLTED 1 +#define ECD_WELDED 2 + +/obj/structure/ecd + name = "Electronic Countermeasures Device" + desc = "A large, heavy duty device in the shape of a cylinder. There's something about this piece of tech that feels rather alien. Inside, something hums softly." + icon = 'icons/obj/structure/ECD.dmi' + icon_state = "ECD" + anchored = TRUE + density = TRUE + var/state = ECD_WELDED + slowdown = 10 + +/obj/structure/ecd/examine(mob/living/user, distance) + . = ..() + switch(state) + if(ECD_LOOSE) + to_chat(user, SPAN_NOTICE("\The [src] isn't attached to anything.")) + if(ECD_BOLTED) + to_chat(user, SPAN_NOTICE("\The [src] is bolted to the floor.")) + if(ECD_WELDED) + to_chat(user, SPAN_NOTICE("\The [src] is bolted and welded to the floor.")) + if(user.isSynthetic()) + to_chat(user, SPAN_NOTICE("\The [src] does not seem to be doing anything, but you can feel it. A signal, beyond anything you can consciously understand, weaving and scratching a shield around the back of your mind.")) + +/obj/structure/ecd/attackby(obj/item/W, mob/user) + if(W.iswrench()) + switch(state) + if(ECD_LOOSE) + state = ECD_BOLTED + playsound(get_turf(src), W.usesound, 75, TRUE) + user.visible_message(SPAN_NOTICE("\The [user] secures \the [src] to the floor."), \ + SPAN_NOTICE("You secure \the [src]'s external reinforcing bolts to the floor."), \ + SPAN_WARNING("You hear a ratcheting noise.")) + anchored = TRUE + if(ECD_BOLTED) + state = ECD_LOOSE + playsound(get_turf(src), W.usesound, 75, TRUE) + user.visible_message(SPAN_NOTICE("\The [user] unsecures \the [src]'s reinforcing bolts from the floor."), \ + SPAN_NOTICE("You undo \the [src]'s external reinforcing bolts."), \ + SPAN_WARNING("You hear a ratcheting noise.")) + anchored = FALSE + if(ECD_WELDED) + to_chat(user, SPAN_WARNING("\The [src] needs to be unwelded from the floor.")) + return + + if(W.iswelder()) + var/obj/item/weldingtool/WT = W + switch(state) + if(ECD_LOOSE) + to_chat(user, SPAN_WARNING("\The [src] needs to be wrenched to the floor.")) + if(ECD_BOLTED) + if(WT.use(0, user)) + playsound(get_turf(src), 'sound/items/welder_pry.ogg', 50, TRUE) + user.visible_message(SPAN_NOTICE("\The [user] starts to weld \the [src] to the floor."), \ + SPAN_NOTICE("You start to weld \the [src] to the floor."), \ + SPAN_WARNING("You hear the sound of metal being welded.")) + if(W.use_tool(src, user, 20, volume = 50)) + if(!src || !WT.isOn()) + return + state = ECD_WELDED + to_chat(user, SPAN_NOTICE("You weld \the [src] to the floor.")) + else + to_chat(user, SPAN_WARNING("You need more welding fuel to complete this task.")) + if(ECD_WELDED) + if(WT.use(0, user)) + playsound(get_turf(src), 'sound/items/welder_pry.ogg', 50, TRUE) + user.visible_message(SPAN_NOTICE("\The [user] starts to cut \the [src] free from the floor."), \ + SPAN_NOTICE("You start to cut \the [src] free from the floor."), \ + SPAN_WARNING("You hear the sound of metal being welded.")) + if(W.use_tool(src, user, 20, volume = 50)) + if(!src || !WT.isOn()) + return + state = ECD_BOLTED + to_chat(user, SPAN_NOTICE("You cut \the [src] free from the floor.")) + else + to_chat(user, SPAN_WARNING("You need more welding fuel to complete this task.")) + return + +#undef ECD_LOOSE +#undef ECD_BOLTED +#undef ECD_WELDED diff --git a/html/changelogs/RustingWithYou - mcguffin.yml b/html/changelogs/RustingWithYou - mcguffin.yml new file mode 100644 index 00000000000..6a07a269ed9 --- /dev/null +++ b/html/changelogs/RustingWithYou - mcguffin.yml @@ -0,0 +1,41 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: RustingWithYou + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Adds the ECD to the Horizon's cargo bay." diff --git a/icons/obj/structure/ECD.dmi b/icons/obj/structure/ECD.dmi new file mode 100644 index 00000000000..09b758e0708 Binary files /dev/null and b/icons/obj/structure/ECD.dmi differ diff --git a/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm b/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm index 4342cd44f35..d6ece6996ec 100644 --- a/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm +++ b/maps/sccv_horizon/sccv_horizon-1_deck_1.dmm @@ -1085,6 +1085,10 @@ /obj/structure/lattice/catwalk/indoor/grate, /turf/simulated/floor/plating, /area/maintenance/engineering) +"aQN" = ( +/obj/machinery/firealarm/north, +/turf/simulated/floor/bluegrid, +/area/operations/storage) "aRG" = ( /obj/effect/floor_decal/industrial/warning{ dir = 8 @@ -1343,6 +1347,12 @@ /obj/structure/tank_wall/oxygen, /turf/simulated/floor/plating, /area/engineering/atmos/air) +"aYv" = ( +/obj/structure/ecd{ + pixel_x = -16 + }, +/turf/simulated/floor/bluegrid, +/area/operations/storage) "aYY" = ( /obj/effect/floor_decal/corner/lime{ dir = 10 @@ -5515,6 +5525,15 @@ }, /turf/simulated/floor/plating, /area/shuttle/intrepid/engine_compartment) +"dRB" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 6 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/operations/storage) "dSD" = ( /obj/structure/shuttle_part/scc/research{ density = 0; @@ -9295,6 +9314,9 @@ c_tag = "Operations - Warehouse Starboard Fore Storage Room"; dir = 4 }, +/obj/effect/floor_decal/industrial/warning{ + dir = 5 + }, /turf/simulated/floor/tiled, /area/operations/storage) "grm" = ( @@ -11630,6 +11652,9 @@ "icm" = ( /turf/simulated/wall, /area/maintenance/engineering/auxillary) +"icW" = ( +/turf/simulated/floor/bluegrid, +/area/operations/storage) "idq" = ( /obj/effect/floor_decal/industrial/warning{ dir = 5 @@ -22854,6 +22879,15 @@ /obj/effect/floor_decal/industrial/warning, /turf/simulated/floor/plating, /area/maintenance/engineering) +"pRc" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 10 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/operations/storage) "pRz" = ( /obj/structure/sign/securearea{ pixel_y = 32 @@ -24288,12 +24322,8 @@ /turf/simulated/floor/plating, /area/maintenance/research_port) "qQa" = ( -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/machinery/light/small{ - dir = 8 - }, /obj/machinery/alarm/west, -/turf/simulated/floor/tiled, +/turf/simulated/floor/bluegrid, /area/operations/storage) "qQk" = ( /obj/effect/floor_decal/industrial/warning{ @@ -26734,6 +26764,9 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 }, +/obj/effect/floor_decal/industrial/warning{ + dir = 9 + }, /turf/simulated/floor/tiled, /area/operations/storage) "sDN" = ( @@ -31373,6 +31406,12 @@ }, /turf/simulated/floor/tiled, /area/horizon/hydroponics/lower) +"vMc" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/bluegrid, +/area/operations/storage) "vMd" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 8 @@ -45286,7 +45325,7 @@ pcv giX tiV qdE -giX +dRB qQa gqW qdE @@ -45489,9 +45528,9 @@ ccU kAn nzG qdE -iBu -nCV -tFO +aQN +aYv +vMc qdE oct qdE @@ -45692,8 +45731,8 @@ sWr giX iQI qdE -giX -iQI +pRc +icW sDJ qdE vgU