diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm index f219cfcc992..a6c92c7610c 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm @@ -145,7 +145,7 @@ /area/ruin/unpowered) "u" = ( /obj/structure/closet/crate/engineering, -/obj/item/weapon/rcd/loaded, +/obj/item/weapon/construction/rcd/loaded, /turf/open/floor/engine/cult{ baseturf = /turf/open/floor/plating/lava/smooth }, diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm index b3facda8d26..2c90bf7f22f 100644 --- a/_maps/map_files/debug/runtimestation.dmm +++ b/_maps/map_files/debug/runtimestation.dmm @@ -1,3 +1,4 @@ + "aa" = (/turf/open/space/basic,/area/space) "ab" = (/obj/structure/lattice,/turf/open/space,/area/space) "ac" = (/turf/open/space,/area/space/nearstation) @@ -87,7 +88,7 @@ "bI" = (/obj/structure/table,/turf/open/floor/plasteel,/area/bridge) "bJ" = (/obj/structure/table,/obj/item/weapon/card/id/captains_spare,/turf/open/floor/plasteel,/area/bridge) "bK" = (/obj/structure/table,/obj/item/weapon/storage/backpack/holding,/turf/open/floor/plasteel,/area/bridge) -"bL" = (/obj/structure/table,/obj/item/weapon/rcd_ammo/large,/obj/item/weapon/rcd_ammo/large,/obj/item/weapon/rcd_ammo/large,/obj/item/weapon/rcd,/turf/open/floor/plasteel,/area/bridge) +"bL" = (/obj/structure/table,/obj/item/weapon/rcd_ammo/large,/obj/item/weapon/rcd_ammo/large,/obj/item/weapon/rcd_ammo/large,/obj/item/weapon/construction/rcd,/turf/open/floor/plasteel,/area/bridge) "bM" = (/obj/structure/closet/secure_closet/hop,/turf/open/floor/plasteel/blue/side{dir = 4},/area/bridge) "bN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel,/area/hallway/primary/central) "bO" = (/obj/structure/cable{d1 = 1;d2 = 2;icon_state = "1-2"},/turf/open/floor/plasteel,/area/hallway/primary/central) @@ -200,56 +201,2810 @@ "dR" = (/obj/structure/table,/obj/item/device/flashlight{pixel_y = 5},/turf/open/floor/plasteel,/area/storage/primary) (1,1,1) = {" -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadadadadadadadadadaeaeaeaeaeaeaeadadadadadadadadadadadadadadadadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafafafafafafafadagagagagacacacadafafafafafafafafafafafafafafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafahahahahahahahagaiaiagacacacajajajajakakakakakakakakakakafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafahalamamamamahaganaoagagajajajapaqarakasatauavavavavavakafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafahawaxayayazahagaiaAaBaBaCaDaCaDaEaFakaGaHaIavaJaKaLavakafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafahaMawaNaOaPahagaQaRagagajajajaSaTaDaUaVaWaXavaKavaKaYakafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafahaZbabbbcaPahagaiaiagacacacajbdbebfakbgbhaIavaLbiaJavakafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafahbjbkblbmbnahagagagagacacacajbobebpakbqbraIavavavavavakafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafahbsbtahahahbububvbvbvbvbvbububwbxajakakakakbybybybybybyafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadbzbAbBbCbDbEbFbubGbHbIbJbKbLbMbubNbObPbQbRbSbTbybUbVbWbXbyafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacbYafbZcacbcccccccdcecfcfcfcfcfcgchcicjccccccccccckclcmcmcmcnafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacbYafbZbObNbEbEcobucpcqcqcqcqcqcrcsctbEbEbEbEbEcobycucmcmcmbybybyacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacbYafbZbObNbEbEbEbucvbvbucwbubvbucsbNbEbEbEbEbEbEcxcucmcmcycnczcnacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacbYafbZbObCcAcAcAcBcCcDcDcDcDcDcDcEcFcAcAcAcAcAcAcGcHcmcmcmbybybyacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacbYafbZbObNbEbEbEbEbEbEbEbEbEbEbEbObNbEbEbEbEbEbEbycIcmcmcmcnafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadbzbAbObNbEbEbEbEbEbEbEbEbEbEbEbObNbEbEbEbEbEbEbycJcKcLcMbyafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafcNcOcPcQcQcNcRcRcRcNcQcQcNcScTcUcScScScVcVcVbybybybybybyafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafcNcWcXcYcYcYcYcYcYcYcYcYcZcSdadbdcdddedfdgdhdidjdkdldlcSafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafcNdmdndndndndndndndndndndocSdpdldcdqdrdsdtdudvdwdkdldxcSafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafcNdydndndndndndndndndndndzcSdldldAdBdBdBdBdBdBdBdCdldlcSafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafcNdydndndndndndndndndndndzcSdldldldldldldldldldldldldlcSafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafcNdydndndndndndndndndndndzcSdldldDdEdEdEdEdEdEdEdFdldlcSafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafcNdydndndndndndndndndndndzdGdldldcdHdHdHdHdHdHdHdkdldlcSafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafcNdydndndndndndndndndndndzdGdldldcdIdIdIdIdIdIdIdkdldlcSafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafcNdydndndndndndndndndndndzcSdldldAdBdBdBdBdBdBdBdCdldlcSafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafcNdydndndndndndndndndndndzcSdldldldldldldldldldldldldlcSafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafcNdydndndndndndndndndndndzcSdldldDdEdEdEdEdEdEdEdFdldlcSafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafcNdmdndndndndndndndndndndocSdpdldcdJdJdJdJdJdJdJdkdldxcSafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafcNdKdLdLdLdLdLdLdLdLdLdLdMcSdldldcdNdOdNdNdPdQdRdkdldlcSafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafcNcNcNcNcNcNcNcNcNcNcNcNcNcScScScScScScScScScScScScScScSafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(5,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(6,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(7,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(8,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(9,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +bY +bY +bY +bY +bY +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +af +af +af +af +af +af +af +bz +af +af +af +af +af +bz +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ah +ah +ah +ah +ah +ah +ah +bA +bZ +bZ +bZ +bZ +bZ +bA +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ah +al +aw +aM +aZ +bj +bs +bB +ca +bO +bO +bO +bO +bO +cO +cW +dm +dy +dy +dy +dy +dy +dy +dy +dy +dm +dK +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ah +am +ax +aw +ba +bk +bt +bC +cb +bN +bN +bC +bN +bN +cP +cX +dn +dn +dn +dn +dn +dn +dn +dn +dn +dn +dL +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ah +am +ay +aN +bb +bl +ah +bD +cc +bE +bE +cA +bE +bE +cQ +cY +dn +dn +dn +dn +dn +dn +dn +dn +dn +dn +dL +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ah +am +ay +aO +bc +bm +ah +bE +cc +bE +bE +cA +bE +bE +cQ +cY +dn +dn +dn +dn +dn +dn +dn +dn +dn +dn +dL +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ah +am +az +aP +aP +bn +ah +bF +cc +co +bE +cA +bE +bE +cN +cY +dn +dn +dn +dn +dn +dn +dn +dn +dn +dn +dL +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(19,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +ad +ah +ah +ah +ah +ah +ah +bu +bu +cd +bu +bu +cB +bE +bE +cR +cY +dn +dn +dn +dn +dn +dn +dn +dn +dn +dn +dL +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(20,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ae +ag +ag +ag +ag +ag +ag +ag +bu +bG +ce +cp +cv +cC +bE +bE +cR +cY +dn +dn +dn +dn +dn +dn +dn +dn +dn +dn +dL +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(21,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ae +ag +ai +an +ai +aQ +ai +ag +bv +bH +cf +cq +bv +cD +bE +bE +cR +cY +dn +dn +dn +dn +dn +dn +dn +dn +dn +dn +dL +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ae +ag +ai +ao +aA +aR +ai +ag +bv +bI +cf +cq +bu +cD +bE +bE +cN +cY +dn +dn +dn +dn +dn +dn +dn +dn +dn +dn +dL +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ae +ag +ag +ag +aB +ag +ag +ag +bv +bJ +cf +cq +cw +cD +bE +bE +cQ +cY +dn +dn +dn +dn +dn +dn +dn +dn +dn +dn +dL +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ae +ac +ac +ag +aB +ag +ac +ac +bv +bK +cf +cq +bu +cD +bE +bE +cQ +cY +dn +dn +dn +dn +dn +dn +dn +dn +dn +dn +dL +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ae +ac +ac +aj +aC +aj +ac +ac +bv +bL +cf +cq +bv +cD +bE +bE +cN +cZ +do +dz +dz +dz +dz +dz +dz +dz +dz +do +dM +cN +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ae +ac +ac +aj +aD +aj +ac +ac +bu +bM +cg +cr +bu +cD +bE +bE +cS +cS +cS +cS +cS +cS +dG +dG +cS +cS +cS +cS +cS +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +ad +aj +aj +aC +aj +aj +aj +bu +bu +ch +cs +cs +cE +bO +bO +cT +da +dp +dl +dl +dl +dl +dl +dl +dl +dl +dp +dl +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +aj +ap +aD +aS +bd +bo +bw +bN +ci +ct +bN +cF +bN +bN +cU +db +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +aj +aq +aE +aT +be +be +bx +bO +cj +bE +bE +cA +bE +bE +cS +dc +dc +dA +dl +dD +dc +dc +dA +dl +dD +dc +dc +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +aj +ar +aF +aD +bf +bp +aj +bP +cc +bE +bE +cA +bE +bE +cS +dd +dq +dB +dl +dE +dH +dI +dB +dl +dE +dJ +dN +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ak +ak +ak +aU +ak +ak +ak +bQ +cc +bE +bE +cA +bE +bE +cS +de +dr +dB +dl +dE +dH +dI +dB +dl +dE +dJ +dO +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ak +as +aG +aV +bg +bq +ak +bR +cc +bE +bE +cA +bE +bE +cV +df +ds +dB +dl +dE +dH +dI +dB +dl +dE +dJ +dN +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(33,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ak +at +aH +aW +bh +br +ak +bS +cc +bE +bE +cA +bE +bE +cV +dg +dt +dB +dl +dE +dH +dI +dB +dl +dE +dJ +dN +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ak +au +aI +aX +aI +aI +ak +bT +cc +co +bE +cA +bE +bE +cV +dh +du +dB +dl +dE +dH +dI +dB +dl +dE +dJ +dP +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ak +av +av +av +av +av +by +by +ck +by +cx +cG +by +by +by +di +dv +dB +dl +dE +dH +dI +dB +dl +dE +dJ +dQ +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(36,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ak +av +aJ +aK +aL +av +by +bU +cl +cu +cu +cH +cI +cJ +by +dj +dw +dB +dl +dE +dH +dI +dB +dl +dE +dJ +dR +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(37,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ak +av +aK +av +bi +av +by +bV +cm +cm +cm +cm +cm +cK +by +dk +dk +dC +dl +dF +dk +dk +dC +dl +dF +dk +dk +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(38,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ak +av +aL +aK +aJ +av +by +bW +cm +cm +cm +cm +cm +cL +by +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +dl +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(39,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ak +av +av +aY +av +av +by +bX +cm +cm +cy +cm +cm +cM +by +dl +dx +dl +dl +dl +dl +dl +dl +dl +dl +dx +dl +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(40,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +ak +ak +ak +ak +ak +ak +by +by +cn +by +cn +by +cn +by +by +cS +cS +cS +cS +cS +cS +cS +cS +cS +cS +cS +cS +cS +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(41,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +af +af +af +af +af +af +af +af +af +af +by +cz +by +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +af +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(42,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +by +cn +by +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(43,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(44,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +"} +(45,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(46,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(47,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(48,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(49,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(50,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(51,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(52,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa "} diff --git a/code/datums/action.dm b/code/datums/action.dm index 03b293b13dc..63de6b19e37 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -198,6 +198,9 @@ if(target == C.internal) button.icon_state = "template_active" +/datum/action/item_action/pick_color + name = "Choose A Color" + /datum/action/item_action/toggle_mister name = "Toggle Mister" diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 95b77d9d67a..c12d828fff7 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -445,10 +445,10 @@ GLOBAL_LIST_EMPTY(blood_splatter_icons) /atom/proc/ratvar_act() return -/atom/proc/rcd_vals(mob/user, obj/item/weapon/rcd/the_rcd) +/atom/proc/rcd_vals(mob/user, obj/item/weapon/construction/rcd/the_rcd) return FALSE -/atom/proc/rcd_act(mob/user, obj/item/weapon/rcd/the_rcd, passed_mode) +/atom/proc/rcd_act(mob/user, obj/item/weapon/construction/rcd/the_rcd, passed_mode) return FALSE /atom/proc/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm index d581af11b94..4eea55dbca7 100644 --- a/code/game/gamemodes/malfunction/Malf_Modules.dm +++ b/code/game/gamemodes/malfunction/Malf_Modules.dm @@ -197,8 +197,8 @@ return for(var/I in GLOB.rcd_list) - if(!istype(I, /obj/item/weapon/rcd/borg)) //Ensures that cyborg RCDs are spared. - var/obj/item/weapon/rcd/RCD = I + if(!istype(I, /obj/item/weapon/construction/rcd/borg)) //Ensures that cyborg RCDs are spared. + var/obj/item/weapon/construction/rcd/RCD = I RCD.detonate_pulse() to_chat(src, "RCD detonation pulse emitted.") diff --git a/code/game/gamemodes/sandbox/h_sandbox.dm b/code/game/gamemodes/sandbox/h_sandbox.dm index ae0486c399f..07a4e0af6c0 100644 --- a/code/game/gamemodes/sandbox/h_sandbox.dm +++ b/code/game/gamemodes/sandbox/h_sandbox.dm @@ -218,7 +218,7 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE) if("hsbrcd") if(!GLOB.hsboxspawn) return - new/obj/item/weapon/rcd/combat(usr.loc) + new/obj/item/weapon/construction/rcd/combat(usr.loc) // // New sandbox airlock maker diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 9a3af5b627f..147e07fe1da 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1540,13 +1540,13 @@ ae.loc = src.loc qdel(src) -/obj/machinery/door/airlock/rcd_vals(mob/user, obj/item/weapon/rcd/the_rcd) +/obj/machinery/door/airlock/rcd_vals(mob/user, obj/item/weapon/construction/rcd/the_rcd) switch(the_rcd.mode) if(RCD_DECONSTRUCT) return list("mode" = RCD_DECONSTRUCT, "delay" = 50, "cost" = 32) return FALSE -/obj/machinery/door/airlock/rcd_act(mob/user, obj/item/weapon/rcd/the_rcd, passed_mode) +/obj/machinery/door/airlock/rcd_act(mob/user, obj/item/weapon/construction/rcd/the_rcd, passed_mode) switch(passed_mode) if(RCD_DECONSTRUCT) to_chat(user, "You deconstruct the airlock.") diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 92984b4852b..a05a5af3755 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -1052,7 +1052,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C icon_state = "engivend" icon_deny = "engivend-deny" req_access_txt = "11" //Engineering Equipment access - products = list(/obj/item/clothing/glasses/meson/engine = 2,/obj/item/device/multitool = 4,/obj/item/weapon/electronics/airlock = 10,/obj/item/weapon/electronics/apc = 10,/obj/item/weapon/electronics/airalarm = 10,/obj/item/weapon/stock_parts/cell/high = 10, /obj/item/weapon/rcd/loaded = 3, /obj/item/device/geiger_counter = 5) + products = list(/obj/item/clothing/glasses/meson/engine = 2,/obj/item/device/multitool = 4,/obj/item/weapon/electronics/airlock = 10,/obj/item/weapon/electronics/apc = 10,/obj/item/weapon/electronics/airalarm = 10,/obj/item/weapon/stock_parts/cell/high = 10, /obj/item/weapon/construction/rcd/loaded = 3, /obj/item/device/geiger_counter = 5) contraband = list(/obj/item/weapon/stock_parts/cell/potato = 3) premium = list(/obj/item/weapon/storage/belt/utility = 3) armor = list(melee = 100, bullet = 100, laser = 100, energy = 100, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 50) diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index dbb3149a385..f8e716ea694 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -1,14 +1,14 @@ - +#define GLOW_MODE 3 +#define LIGHT_MODE 2 +#define REMOVE_MODE 1 /* CONTAINS: RCD +ARCD */ -/obj/item/weapon/rcd - name = "rapid-construction-device (RCD)" - desc = "A device used to rapidly build and deconstruct walls and floors." - icon = 'icons/obj/tools.dmi' - icon_state = "rcd" + +obj/item/weapon/construction opacity = 0 density = 0 anchored = 0 @@ -25,30 +25,114 @@ RCD resistance_flags = FIRE_PROOF var/datum/effect_system/spark_spread/spark_system var/matter = 0 - var/max_matter = 160 - var/working = 0 + var/max_matter = 100 + var/sheetmultiplier = 4 //Controls the amount of matter added for each glass/metal sheet, triple for plasteel + var/plasteelmultiplier = 3 //Plasteel is worth 3 times more than glass or metal + var/no_ammo_message = "The \'Low Ammo\' light on the device blinks yellow." + +/obj/item/weapon/construction/Initialize() + ..() + desc = "A [src]. It currently holds [matter]/[max_matter] matter-units." + spark_system = new /datum/effect_system/spark_spread + spark_system.set_up(5, 0, src) + spark_system.attach(src) + + +/obj/item/weapon/construction/Destroy() + QDEL_NULL(spark_system) + . = ..() + +/obj/item/weapon/construction/attackby(obj/item/weapon/W, mob/user, params) + if(iscyborg(user)) + return + var/loaded = 0 + if(istype(W, /obj/item/weapon/rcd_ammo)) + var/obj/item/weapon/rcd_ammo/R = W + if((matter + R.ammoamt) > max_matter) + to_chat(user, "The [src] can't hold any more matter-units!") + return + qdel(W) + matter += R.ammoamt + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + loaded = 1 + else if(istype(W, /obj/item/stack/sheet/metal) || istype(W, /obj/item/stack/sheet/glass)) + loaded = loadwithsheets(W, sheetmultiplier, user) + else if(istype(W, /obj/item/stack/sheet/plasteel)) + loaded = loadwithsheets(W, plasteelmultiplier*sheetmultiplier, user) //Plasteel is worth 3 times more than glass or metal + if(loaded) + to_chat(user, "The [src] now holds [matter]/[max_matter] matter-units.") + desc = "A RCD. It currently holds [matter]/[max_matter] matter-units." + else + return ..() + +/obj/item/weapon/construction/proc/loadwithsheets(obj/item/stack/sheet/S, value, mob/user) + var/maxsheets = round((max_matter-matter)/value) //calculate the max number of sheets that will fit in RCD + if(maxsheets > 0) + var/amount_to_use = min(S.amount, maxsheets) + S.use(amount_to_use) + matter += value*amount_to_use + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + to_chat(user, "You insert [amount_to_use] [S.name] sheets into the [src]. ") + return 1 + to_chat(user, "You can't insert any more [S.name] sheets into the [src]!") + return 0 + +/obj/item/weapon/construction/proc/activate() + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + +/obj/item/weapon/construction/attack_self(mob/user) + playsound(src.loc, 'sound/effects/pop.ogg', 50, 0) + if(prob(20)) + spark_system.start() + +/obj/item/weapon/construction/proc/useResource(amount, mob/user) + if(matter < amount) + if(user) + to_chat(user, no_ammo_message) + return 0 + matter -= amount + desc = "A [src]. It currently holds [matter]/[max_matter] matter-units." + return 1 + +/obj/item/weapon/construction/proc/checkResource(amount, mob/user) + . = matter >= amount + if(!. && user) + to_chat(user, no_ammo_message) + return . + +/obj/item/weapon/construction/proc/range_check(atom/A, mob/user) + if(!(A in view(7, get_turf(user)))) + to_chat(user, "The \'Out of Range\' light on the [src] blinks red.") + return FALSE + +/obj/item/weapon/construction/proc/prox_check(proximity) + if(!proximity) + return + + +/obj/item/weapon/construction/rcd + name = "rapid-construction-device (RCD)" + desc = "A device used to rapidly build and deconstruct walls and floors." + icon = 'icons/obj/tools.dmi' + icon_state = "rcd" + max_matter = 160 var/mode = 1 var/canRturf = 0 + var/ranged = FALSE var/airlock_type = /obj/machinery/door/airlock var/window_type = /obj/structure/window/fulltile var/advanced_airlock_setting = 1 //Set to 1 if you want more paintjobs available - var/sheetmultiplier = 4 //Controls the amount of matter added for each glass/metal sheet, triple for plasteel - var/plasteelmultiplier = 3 //Plasteel is worth 3 times more than glass or metal - var/list/conf_access = null var/use_one_access = 0 //If the airlock should require ALL or only ONE of the listed accesses. - var/delay_mod = 1 - var/no_ammo_message = "The \'Low Ammo\' light on \ - the RCD blinks yellow." -/obj/item/weapon/rcd/suicide_act(mob/user) +/obj/item/weapon/construction/rcd/suicide_act(mob/user) user.visible_message("[user] sets the RCD to 'Wall' and points it down [user.p_their()] throat! It looks like [user.p_theyre()] trying to commit suicide..") return (BRUTELOSS) -/obj/item/weapon/rcd/verb/toggle_window_type() +/obj/item/weapon/construction/rcd/verb/toggle_window_type() set name = "Toggle Window Type" set category = "Object" set src in usr // What does this do? @@ -64,7 +148,7 @@ RCD to_chat(usr, "You change \the [src]'s window mode to [window_type_name].") -/obj/item/weapon/rcd/verb/change_airlock_access() +/obj/item/weapon/construction/rcd/verb/change_airlock_access() set name = "Change Airlock Access" set category = "Object" set src in usr @@ -79,7 +163,6 @@ RCD var/t1 = text("") - if(use_one_access) t1 += "Restriction Type: At least one access required
" else @@ -114,7 +197,7 @@ RCD popup.open() onclose(usr, "airlock") -/obj/item/weapon/rcd/Topic(href, href_list) +/obj/item/weapon/construction/rcd/Topic(href, href_list) ..() if (usr.stat || usr.restrained()) return @@ -127,7 +210,7 @@ RCD change_airlock_access() -/obj/item/weapon/rcd/proc/toggle_access(acc) +/obj/item/weapon/construction/rcd/proc/toggle_access(acc) if (acc == "all") conf_access = null else if(acc == "one") @@ -145,7 +228,7 @@ RCD if (!conf_access.len) conf_access = null -/obj/item/weapon/rcd/verb/change_airlock_setting() +/obj/item/weapon/construction/rcd/verb/change_airlock_setting() set name = "Change Airlock Setting" set category = "Object" set src in usr @@ -207,59 +290,16 @@ RCD airlock_type = /obj/machinery/door/airlock -/obj/item/weapon/rcd/New() +/obj/item/weapon/construction/rcd/New() ..() - desc = "An RCD. It currently holds [matter]/[max_matter] matter-units." - src.spark_system = new /datum/effect_system/spark_spread - spark_system.set_up(5, 0, src) - spark_system.attach(src) GLOB.rcd_list += src - -/obj/item/weapon/rcd/Destroy() - qdel(spark_system) - spark_system = null +/obj/item/weapon/construction/rcd/Destroy() GLOB.rcd_list -= src . = ..() -/obj/item/weapon/rcd/attackby(obj/item/weapon/W, mob/user, params) - if(iscyborg(user)) //Make sure cyborgs can't load their RCDs - return - var/loaded = 0 - if(istype(W, /obj/item/weapon/rcd_ammo)) - var/obj/item/weapon/rcd_ammo/R = W - if((matter + R.ammoamt) > max_matter) - to_chat(user, "The RCD can't hold any more matter-units!") - return - qdel(W) - matter += R.ammoamt - playsound(src.loc, 'sound/machines/click.ogg', 50, 1) - loaded = 1 - else if(istype(W, /obj/item/stack/sheet/metal) || istype(W, /obj/item/stack/sheet/glass)) - loaded = loadwithsheets(W, sheetmultiplier, user) - else if(istype(W, /obj/item/stack/sheet/plasteel)) - loaded = loadwithsheets(W, plasteelmultiplier*sheetmultiplier, user) //Plasteel is worth 3 times more than glass or metal - if(loaded) - to_chat(user, "The RCD now holds [matter]/[max_matter] matter-units.") - desc = "A RCD. It currently holds [matter]/[max_matter] matter-units." - else - return ..() - -/obj/item/weapon/rcd/proc/loadwithsheets(obj/item/stack/sheet/S, value, mob/user) - var/maxsheets = round((max_matter-matter)/value) //calculate the max number of sheets that will fit in RCD - if(maxsheets > 0) - var/amount_to_use = min(S.amount, maxsheets) - S.use(amount_to_use) - matter += value*amount_to_use - playsound(src.loc, 'sound/machines/click.ogg', 50, 1) - to_chat(user, "You insert [amount_to_use] [S.name] sheets into the RCD. ") - return 1 - to_chat(user, "You can't insert any more [S.name] sheets into the RCD!") - return 0 - -/obj/item/weapon/rcd/attack_self(mob/user) - //Change the mode - playsound(src.loc, 'sound/effects/pop.ogg', 50, 0) +/obj/item/weapon/construction/rcd/attack_self(mob/user) + ..() switch(mode) if(1) mode = 2 @@ -274,16 +314,14 @@ RCD mode = 1 to_chat(user, "You change RCD's mode to 'Floor & Walls'.") - if(prob(20)) - src.spark_system.start() - -/obj/item/weapon/rcd/proc/activate() - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - - -/obj/item/weapon/rcd/afterattack(atom/A, mob/user, proximity) - if(!proximity) +/obj/item/weapon/construction/rcd/proc/target_check(atom/A, mob/user) // only returns true for stuff the device can actually work with + if((isturf(A) && A.density && mode==RCD_DECONSTRUCT) || (isturf(A) && !A.density) || (istype(A, /obj/machinery/door/airlock) && mode==RCD_DECONSTRUCT) || istype(A, /obj/structure/grille) || (istype(A, /obj/structure/window) && mode==RCD_DECONSTRUCT) || istype(A, /obj/structure/girder)) + return TRUE + else return FALSE + +/obj/item/weapon/construction/rcd/afterattack(atom/A, mob/user, proximity) + prox_check() var/list/rcd_results = A.rcd_vals(user, src) if(!rcd_results) return FALSE @@ -295,40 +333,26 @@ RCD playsound(src.loc, 'sound/machines/click.ogg', 50, 1) return TRUE -/obj/item/weapon/rcd/proc/useResource(amount, mob/user) - if(matter < amount) - if(user) - to_chat(user, no_ammo_message) - return 0 - matter -= amount - desc = "An RCD. It currently holds [matter]/[max_matter] matter-units." - return 1 -/obj/item/weapon/rcd/proc/checkResource(amount, mob/user) - . = matter >= amount - if(!. && user) - to_chat(user, no_ammo_message) - return . - -/obj/item/weapon/rcd/proc/detonate_pulse() +/obj/item/weapon/construction/rcd/proc/detonate_pulse() audible_message("[src] begins to vibrate and \ buzz loudly!","[src] begins \ vibrating violently!") // 5 seconds to get rid of it addtimer(CALLBACK(src, .proc/detonate_pulse_explode), 50) -/obj/item/weapon/rcd/proc/detonate_pulse_explode() +/obj/item/weapon/construction/rcd/proc/detonate_pulse_explode() explosion(src, 0, 0, 3, 1, flame_range = 1) qdel(src) -/obj/item/weapon/rcd/borg/New() +/obj/item/weapon/construction/rcd/borg/New() ..() no_ammo_message = "Insufficient charge." desc = "A device used to rapidly build walls and floors." canRturf = 1 -/obj/item/weapon/rcd/borg/useResource(amount, mob/user) +/obj/item/weapon/construction/rcd/borg/useResource(amount, mob/user) if(!iscyborg(user)) return 0 var/mob/living/silicon/robot/borgy = user @@ -341,7 +365,7 @@ RCD to_chat(user, no_ammo_message) return . -/obj/item/weapon/rcd/borg/checkResource(amount, mob/user) +/obj/item/weapon/construction/rcd/borg/checkResource(amount, mob/user) if(!iscyborg(user)) return 0 var/mob/living/silicon/robot/borgy = user @@ -354,10 +378,10 @@ RCD to_chat(user, no_ammo_message) return . -/obj/item/weapon/rcd/loaded +/obj/item/weapon/construction/rcd/loaded matter = 160 -/obj/item/weapon/rcd/combat +/obj/item/weapon/construction/rcd/combat name = "industrial RCD" max_matter = 500 matter = 500 @@ -378,7 +402,188 @@ RCD ammoamt = 160 -/obj/item/weapon/rcd/admin +/obj/item/weapon/construction/rcd/admin name = "admin RCD" max_matter = INFINITY matter = INFINITY + + +// Ranged RCD + + +/obj/item/weapon/construction/rcd/arcd + name = "advanced rapid-construction-device (ARCD)" + desc = "A prototype RCD with ranged capability and extended capacity" + max_matter = 300 + matter = 300 + delay_mod = 0.6 + ranged = TRUE + icon_state = "arcd" + +/obj/item/weapon/construction/rcd/arcd/afterattack(atom/A, mob/user) + range_check(A,user) + if(target_check(A,user)) + user.Beam(A,icon_state="rped_upgrade",time=30) + ..() + + + +// RAPID LIGHTING DEVICE + + + +/obj/item/weapon/construction/rld + name = "rapid-light-device (RLD)" + desc = "A device used to rapidly provide lighting sources to an area." + icon = 'icons/obj/tools.dmi' + icon_state = "rld-5" + matter = 200 + max_matter = 200 + var/mode = LIGHT_MODE + actions_types = list(/datum/action/item_action/pick_color) + + var/wallcost = 10 + var/floorcost = 15 + var/launchcost = 5 + var/deconcost = 10 + + var/walldelay = 10 + var/floordelay = 10 + var/decondelay = 15 + + var/color_choice = null + + +/obj/item/weapon/construction/rld/ui_action_click(mob/user, var/datum/action/A) + if(istype(A, /datum/action/item_action/pick_color)) + color_choice = input(user,"Choose Color") as color + else + ..() + +/obj/item/weapon/construction/rld/update_icon() + icon_state = "rld-[round(matter/35)]" + ..() + + +/obj/item/weapon/construction/rld/attack_self(mob/user) + ..() + switch(mode) + if(REMOVE_MODE) + mode = LIGHT_MODE + to_chat(user, "You change RLD's mode to 'Permanent Light Construction'.") + if(LIGHT_MODE) + mode = GLOW_MODE + to_chat(user, "You change RLD's mode to 'Light Launcher'.") + if(GLOW_MODE) + mode = REMOVE_MODE + to_chat(user, "You change RLD's mode to 'Deconstruct'.") + + +/obj/item/weapon/construction/rld/proc/checkdupes(var/target) + . = list() + var/turf/checking = get_turf(target) + for(var/obj/machinery/light/dupe in checking) + if(istype(dupe, /obj/machinery/light)) + . |= dupe + + +/obj/item/weapon/construction/rld/afterattack(atom/A, mob/user) + range_check(A,user) + var/turf/start = get_turf(src) + switch(mode) + if(REMOVE_MODE) + if(istype(A, /obj/machinery/light/)) + if(checkResource(deconcost, user)) + to_chat(user, "You start deconstructing [A]...") + user.Beam(A,icon_state="nzcrentrs_power",time=15) + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + if(do_after(user, decondelay, target = A)) + if(!useResource(deconcost, user)) + return 0 + activate() + qdel(A) + return TRUE + return FALSE + if(LIGHT_MODE) + if(iswallturf(A)) + var/turf/closed/wall/W = A + if(checkResource(floorcost, user)) + to_chat(user, "You start building a wall light...") + user.Beam(A,icon_state="nzcrentrs_power",time=15) + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + playsound(src.loc, 'sound/effects/light_flicker.ogg', 50, 0) + if(do_after(user, floordelay, target = A)) + if(!istype(W)) + return FALSE + var/list/candidates = list() + var/turf/open/winner = null + var/winning_dist = null + for(var/direction in GLOB.cardinal) + var/turf/C = get_step(W, direction) + var/list/dupes = checkdupes(C) + if(start.CanAtmosPass(C) && !dupes.len) + candidates += C + if(!candidates.len) + to_chat(user, "Valid target not found...") + playsound(src.loc, 'sound/misc/compiler-failure.ogg', 30, 1) + return FALSE + for(var/turf/open/O in candidates) + if(istype(O)) + var/x0 = O.x + var/y0 = O.y + var/contender = cheap_hypotenuse(start.x, start.y, x0, y0) + if(!winner) + winner = O + winning_dist = contender + else + if(contender < winning_dist) // lower is better + winner = O + winning_dist = contender + activate() + if(!useResource(wallcost, user)) + return FALSE + var/light = get_turf(winner) + var/align = get_dir(winner, A) + var/obj/machinery/light/L = new /obj/machinery/light(light) + L.dir = align + L.color = color_choice + L.light_color = L.color + return TRUE + return FALSE + + if(isfloorturf(A)) + var/turf/open/floor/F = A + if(checkResource(floorcost, user)) + to_chat(user, "You start building a floor light...") + user.Beam(A,icon_state="nzcrentrs_power",time=15) + playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + playsound(src.loc, 'sound/effects/light_flicker.ogg', 50, 1) + if(do_after(user, floordelay, target = A)) + if(!istype(F)) + return 0 + if(!useResource(floorcost, user)) + return 0 + activate() + var/destination = get_turf(A) + var/obj/machinery/light/floor/FL = new /obj/machinery/light/floor(destination) + FL.color = color_choice + FL.light_color = FL.color + return TRUE + return FALSE + + if(GLOW_MODE) + if(useResource(launchcost, user)) + activate() + to_chat(user, "You fire a glowstick!") + var/obj/item/device/flashlight/glowstick/G = new /obj/item/device/flashlight/glowstick(start) + G.color = color_choice + G.light_color = G.color + G.throw_at(A, 9, 3, user) + G.on = TRUE + G.update_brightness() + return TRUE + return FALSE + +#undef GLOW_MODE +#undef LIGHT_MODE +#undef REMOVE_MODE diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 4270e765a29..040edcd9316 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -139,7 +139,7 @@ ..() for(var/i in 1 to 4) new /obj/item/weapon/rcd_ammo(src) - new /obj/item/weapon/rcd(src) + new /obj/item/weapon/construction/rcd(src) /obj/structure/closet/crate/science name = "science crate" diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 4a3ab87770d..9f37710d78d 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -396,7 +396,7 @@ new/obj/item/stack/sheet/runed_metal/(get_turf(src), 1) qdel(src) -/obj/structure/girder/rcd_vals(mob/user, obj/item/weapon/rcd/the_rcd) +/obj/structure/girder/rcd_vals(mob/user, obj/item/weapon/construction/rcd/the_rcd) switch(the_rcd.mode) if(RCD_FLOORWALL) return list("mode" = RCD_FLOORWALL, "delay" = 20, "cost" = 8) @@ -404,7 +404,7 @@ return list("mode" = RCD_DECONSTRUCT, "delay" = 20, "cost" = 13) return FALSE -/obj/structure/girder/rcd_act(mob/user, obj/item/weapon/rcd/the_rcd, passed_mode) +/obj/structure/girder/rcd_act(mob/user, obj/item/weapon/construction/rcd/the_rcd, passed_mode) var/turf/T = get_turf(src) switch(passed_mode) if(RCD_FLOORWALL) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 478b3273b29..2dc159d4828 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -18,7 +18,7 @@ var/grille_type = null var/broken_type = /obj/structure/grille/broken -/obj/structure/grille/rcd_vals(mob/user, obj/item/weapon/rcd/the_rcd) +/obj/structure/grille/rcd_vals(mob/user, obj/item/weapon/construction/rcd/the_rcd) switch(the_rcd.mode) if(RCD_DECONSTRUCT) return list("mode" = RCD_DECONSTRUCT, "delay" = 20, "cost" = 5) @@ -26,7 +26,7 @@ return list("mode" = RCD_WINDOWGRILLE, "delay" = 40, "cost" = 10) return FALSE -/obj/structure/grille/rcd_act(mob/user, var/obj/item/weapon/rcd/the_rcd, passed_mode) +/obj/structure/grille/rcd_act(mob/user, var/obj/item/weapon/construction/rcd/the_rcd, passed_mode) switch(passed_mode) if(RCD_DECONSTRUCT) to_chat(user, "You deconstruct the grille.") diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index d5bcb8b60b5..c6c2ef358bc 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -57,13 +57,13 @@ if(rods) debris += new /obj/item/stack/rods(src, rods) -/obj/structure/window/rcd_vals(mob/user, obj/item/weapon/rcd/the_rcd) +/obj/structure/window/rcd_vals(mob/user, obj/item/weapon/construction/rcd/the_rcd) switch(the_rcd.mode) if(RCD_DECONSTRUCT) return list("mode" = RCD_DECONSTRUCT, "delay" = 20, "cost" = 5) return FALSE -/obj/structure/window/rcd_act(mob/user, var/obj/item/weapon/rcd/the_rcd) +/obj/structure/window/rcd_act(mob/user, var/obj/item/weapon/construction/rcd/the_rcd) switch(the_rcd.mode) if(RCD_DECONSTRUCT) to_chat(user, "You deconstruct the window.") diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 98c28256e92..5f581fba63f 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -200,7 +200,7 @@ /turf/open/floor/acid_melt() ChangeTurf(baseturf) -/turf/open/floor/rcd_vals(mob/user, obj/item/weapon/rcd/the_rcd) +/turf/open/floor/rcd_vals(mob/user, obj/item/weapon/construction/rcd/the_rcd) switch(the_rcd.mode) if(RCD_FLOORWALL) return list("mode" = RCD_FLOORWALL, "delay" = 20, "cost" = 16) @@ -212,7 +212,7 @@ return list("mode" = RCD_WINDOWGRILLE, "delay" = 40, "cost" = 4) return FALSE -/turf/open/floor/rcd_act(mob/user, obj/item/weapon/rcd/the_rcd, passed_mode) +/turf/open/floor/rcd_act(mob/user, obj/item/weapon/construction/rcd/the_rcd, passed_mode) switch(passed_mode) if(RCD_FLOORWALL) to_chat(user, "You build a wall.") diff --git a/code/game/turfs/simulated/wall/reinf_walls.dm b/code/game/turfs/simulated/wall/reinf_walls.dm index c1eff8e4154..c15e478c499 100644 --- a/code/game/turfs/simulated/wall/reinf_walls.dm +++ b/code/game/turfs/simulated/wall/reinf_walls.dm @@ -251,12 +251,12 @@ if(prob(30)) dismantle_wall() -/turf/closed/wall/r_wall/rcd_vals(mob/user, obj/item/weapon/rcd/the_rcd) +/turf/closed/wall/r_wall/rcd_vals(mob/user, obj/item/weapon/construction/rcd/the_rcd) if(!the_rcd.canRturf) return FALSE return ..() -/turf/closed/wall/r_wall/rcd_act(mob/user, obj/item/weapon/rcd/the_rcd, passed_mode) +/turf/closed/wall/r_wall/rcd_act(mob/user, obj/item/weapon/construction/rcd/the_rcd, passed_mode) if(!the_rcd.canRturf) return FALSE return ..() diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 2fd5b4433ff..1aea3d7dbc4 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -258,13 +258,13 @@ /turf/closed/wall/acid_melt() dismantle_wall(1) -/turf/closed/wall/rcd_vals(mob/user, obj/item/weapon/rcd/the_rcd) +/turf/closed/wall/rcd_vals(mob/user, obj/item/weapon/construction/rcd/the_rcd) switch(the_rcd.mode) if(RCD_DECONSTRUCT) return list("mode" = RCD_DECONSTRUCT, "delay" = 40, "cost" = 26) return FALSE -/turf/closed/wall/rcd_act(mob/user, obj/item/weapon/rcd/the_rcd, passed_mode) +/turf/closed/wall/rcd_act(mob/user, obj/item/weapon/construction/rcd/the_rcd, passed_mode) switch(passed_mode) if(RCD_DECONSTRUCT) to_chat(user, "You deconstruct the wall.") diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index 4d96decc5aa..f71e7dbe0f8 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -159,15 +159,16 @@ return 0 -/turf/open/space/rcd_vals(mob/user, obj/item/weapon/rcd/the_rcd) +/turf/open/space/rcd_vals(mob/user, obj/item/weapon/construction/rcd/the_rcd) if(!CanBuildHere()) return FALSE + switch(the_rcd.mode) if(RCD_FLOORWALL) return list("mode" = RCD_FLOORWALL, "delay" = 0, "cost" = 2) return FALSE -/turf/open/space/rcd_act(mob/user, obj/item/weapon/rcd/the_rcd, passed_mode) +/turf/open/space/rcd_act(mob/user, obj/item/weapon/construction/rcd/the_rcd, passed_mode) switch(passed_mode) if(RCD_FLOORWALL) to_chat(user, "You build a floor.") diff --git a/code/modules/cargo/exports/tools.dm b/code/modules/cargo/exports/tools.dm index 71b778e931f..683f2c08cc0 100644 --- a/code/modules/cargo/exports/tools.dm +++ b/code/modules/cargo/exports/tools.dm @@ -105,7 +105,7 @@ /datum/export/rcd cost = 100 // 15 metal -> 75 credits, +25 credits for production unit_name = "rapid construction device" - export_types = list(/obj/item/weapon/rcd) + export_types = list(/obj/item/weapon/construction/rcd) /datum/export/rcd_ammo cost = 15 // 1.5 metal, 1 glass -> 12.5 credits, +2.5 credits diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm index 83a8747252e..b3f74b038fa 100644 --- a/code/modules/clothing/outfits/ert.dm +++ b/code/modules/clothing/outfits/ert.dm @@ -139,7 +139,7 @@ /obj/item/weapon/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer=1,\ /obj/item/weapon/gun/energy/e_gun=1,\ - /obj/item/weapon/rcd/loaded=1) + /obj/item/weapon/construction/rcd/loaded=1) /datum/outfit/ert/engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() @@ -158,7 +158,7 @@ /obj/item/weapon/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer/swat=1,\ /obj/item/weapon/gun/energy/pulse/pistol/loyalpin=1,\ - /obj/item/weapon/rcd/combat=1) + /obj/item/weapon/construction/rcd/combat=1) /datum/outfit/centcom_official diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 6cc485a34c9..d8a0c97f51c 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -67,7 +67,7 @@ obj_integrity = 300 max_integrity = 300 armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75, fire = 50, acid = 75) - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/pipe_dispenser) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/device/t_scanner, /obj/item/weapon/construction/rcd, /obj/item/weapon/pipe_dispenser) siemens_coefficient = 0 var/obj/item/clothing/head/helmet/space/hardsuit/helmet actions_types = list(/datum/action/item_action/toggle_helmet) diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index e0b92a8fad6..321163d1040 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -493,7 +493,7 @@ icon_state = "coatengineer" item_state = "coatengineer" armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 20, fire = 30, acid = 45) - allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/pipe_dispenser) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/t_scanner, /obj/item/weapon/construction/rcd, /obj/item/weapon/pipe_dispenser) hoodtype = /obj/item/clothing/head/hooded/winterhood/engineering /obj/item/clothing/head/hooded/winterhood/engineering diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index d735d8e534f..cd034a11174 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -538,7 +538,7 @@ Gunshots/explosions/opening doors/less rare audio (done) /obj/item/device/radio/headset/syndicate, /obj/item/weapon/grenade/plastic/c4,\ /obj/item/device/powersink, /obj/item/weapon/storage/box/syndie_kit,\ /obj/item/toy/syndicateballoon, /obj/item/weapon/gun/energy/laser/captain,\ - /obj/item/weapon/hand_tele, /obj/item/weapon/rcd, /obj/item/weapon/tank/jetpack,\ + /obj/item/weapon/hand_tele, /obj/item/weapon/construction/rcd, /obj/item/weapon/tank/jetpack,\ /obj/item/clothing/under/rank/captain, /obj/item/device/aicard,\ /obj/item/clothing/shoes/magboots, /obj/item/areaeditor/blueprints, /obj/item/weapon/disk/nuclear,\ /obj/item/clothing/suit/space/nasavoid, /obj/item/weapon/tank) @@ -673,7 +673,6 @@ Gunshots/explosions/opening doors/less rare audio (done) QDEL_IN(O, 300) - /obj/effect/hallucination/bolts var/list/doors = list() diff --git a/code/modules/mining/aux_base_camera.dm b/code/modules/mining/aux_base_camera.dm index fcbced3210d..ebcd35f6df9 100644 --- a/code/modules/mining/aux_base_camera.dm +++ b/code/modules/mining/aux_base_camera.dm @@ -20,7 +20,7 @@ dir = direct //This camera eye is visible as a drone, and needs to keep the dir updated ..() -/obj/item/weapon/rcd/internal //Base console's internal RCD. Roundstart consoles are filled, rebuilt cosoles start empty. +/obj/item/weapon/construction/rcd/internal //Base console's internal RCD. Roundstart consoles are filled, rebuilt cosoles start empty. name = "internal RCD" max_matter = 600 //Bigger container and faster speeds due to being specialized and stationary. no_ammo_message = "Internal matter exhausted. Please add additional materials." @@ -30,7 +30,7 @@ name = "base contruction console" desc = "An industrial computer integrated with a camera-assisted rapid construction drone." networks = list("SS13") - var/obj/item/weapon/rcd/internal/RCD //Internal RCD. The computer passes user commands to this in order to avoid massive copypaste. + var/obj/item/weapon/construction/rcd/internal/RCD //Internal RCD. The computer passes user commands to this in order to avoid massive copypaste. circuit = /obj/item/weapon/circuitboard/computer/base_construction off_action = new/datum/action/innate/camera_off/base_construction var/datum/action/innate/aux_base/switch_mode/switch_mode_action = new //Action for switching the RCD's build modes @@ -50,7 +50,7 @@ /obj/machinery/computer/camera_advanced/base_construction/New() ..() - RCD = new /obj/item/weapon/rcd/internal(src) + RCD = new /obj/item/weapon/construction/rcd/internal(src) /obj/machinery/computer/camera_advanced/base_construction/Initialize(mapload) ..() @@ -117,7 +117,7 @@ remote_eye = C.remote_control B = target if(!B.RCD) //The console must always have an RCD. - B.RCD = new /obj/item/weapon/rcd/internal(src) //If the RCD is lost somehow, make a new (empty) one! + B.RCD = new /obj/item/weapon/construction/rcd/internal(src) //If the RCD is lost somehow, make a new (empty) one! /datum/action/innate/aux_base/proc/check_spot() //Check a loction to see if it is inside the aux base at the station. Camera visbility checks omitted so as to not hinder construction. diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 1ac95b26af2..257bf11163c 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -287,7 +287,7 @@ basic_modules = list( /obj/item/device/assembly/flash/cyborg, /obj/item/borg/sight/meson, - /obj/item/weapon/rcd/borg, + /obj/item/weapon/construction/rcd/borg, /obj/item/weapon/pipe_dispenser, /obj/item/weapon/extinguisher, /obj/item/weapon/weldingtool/largetank/cyborg, diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 82124c14099..133fad1b4d8 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -649,3 +649,14 @@ force = 5 playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) update() + + +/obj/machinery/light/floor + name = "floor light" + icon = 'icons/obj/lighting.dmi' + base_state = "floor" // base description and icon_state + icon_state = "floor1" + brightness = 4 + layer = 2.5 + light_type = /obj/item/weapon/light/bulb + fitting = "bulb" diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index 28b5a893a98..9f2fbda1f34 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -581,7 +581,7 @@ id = "rcd" build_type = AUTOLATHE materials = list(MAT_METAL = 30000) - build_path = /obj/item/weapon/rcd + build_path = /obj/item/weapon/construction/rcd category = list("hacked", "Construction") /datum/design/rpd diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index 877ef70c66f..c12a6d553fd 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -73,7 +73,7 @@ valid_items += rand(1,max(2,35-probWeight)) valid_items += I - if(ispath(I,/obj/item/weapon/rcd) || ispath(I,/obj/item/weapon/grenade) || ispath(I,/obj/item/device/aicard) || ispath(I,/obj/item/weapon/storage/backpack/holding) || ispath(I,/obj/item/slime_extract) || ispath(I,/obj/item/device/onetankbomb) || ispath(I,/obj/item/device/transfer_valve)) + if(ispath(I,/obj/item/weapon/construction/rcd) || ispath(I,/obj/item/weapon/grenade) || ispath(I,/obj/item/device/aicard) || ispath(I,/obj/item/weapon/storage/backpack/holding) || ispath(I,/obj/item/slime_extract) || ispath(I,/obj/item/device/onetankbomb) || ispath(I,/obj/item/device/transfer_valve)) var/obj/item/tempCheck = I if(initial(tempCheck.icon_state) != null) critical_items += I diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi index cd0d3f835ed..042a8c12cd3 100644 Binary files a/icons/obj/tools.dmi and b/icons/obj/tools.dmi differ