From c18c2923f6f58fc98d4efbfe19b3371b83df53c4 Mon Sep 17 00:00:00 2001 From: RustingWithYou <63625389+RustingWithYou@users.noreply.github.com> Date: Sun, 4 Feb 2024 12:03:04 +1300 Subject: [PATCH] Konyang: The ECD (#18353) * she EC on my D til i horizon mapping * changelog * location in changelog --- aurorastation.dme | 1 + code/game/objects/structures/ECD.dm | 83 ++++++++++++++++++ html/changelogs/RustingWithYou - mcguffin.yml | 41 +++++++++ icons/obj/structure/ECD.dmi | Bin 0 -> 821 bytes maps/sccv_horizon/sccv_horizon-1_deck_1.dmm | 61 ++++++++++--- 5 files changed, 175 insertions(+), 11 deletions(-) create mode 100644 code/game/objects/structures/ECD.dm create mode 100644 html/changelogs/RustingWithYou - mcguffin.yml create mode 100644 icons/obj/structure/ECD.dmi 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 0000000000000000000000000000000000000000..09b758e07088858250739ca49304e0c9237eca43 GIT binary patch literal 821 zcmV-51Iqk~P)2q{I0D0004WQchCV=-0C=2JR&a84 z_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#a?F72jMU8Zj1nNn!jP-DB(WqF$W(H5 zc2VNuOvx-N2J#HKIMa#}b5kK~Wd&D17qFoK=$aVZD|r_@0006oNkl>vn@6 z3;^JwvZ1YAEPelHT|&627^pq_vn^+{R`>`I?B((w|MB-ixj1P%7pJth=d=o$PvMT& zd@l3ZX>-beU)gi)+M`Su|N1tMvhNjV%&zpX$_MPl*|gR)U#lKZZUm^b@r) zc=-&=?}rZ=k0W;^XkLuT#uI89Z29fv`0F-~K=w&3gS7N*N4Z%n;sqd_ZT;{O&o*GQh!^A-nC$Ub7XHU+xQEnO!%G+;i^Vsz z;l*F$&F{q^<6501T&;6fmQ*HRzRI+1HpRt9wiGL4YiWQIwyv>?d4vpyXClT0M$Di2 zJ$)W-x7!eqFdSCP7e&O}rI?m>#lkVhD{Cmz8ZPie>p1Xz+7*tm!Flo(wUBVEbHs5n zF*&U0bG@_c3OrZb!l5Lmy5R4<+AcxUgo%7vCM?k&d@A-h)g2 z10nBrb}~xX54**At_?1{rsUZc-$N*^VBLXjsVNW$b=qU=UbA9L-1&plU=N2qB3mtY zk#uc%5zD{wKZ)O1@>{r}AX47*wStzja6Y~P)39c39887`00000NkvXXu0mjfo~D2u literal 0 HcmV?d00001 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