diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 69a7cd93553..02af4a428b0 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -458,7 +458,7 @@ "aiP" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "63"},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/permabrig) "aiQ" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/security/permabrig) "aiR" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/security/permabrig) -"aiS" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "63"},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/permabrig) +"aiS" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "63"},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/permabrig) "aiT" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0; tag = "icon-alarm0 (EAST)"},/obj/machinery/camera{c_tag = "Brig Armory"; dir = 4; network = list("SS13")},/obj/machinery/flasher/portable,/obj/effect/decal/warning_stripes/red/hollow,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/armoury) "aiU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/flasher/portable,/obj/effect/decal/warning_stripes/red/hollow,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/armoury) "aiV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/armoury) @@ -955,7 +955,7 @@ "ass" = (/obj/machinery/computer/security{network = list("SS13","Research Outpost","Mining Outpost")},/turf/simulated/floor{dir = 2; icon_state = "redfull"; tag = "icon-redfull (NORTHWEST)"},/area/security/brig) "ast" = (/obj/machinery/door_control{desc = "A remote control switch for the brig foyer."; id = "BrigFoyer"; name = "Brig Foyer Doors"; normaldoorcontrol = 1; pixel_x = -5; pixel_y = -35; range = 10},/obj/machinery/door_control{desc = "A remote control switch for the brig doors leading to cells 1-4."; id = "BrigEast"; name = "Brig Cells 1-4 Hallway Doors"; normaldoorcontrol = 1; pixel_x = 5; pixel_y = -25; range = 10},/obj/machinery/door_control{desc = "A remote control switch for the brig doors leading to cells 5 and 6."; id = "BrigWest"; name = "Brig Cells 5-6 Hallway Doors"; normaldoorcontrol = 1; pixel_x = -5; pixel_y = -25; range = 20},/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/item/device/radio/intercom/department/security{pixel_x = 28},/turf/simulated/floor{dir = 2; icon_state = "redfull"; tag = "icon-redfull (NORTHWEST)"},/area/security/brig) "asu" = (/obj/structure/sign/poster/legit{pixel_x = 32},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/lobby) -"asv" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/security/prison/cell_block/C) +"asv" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable,/turf/simulated/floor/plating,/area/security/lobby) "asw" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/security/prison/cell_block/C) "asx" = (/obj/machinery/door/window/brigdoor{dir = 2; name = "Secure Door"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor,/area/security/prison/cell_block/C) "asy" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/security/prison/cell_block/C) @@ -1162,10 +1162,9 @@ "awr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/security/prison/cell_block/A) "aws" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/wall/r_wall,/area/security/prison/cell_block/A) "awt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/wall/r_wall,/area/security/prison/cell_block/A) -"awu" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable,/turf/simulated/floor/plating,/area/security/lobby) +"awu" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/lobby) "awv" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/security/lobby) "aww" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Security Lobby"; req_access_txt = "0"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/security/lobby) -"awx" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/lobby) "awy" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/lobby) "awz" = (/turf/simulated/wall/r_wall,/area/security/prison/cell_block/C) "awA" = (/obj/structure/closet{name = "Evidence Closet"},/obj/machinery/light_switch{pixel_x = -25},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) @@ -4271,7 +4270,7 @@ "bEg" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/gravitygenerator) "bEh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = "0"},/turf/simulated/floor{icon_state = "dark"},/area/engine/gravitygenerator) "bEi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/engine/gravitygenerator) -"bEj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/engine/gravitygenerator) +"bEj" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/engine/gravitygenerator) "bEk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/space,/area/space) "bEl" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/captain,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/carpet,/area/crew_quarters/captain/bedroom) "bEm" = (/turf/simulated/floor/carpet,/area/crew_quarters/captain/bedroom) @@ -7313,7 +7312,7 @@ "cKG" = (/obj/structure/table,/obj/item/clothing/head/welding{pixel_x = 1; pixel_x = -5; pixel_y = 3},/obj/item/stack/sheet/glass{amount = 50},/obj/item/clothing/head/welding{pixel_x = 0; pixel_x = -5; pixel_y = 3},/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/turf/simulated/floor,/area/atmos) "cKH" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/weapon/wrench,/obj/item/device/pipe_painter,/obj/item/device/pipe_painter,/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 9},/turf/simulated/floor,/area/atmos) "cKI" = (/obj/structure/table,/obj/item/device/t_scanner,/obj/item/device/multitool{pixel_x = 5},/obj/item/device/radio/headset/headset_eng,/obj/item/weapon/cartridge/atmos,/obj/item/weapon/cartridge/atmos,/obj/item/device/t_scanner,/turf/simulated/floor,/area/atmos) -"cKJ" = (/obj/machinery/atmospherics/trinary/tvalve{dir = 1},/turf/simulated/floor,/area/atmos) +"cKJ" = (/obj/machinery/atmospherics/trinary/tvalve/digital/flipped,/turf/simulated/floor,/area/atmos) "cKK" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Waste to Port"},/turf/simulated/floor,/area/atmos) "cKL" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/floor,/area/atmos) "cKM" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/floor,/area/atmos) @@ -7712,14 +7711,14 @@ "cSp" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/closet/firecloset,/turf/simulated/floor,/area/atmos) "cSq" = (/turf/simulated/floor{icon_state = "red"; dir = 10},/area/atmos) "cSr" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "n2_in"; name = "Nitrogen Supply Control"; output_tag = "n2_out"; sensors = list("n2_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/visible/green{level = 2},/turf/simulated/floor{icon_state = "red"},/area/atmos) -"cSs" = (/obj/machinery/atmospherics/binary/valve/digital{name = "Nitrogen Outlet Valve"},/turf/simulated/floor{icon_state = "red"; dir = 6},/area/atmos) +"cSs" = (/obj/machinery/atmospherics/binary/valve/digital/open{name = "Nitrogen Outlet Valve"},/turf/simulated/floor{icon_state = "red"; dir = 6},/area/atmos) "cSt" = (/obj/machinery/light,/obj/machinery/atmospherics/binary/volume_pump/on{name = "Space Loop In"},/turf/simulated/floor,/area/atmos) "cSu" = (/obj/machinery/atmospherics/pipe/simple/visible/green{level = 2},/turf/simulated/floor{icon_state = "blue"; dir = 10},/area/atmos) "cSv" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "o2_in"; name = "Oxygen Supply Control"; output_tag = "o2_out"; sensors = list("o2_sensor" = "Tank")},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/atmos) -"cSw" = (/obj/machinery/atmospherics/binary/valve/digital{name = "Oxygen Outlet Valve"},/turf/simulated/floor{icon_state = "blue"; dir = 6},/area/atmos) +"cSw" = (/obj/machinery/atmospherics/binary/valve/digital/open{name = "Oxygen Outlet Valve"},/turf/simulated/floor{icon_state = "blue"; dir = 6},/area/atmos) "cSx" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{level = 2},/turf/simulated/floor{icon_state = "arrival"; dir = 10},/area/atmos) "cSy" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1443; input_tag = "air_in"; name = "Mixed Air Supply Control"; output_tag = "air_out"; pressure_setting = 2000; sensors = list("air_sensor" = "Tank")},/turf/simulated/floor{icon_state = "arrival"},/area/atmos) -"cSz" = (/obj/machinery/camera{c_tag = "Atmospherics South-East"; dir = 1; network = list("SS13")},/obj/machinery/atmospherics/binary/valve/digital{name = "Mixed Air Outlet Valve"},/turf/simulated/floor{icon_state = "arrival"; dir = 6},/area/atmos) +"cSz" = (/obj/machinery/camera{c_tag = "Atmospherics South-East"; dir = 1; network = list("SS13")},/obj/machinery/atmospherics/binary/valve/digital/open{name = "Mixed Air Outlet Valve"},/turf/simulated/floor{icon_state = "arrival"; dir = 6},/area/atmos) "cSA" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/atmos) "cSB" = (/turf/simulated/floor/plating/airless,/obj/structure/cable,/obj/machinery/power/tracker,/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk1"; icon_state = "catwalk1"},/area/solar/starboard) "cSC" = (/obj/machinery/floodlight,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/storage/secure) @@ -8099,12 +8098,12 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapsapsapsapsapsaaaaaaaaaaaaaaaaaaajjaaaalSalTalTalTalTalUalValWalXalXalXalXalYaaaacGaaaaaaaaaamNaptaptapuamNaaaaaaaaaapvapwapxapyapzapAapAapAapBapBapBapBapCapDapEapEapEapFapGapHapFapEapEapEapIapJapKapLapMapKapNapJapOapOapOapPapQapOapRapSapTapUapVapWapXapmapnapYapYamKapZapZapZamKaqaamKaabaloaabaaaajkajPajmaaaaaaajkajPajmaaaaaaajkajPajmaabaabaaaaabaiIaabaaaaaaagQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapsapsapsapsapsaaaaaaaaaaaaaaaaaaacGaqbamLamLamLamLamLaaaamMaaaamLamLamLamLamLaabacGaaaaaaaaaanwaqcaptaqdamNamRaqeaoEaqfaqgaqhaqiaqjaqkaqlaqmapBaqnaqoaqpaqqaqraqsaqtaquaqvaqwaqxaqyaqzaqAaqsaqBaqCaqDaqEaqFaqGaqHaqCapOaqIaqJaqKaqLapOaqMaqNaqOaqPaqQaqRapXapmaqSaqTaqUaqVaqWaqWaqXamKaqYamKaabaloaabaaaajkajPajmaaaaaaajkajPajmaaaaaaajkajPajmaaaaaaaaaaabaloaabaaaaaaaqZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapsapsapsapsapsaaaaaaaaaaaaaaaaaaacGaaaaaaaaaaabaaaaaaaaaanvaaaaaaaaaaabaaaaaaaaaacGaaaaaaaaaamNaraaptaptarbarcardarearfarganLarharianGanGarjapBarkarlarmarnaroarparqarrarsartaruarvarrarwarxaryarzarAarBarCarDarEarFarGarHarIarJarKapOarLarMarMarNarMarOapXapmaovaovaovaovarPaovarQarRarSamKakBarTakEaaaaaaaiIaabaabaabaabaiIaabaabaabaabaiIaabaabaabaabarUarVakEaabaaaagQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapsapsapsapsapsaaaaaaaaaaaaaaaaaaacGaabalpalpalpalpalpaaaamMaaaalpalpalpalpalpaabacGaaaaaaaaaamNarWarWarWamNamRamSamSamSarXarYaoMarZasaanGasbapBascasdaseasfasgashasiasjaskaslasmasnasoaspashasqarFasrassastasrarEasuapOasvaswasxasyapOaszasAarMarNarMasBapXasCasDasEasFasEasGasHamKamKapnamKaloasIasJakCakCarTakCakCakCakCarTakCakCakCakCarTakCakCakCasKasLasIaloaabaaaagQaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaaaasMasMasNasNasNasNasNasNasMasMaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapsapsapsapsapsaaaaaaaaaaaaaaaaaaacGaabalpalpalpalpalpaaaamMaaaalpalpalpalpalpaabacGaaaaaaaaaamNarWarWarWamNamRamSamSamSarXarYaoMarZasaanGasbapBascasdaseasfasgashasiasjaskaslasmasnasoaspashasqarFasrassastasrarEasuapOarGaswasxasyapOaszasAarMarNarMasBapXasCasDasEasFasEasGasHamKamKapnamKaloasIasJakCakCarTakCakCakCakCarTakCakCakCakCarTakCakCakCasKasLasIaloaabaaaagQaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaaaasMasMasNasNasNasNasNasNasMasMaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapsapsapsapsapsaaaaaaaaaaaaaaaaaaacGaaaalSalTalTalTalTalUalValWalXalXalXalXalYaaaacGaaaaaaaaaasOasPasPasPasQasRaaaaaaapwapwapwapwapwasSanGasTasUapBapBapBasVasWapEapEapEapEasXasYapEapEapEasZataatbatcatdateatfatgathapOatiatjatkatlatmatnatoatpatqarMatrapXatsattatuatvatwatxatyatzatAatBamKatCarTatDaabaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabatEatFatDaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabasMasMatGatHatIatJatKatLatMatIasMasMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapsapsapsapsapsaaaaaaaaaaaaaaaaaaaabatNamLamLamLamLamLaaaamMaaaamLamLamLamLamLaabacGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapwatOanGasTasUatPaqoaqpaqqaqraqsatQaquatRatSatTatUatVatWaqsatXatYatZauaaubaubaucaudapOaueaufaugauhapOauiaujaukarNarMaulapXatsarPattattattaumaovaunauoaupamKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaabaabaabaabauqaabaabaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaasMasMasMasMauratJausatJausautatJatJatJauuasMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapsapsapsapsapsaaaaaaaaaaaaaaaaaaacGaaaaaaaabaaaaabaaaaaaauvaaaaaaaabaaaaabaaaaaaacGaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaapwauwanGauxasUarkauyauzauAauBauCauDauEauFauGauHauIauJauKauLauMauNauNauOauNauNauPauQauRauSauTapOauUapOauVauWauXauYauZavaapXatsavbavcavcavcavdaveavfavgavhamKaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaabaabaabaviaabaabaaaaaaaabaaaaabaabaaaaaaaaaaaaaaaaaaaaaasMavjavkavlavmavnavoavpatJatJavqavratJavsasMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapsapsapsapsapsaaaaaaaaaaaaaaaaaaacGacGacGaabaabaabaabavtavuavtaabaabaabaabacGacGacGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapwavvanGavwasUascavxavyavzavAashasiavBashavCavDashavEaspashavFavGavHavGavGavHavGavIapOatiavJapOavKapOavLavMavNavOavPavQavRavSavTavUavUavUavVavWavXavYavYavYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaabaabavZawaavZaabaabaaaaabaaaaaaaabaabaaaaaaaaaaaaaaaaaaasMawbawcawdaweawfawgatJatJatJawhawiatJawjasMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapsapsapsapsapsaaaaahaaaaaaaaaaaaaabaaaaabaaaaaaaabaaaavtawkawlaaaaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawmawmawmawmawmawmapwapwawnapwasUasUasUawoawpawqawrawrawsawrawsawrawrawtasZasZawuawvawwawxawvawwawxawyawzawzawzawzawzapOawAawBawCawCawDawCawEawFavUawGawHawIavVawJawKawLawMavWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaabaaaavZawNavZaaaaabaaaaabaaaaaaaaaaabaabaaaaaaaaaaaaaaaasMawOawPavlawQawRawSawTatJawUawVawWawXasMawYaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapsapsapsapsapsaaaaahaaaaaaaaaaaaaabaaaaabaaaaaaaabaaaavtawkawlaaaaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawmawmawmawmawmawmapwapwawnapwasUasUasUawoawpawqawrawrawsawrawsawrawrawtasZasZasvawvawwawuawvawwawuawyawzawzawzawzawzapOawAawBawCawCawDawCawEawFavUawGawHawIavVawJawKawLawMavWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaabaaaavZawNavZaaaaabaaaaabaaaaaaaaaaabaabaaaaaaaaaaaaaaaasMawOawPavlawQawRawSawTatJawUawVawWawXasMawYaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapsapsapsapsapsaaaaaaaaaaaaaaaaaaaabaaaaabaaaaaaaabavtavtawZaxaavtaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawmaxbaxcaxdaxeaxfaxgaxhaxiaxhaxjaxhaxhaxkaxlaxlaxlaxlaxlaxmaxnaxoaxlaxlaxlaxlaxpaxlaxlaxlaxlaxqaxraxsaxtaxuaxvaxwaxxapWaxyaxzaxAaxBaxCaxDaxEaxFavUaxGaxHaxIavVaxJaxKaxJaxLavWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaabavZavZaxMavZavZaabaaaaabaaaaaaaaaaaaaabaabaaaaaaaaaaaaasMaxNaxOavlasMavlavlaxPaxQasMasMasMasMasMasMaabaabaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapsapsapsaaaaaaaaaaaaaaaaaaaabaabaaaaabaaaaaaaabaxRaxSaxTaxUaxRaxVaxVaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawmaxWaxXaxYaxZayaaybaycaydayeayfaxqaxqaygaxqaxqaxqaxqaxqayhaxqaxqaxqaxqaxqaxqayiaxqaxqaxqaxqayjaxqaykaxqaylaxqaymaynapWayoaypayqayraysaytaxEayuavUayvaywayxayyayzayAayBawMavWaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaabayCayDayEayFayCaabaaaaabaaaaaaaabaaaaaaaabaabaaaaaaayGasMavlasMavlayHayIayHayJayHayHayHayKayGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxVaxVaxVaxVaxVaabaabaxRayLayMayNaxRayOaxVaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawmayPayQayRaySayTawmayUayVayWayXayYayZazaazbazcayXayXayXazdayXayXayXayXayXayXazeazfazgazgazgazhaziazjaziazkazlazmaznapWazoazoazoazoazoazoaxEaxFavUazpaxHazqavVaxJazraxJaxLavWaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabayCazsaztazuayCaabaaaaabaaaaaaaabaaaaaaayGazvayGazvayGayKayHayHayHayHayHayHayHayHayHazwazxayGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -8270,3 +8269,4 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} + diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/ATMOSPHERICS/atmospherics.dm index 5748857bbf3..3db4914cb35 100644 --- a/code/ATMOSPHERICS/atmospherics.dm +++ b/code/ATMOSPHERICS/atmospherics.dm @@ -145,7 +145,7 @@ Pipelines + Other Objects -> Pipe network /obj/machinery/atmospherics/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) if(can_unwrench && istype(W, /obj/item/weapon/wrench)) var/turf/T = get_turf(src) - if (level==1 && isturf(T) && T.intact) + if (level == 1 && isturf(T) && T.intact) user << "You must remove the plating first." return 1 var/datum/gas_mixture/int_air = return_air() diff --git a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm index 283dbba4955..9fe7885c052 100644 --- a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm +++ b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm @@ -3,7 +3,6 @@ // Uses no power but can not transfer gases from a low pressure area to a high pressure area icon = 'icons/atmos/passive_gate.dmi' icon_state = "map" - level = 1 name = "passive gate" desc = "A one-way air valve that does not require power" diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm index 38fe1b6c93d..f091135940b 100644 --- a/code/ATMOSPHERICS/components/binary_devices/pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm @@ -15,8 +15,7 @@ Thus, the two variables affect pump operation are set in New(): /obj/machinery/atmospherics/binary/pump icon = 'icons/atmos/pump.dmi' icon_state = "map_off" - level = 1 - + name = "gas pump" desc = "A pump" diff --git a/code/ATMOSPHERICS/components/binary_devices/valve.dm b/code/ATMOSPHERICS/components/binary_devices/valve.dm index 048d52d2a7a..a46382ab085 100644 --- a/code/ATMOSPHERICS/components/binary_devices/valve.dm +++ b/code/ATMOSPHERICS/components/binary_devices/valve.dm @@ -6,8 +6,6 @@ desc = "A pipe valve" can_unwrench = 1 - - level = 1 var/open = 0 diff --git a/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm b/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm index 86736cd7c78..c697251bc44 100644 --- a/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm @@ -15,7 +15,6 @@ Thus, the two variables affect pump operation are set in New(): /obj/machinery/atmospherics/binary/volume_pump icon = 'icons/atmos/volume_pump.dmi' icon_state = "map_off" - level = 1 name = "volumetric gas pump" desc = "A volumetric pump" diff --git a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm index ad58aff1014..55216a5a5c2 100644 --- a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm +++ b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm @@ -7,7 +7,6 @@ icon_state = "base" use_power = 1 initialize_directions = 0 - level = 1 can_unwrench = 1 diff --git a/code/ATMOSPHERICS/components/trinary_devices/filter.dm b/code/ATMOSPHERICS/components/trinary_devices/filter.dm index d75c479ff10..7ec6d70d119 100755 --- a/code/ATMOSPHERICS/components/trinary_devices/filter.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/filter.dm @@ -1,8 +1,6 @@ /obj/machinery/atmospherics/trinary/filter icon = 'icons/atmos/filter.dmi' icon_state = "map" - density = 0 - level = 1 can_unwrench = 1 @@ -26,7 +24,7 @@ Filter types: var/frequency = 0 var/datum/radio_frequency/radio_connection -/obj/machinery/atmospherics/trinary/mixer/flipped +/obj/machinery/atmospherics/trinary/filter/flipped icon_state = "mmap" flipped = 1 diff --git a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm index 9d88e6d1e8d..cd219cd6f4e 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm @@ -1,8 +1,6 @@ /obj/machinery/atmospherics/trinary/mixer icon = 'icons/atmos/mixer.dmi' icon_state = "map" - density = 0 - level = 1 can_unwrench = 1 diff --git a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm index a16f62ab5f9..a008b8886d5 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm @@ -21,15 +21,28 @@ /obj/machinery/atmospherics/trinary/New() ..() - switch(dir) - if(NORTH) - initialize_directions = EAST|NORTH|SOUTH - if(SOUTH) - initialize_directions = SOUTH|WEST|NORTH - if(EAST) - initialize_directions = EAST|WEST|SOUTH - if(WEST) - initialize_directions = WEST|NORTH|EAST + + if(!flipped) + switch(dir) + if(NORTH) + initialize_directions = EAST|NORTH|SOUTH + if(SOUTH) + initialize_directions = SOUTH|WEST|NORTH + if(EAST) + initialize_directions = EAST|WEST|SOUTH + if(WEST) + initialize_directions = WEST|NORTH|EAST + else + switch(dir) + if(NORTH) + initialize_directions = SOUTH|NORTH|WEST + if(SOUTH) + initialize_directions = NORTH|SOUTH|EAST + if(EAST) + initialize_directions = WEST|EAST|NORTH + if(WEST) + initialize_directions = EAST|WEST|SOUTH + air1 = new air2 = new air3 = new @@ -65,14 +78,17 @@ //Node 2 is filtered output //Node 3 is rest output //If we flip the filter, 1 and 3 shall exchange positions + + if(can_unwrench) // Overridden here to avoid having to snowflake the flipped/icon_state on the construction + qdel(stored) + stored = new(src, make_from = src) var/node1_connect = turn(dir, -180) var/node2_connect = turn(dir, -90) var/node3_connect = dir if(flipped) - node1_connect = turn(node1_connect, 180) - node3_connect = turn(node3_connect, 180) + node2_connect = turn(node2_connect, -180) for(var/obj/machinery/atmospherics/target in get_step(src,node1_connect)) if(target.initialize_directions & get_dir(target,src)) diff --git a/code/ATMOSPHERICS/components/trinary_devices/tvalve.dm b/code/ATMOSPHERICS/components/trinary_devices/tvalve.dm index 6d3f2843058..7e91c931f16 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/tvalve.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/tvalve.dm @@ -10,19 +10,29 @@ can_unwrench = 1 - level = 1 - var/state = TVALVE_STATE_STRAIGHT /obj/machinery/atmospherics/trinary/tvalve/bypass icon_state = "map_tvalve1" state = TVALVE_STATE_SIDE +/obj/machinery/atmospherics/trinary/tvalve/flipped + icon_state = "map_tvalvem0" + flipped = 1 + +/obj/machinery/atmospherics/trinary/tvalve/flipped/bypass + icon_state = "map_tvalvem1" + flipped = 1 + state = TVALVE_STATE_SIDE + /obj/machinery/atmospherics/trinary/tvalve/update_icon(animation) + var/flipstate = "" + if(flipped) + flipstate = "m" if(animation) - flick("tvalve[src.state][!src.state]",src) + flick("tvalve[flipstate][src.state][!src.state]",src) else - icon_state = "tvalve[state]" + icon_state = "tvalve[flipstate][state]" /obj/machinery/atmospherics/trinary/tvalve/update_underlays() if(..()) @@ -32,7 +42,10 @@ return add_underlay(T, node1, turn(dir, -180)) - add_underlay(T, node2, turn(dir, -90)) + if(flipped) + add_underlay(T, node2, turn(dir, 90)) + else + add_underlay(T, node2, turn(dir, -90)) add_underlay(T, node3, dir) @@ -93,6 +106,15 @@ /obj/machinery/atmospherics/trinary/tvalve/digital/bypass icon_state = "map_tvalve1" state = TVALVE_STATE_SIDE + +/obj/machinery/atmospherics/trinary/tvalve/digital/flipped + icon_state = "map_tvalvem0" + flipped = 1 + +/obj/machinery/atmospherics/trinary/tvalve/digital/flipped/bypass + icon_state = "map_tvalvem1" + flipped = 1 + state = TVALVE_STATE_SIDE /obj/machinery/atmospherics/trinary/tvalve/digital/power_change() var/old_stat = stat diff --git a/code/ATMOSPHERICS/components/unary_devices/heat_source.dm b/code/ATMOSPHERICS/components/unary_devices/heat_source.dm index b18e5648eac..79078b66f6f 100644 --- a/code/ATMOSPHERICS/components/unary_devices/heat_source.dm +++ b/code/ATMOSPHERICS/components/unary_devices/heat_source.dm @@ -1,6 +1,4 @@ /obj/machinery/atmospherics/unary/heat_reservoir -//currently the same code as cold_sink but anticipating process() changes - icon = 'icons/obj/atmospherics/cold_sink.dmi' icon_state = "intact_off" density = 1 diff --git a/code/ATMOSPHERICS/components/unary_devices/outlet_injector.dm b/code/ATMOSPHERICS/components/unary_devices/outlet_injector.dm index 08e2712f38f..92bdee806bf 100644 --- a/code/ATMOSPHERICS/components/unary_devices/outlet_injector.dm +++ b/code/ATMOSPHERICS/components/unary_devices/outlet_injector.dm @@ -22,8 +22,6 @@ var/datum/radio_frequency/radio_connection Mtoollink = 1 settagwhitelist = list("id_tag") - - level = 1 /obj/machinery/atmospherics/unary/outlet_injector/on on = 1 diff --git a/code/ATMOSPHERICS/components/unary_devices/portables_connector.dm b/code/ATMOSPHERICS/components/unary_devices/portables_connector.dm index ef26254c027..b9399f42e6c 100644 --- a/code/ATMOSPHERICS/components/unary_devices/portables_connector.dm +++ b/code/ATMOSPHERICS/components/unary_devices/portables_connector.dm @@ -11,8 +11,6 @@ var/obj/machinery/portable_atmospherics/connected_device var/on = 0 - use_power = 0 - level = 1 /obj/machinery/atmospherics/unary/portables_connector/Destroy() if(connected_device) diff --git a/code/ATMOSPHERICS/components/unary_devices/tank.dm b/code/ATMOSPHERICS/components/unary_devices/tank.dm index 465fc1103d9..88f32eba44a 100644 --- a/code/ATMOSPHERICS/components/unary_devices/tank.dm +++ b/code/ATMOSPHERICS/components/unary_devices/tank.dm @@ -7,7 +7,6 @@ var/volume = 10000 //in liters, 1 meters by 1 meters by 2 meters ~tweaked it a little to simulate a pressure tank without needing to recode them yet - level = 1 density = 1 /obj/machinery/atmospherics/unary/tank/update_underlays() diff --git a/code/ATMOSPHERICS/components/unary_devices/thermal_plate.dm b/code/ATMOSPHERICS/components/unary_devices/thermal_plate.dm index b0be337687a..6cbaa60e6b6 100644 --- a/code/ATMOSPHERICS/components/unary_devices/thermal_plate.dm +++ b/code/ATMOSPHERICS/components/unary_devices/thermal_plate.dm @@ -1,16 +1,13 @@ #define RADIATION_CAPACITY 30000 //Radiation isn't particularly effective (TODO BALANCE) - - /obj/machinery/atmospherics/unary/thermal_plate //Based off Heat Reservoir and Space Heater //Transfers heat between a pipe system and environment, based on which has a greater thermal energy concentration icon = 'icons/obj/atmospherics/cold_sink.dmi' icon_state = "off" - level = 1 can_unwrench = 1 - name = "Thermal Transfer Plate" + name = "thermal tansfer plate" desc = "Transfers heat to and from an area" /obj/machinery/atmospherics/unary/thermal_plate/update_icon() diff --git a/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm b/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm index c2d49512dd9..3df03bebde7 100644 --- a/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm @@ -7,14 +7,13 @@ icon = 'icons/atmos/vent_pump.dmi' icon_state = "map_vent" - name = "Air Vent" + name = "air vent" desc = "Has a valve and pump attached to it" use_power = 1 can_unwrench = 1 var/area/initial_loc - level = 1 var/area_uid var/id_tag = null diff --git a/code/ATMOSPHERICS/components/unary_devices/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary_devices/vent_scrubber.dm index 87a45435196..cc62e860bde 100644 --- a/code/ATMOSPHERICS/components/unary_devices/vent_scrubber.dm +++ b/code/ATMOSPHERICS/components/unary_devices/vent_scrubber.dm @@ -4,14 +4,13 @@ req_one_access_txt = "24;10" - name = "Air Scrubber" + name = "air scrubber" desc = "Has a valve and pump attached to it" use_power = 1 idle_power_usage = 10 active_power_usage = 60 - level = 1 can_unwrench = 1 var/area/initial_loc diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 8f9802f840a..48d1b27d9bd 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -929,8 +929,9 @@ About the new airlock wires panel: operating = 0 air_update_turf(1) update_freelok_sight() - if(locate(/mob/living) in get_turf(src)) - open() + if(safe) + if(locate(/mob/living) in get_turf(src)) + open() return diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index 6a3783a5cd6..667602686b5 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -16,7 +16,7 @@ #define PIPE_PASSIVE_GATE 15 #define PIPE_VOLUME_PUMP 16 #define PIPE_HEAT_EXCHANGE 17 -#define PIPE_MTVALVE 18 +#define PIPE_TVALVE 18 #define PIPE_MANIFOLD4W 19 #define PIPE_CAP 20 #define PIPE_OMNI_MIXER 21 @@ -117,7 +117,7 @@ else if(istype(make_from, /obj/machinery/atmospherics/trinary/tvalve/digital)) src.pipe_type = PIPE_DTVALVE else if(istype(make_from, /obj/machinery/atmospherics/trinary/tvalve)) - src.pipe_type = PIPE_MTVALVE + src.pipe_type = PIPE_TVALVE else if(istype(make_from, /obj/machinery/atmospherics/pipe/manifold4w/visible/supply) || istype(make_from, /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply)) src.pipe_type = PIPE_SUPPLY_MANIFOLD4W connect_types = list(2) @@ -152,7 +152,6 @@ var/obj/machinery/atmospherics/trinary/triP = make_from if(istype(triP) && triP.flipped) src.flipped = 1 - src.dir = turn(src.dir, -45) else src.pipe_type = pipe_type @@ -166,13 +165,13 @@ else if (pipe_type == PIPE_UNIVERSAL) connect_types = list(1,2,3) //src.pipe_dir = get_pipe_dir() - update() + update(make_from) src.pixel_x = rand(-5, 5) src.pixel_y = rand(-5, 5) //update the name and icon of the pipe item depending on the type -/obj/item/pipe/proc/update() +/obj/item/pipe/proc/update(var/obj/machinery/atmospherics/make_from) var/list/nlist = list( \ "pipe", \ "bent pipe", \ @@ -234,7 +233,7 @@ "passivegate", \ "volumepump", \ "heunary", \ - "mtvalve", \ + "tvalve", \ "manifold4w", \ "cap", \ "omni_mixer", \ @@ -257,6 +256,9 @@ "dtvalve", \ ) icon_state = islist[pipe_type + 1] + var/obj/machinery/atmospherics/trinary/triP = make_from + if(istype(triP) && triP.flipped) + icon_state = "m_[icon_state]" //called when a turf is attacked with a pipe item // place the pipe on the turf, setting pipe level to 1 (underfloor) if the turf is not intact @@ -288,11 +290,14 @@ set name = "Flip Pipe" set src in view(1) - if ( usr.stat || usr.restrained() ) + if (usr.stat || usr.restrained()) return - if (pipe_type in list(PIPE_GAS_FILTER, PIPE_GAS_MIXER)) - src.dir = turn(src.dir, flipped ? 45 : -45) + if (pipe_type in list(PIPE_GAS_FILTER, PIPE_GAS_MIXER, PIPE_TVALVE, PIPE_DTVALVE)) + if(flipped) + icon_state = copytext(icon_state,3) + else + icon_state = "m_[icon_state]" flipped = !flipped return @@ -307,8 +312,6 @@ if ((pipe_type in list (PIPE_SIMPLE_BENT, PIPE_SUPPLY_BENT, PIPE_SCRUBBERS_BENT, PIPE_HE_BENT, PIPE_INSULATED_BENT)) \ && (src.dir in cardinal)) src.dir = src.dir|turn(src.dir, 90) - else if ((pipe_type in list(PIPE_GAS_FILTER, PIPE_GAS_MIXER)) && flipped) - src.dir = turn(src.dir, 45+90) else if (pipe_type in list (PIPE_SIMPLE_STRAIGHT, PIPE_SUPPLY_STRAIGHT, PIPE_SCRUBBERS_STRAIGHT, PIPE_UNIVERSAL, PIPE_HE_STRAIGHT, PIPE_INSULATED_STRAIGHT, PIPE_MVALVE, PIPE_DVALVE)) if(dir==2) dir = 1 @@ -354,8 +357,11 @@ return dir|flip|cw|acw if(PIPE_MANIFOLD, PIPE_SUPPLY_MANIFOLD, PIPE_SCRUBBERS_MANIFOLD) return flip|cw|acw - if(PIPE_GAS_FILTER, PIPE_GAS_MIXER, PIPE_MTVALVE, PIPE_DTVALVE) - return dir|flip|cw + if(PIPE_GAS_FILTER, PIPE_GAS_MIXER, PIPE_TVALVE, PIPE_DTVALVE) + if(!flipped) + return dir|flip|cw + else + return flip|cw|acw if(PIPE_CAP, PIPE_SUPPLY_CAP, PIPE_SCRUBBERS_CAP) return dir return 0 @@ -506,28 +512,21 @@ V.name = pipename V.construction(dir, get_pdir(), color) - if(PIPE_MTVALVE) - var/obj/machinery/atmospherics/trinary/tvalve/V = new( src.loc ) - if (pipename) - V.name = pipename - V.construction(dir, pipe_dir, color) - - if(PIPE_DTVALVE) - var/obj/machinery/atmospherics/trinary/tvalve/digital/V = new( src.loc ) - if (pipename) - V.name = pipename - V.construction(dir, pipe_dir, color) - if(PIPE_PUMP) //gas pump var/obj/machinery/atmospherics/binary/pump/P = new(src.loc) P.construction(dir, pipe_dir, color) - if(PIPE_GAS_FILTER, PIPE_GAS_MIXER) + if(PIPE_GAS_FILTER, PIPE_GAS_MIXER, PIPE_TVALVE, PIPE_DTVALVE) var/obj/machinery/atmospherics/trinary/P - if(pipe_type == PIPE_GAS_FILTER) - P = new /obj/machinery/atmospherics/trinary/filter(src.loc) - else if(pipe_type == PIPE_GAS_MIXER) - P = new /obj/machinery/atmospherics/trinary/mixer(src.loc) + switch(pipe_type) + if(PIPE_GAS_FILTER) + P = new /obj/machinery/atmospherics/trinary/filter(src.loc) + if(PIPE_GAS_MIXER) + P = new /obj/machinery/atmospherics/trinary/mixer(src.loc) + if(PIPE_TVALVE) + P = new /obj/machinery/atmospherics/trinary/tvalve(src.loc) + if(PIPE_DTVALVE) + P = new /obj/machinery/atmospherics/trinary/tvalve/digital(src.loc) P.flipped = flipped if (pipename) P.name = pipename @@ -666,7 +665,7 @@ #undef PIPE_PASSIVE_GATE #undef PIPE_VOLUME_PUMP #undef PIPE_HEAT_EXCHANGE -#undef PIPE_MTVALVE +#undef PIPE_TVALVE #undef PIPE_MANIFOLD4W #undef PIPE_CAP #undef PIPE_OMNI_MIXER diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index b58c9a215d8..d5e1bd9d90e 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -392,6 +392,29 @@ var/list/turret_icons attacked = 0 ..() + +/obj/machinery/porta_turret/attack_animal(mob/living/simple_animal/M) + M.changeNext_move(CLICK_CD_MELEE) + M.do_attack_animation(src) + if(M.melee_damage_upper == 0) + return + if(!(stat & BROKEN)) + visible_message("[M] [M.attacktext] [src]!") + take_damage(M.melee_damage_upper) + else + M << "That object is useless to you." + return + +/obj/machinery/porta_turret/attack_alien(mob/living/carbon/alien/humanoid/M) + M.changeNext_move(CLICK_CD_MELEE) + M.do_attack_animation(src) + if(!(stat & BROKEN)) + playsound(src.loc, 'sound/weapons/slash.ogg', 25, 1, -1) + visible_message("[M] has slashed at [src]!") + take_damage(15) + else + M << "That object is useless to you." + return /obj/machinery/porta_turret/emag_act(user as mob) if(!emagged) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 80ee405c026..24fd10d631d 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -45,6 +45,7 @@ var/siemens_coefficient = 1 // for electrical admittance/conductance (electrocution checks and shit) var/slowdown = 0 // How much clothing is slowing you down. Negative values speeds you up var/armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + var/armour_penetration = 0 //percentage of armour effectiveness to remove var/list/allowed = null //suit storage stuff. var/obj/item/device/uplink/hidden/hidden_uplink = null // All items can have an uplink hidden inside, just remember to add the triggers. diff --git a/code/game/objects/items/devices/pipe_painter.dm b/code/game/objects/items/devices/pipe_painter.dm index 678cf8c057a..47e88049b65 100644 --- a/code/game/objects/items/devices/pipe_painter.dm +++ b/code/game/objects/items/devices/pipe_painter.dm @@ -20,13 +20,13 @@ var/turf/T = P.loc if (P.level < 2 && T.level==1 && isturf(T) && T.intact) - user << "\red You must remove the plating first." + user << "You must remove the plating first." return P.change_color(pipe_colors[mode]) /obj/item/device/pipe_painter/attack_self(mob/user as mob) - mode = input("Which colour do you want to use?", "Pipe painter", mode) in modes + mode = input("Which colour do you want to use?", "Pipe Painter", mode) in modes /obj/item/device/pipe_painter/examine(mob/user) ..(user) diff --git a/code/game/objects/items/random_items.dm b/code/game/objects/items/random_items.dm index d9e06c361b0..81d9a7769e5 100644 --- a/code/game/objects/items/random_items.dm +++ b/code/game/objects/items/random_items.dm @@ -89,7 +89,7 @@ icon = 'icons/obj/drinks.dmi' New() ..() - var/list/drinks_only = list("beer2","hot_coco","orangejuice","tomatojuice","limejuice","carrotjuice","berryjuice","poisonberryjuice","watermelonjuice","lemonjuice","banana","nothing","potato","milk","soymilk","cream","coffee","tea","icecoffee","icetea","cola","nuka_cola","spacemountainwind","thirteenloko","dr_gibb","space_up","lemon_lime","beer","whiskey","gin","rum","vodka","holywater","tequilla","vermouth","wine","tonic","kahlua","cognac","hooch","ale","sodawater","ice","bilk","atomicbomb","threemileisland","goldschlager","patron","gintonic","cubalibre","whiskeycola","martini","vodkamartini","whiterussian","screwdrivercocktail","booger","bloodymary","gargleblaster","bravebull","tequillasunrise","toxinsspecial","beepskysmash","salglu_solution","irishcream","manlydorf","longislandicedtea","moonshine","b52","irishcoffee","margarita","blackrussian","manhattan","manhattan_proj","whiskeysoda","antifreeze","barefoot","snowwhite","demonsblood","vodkatonic","ginfizz","bahama_mama","singulo","sbiten","devilskiss","red_mead","mead","iced_beer","grog","aloe","andalusia","alliescocktail","soy_latte","cafe_latte","acidspit","amasec","neurotoxin","hippiesdelight","bananahonk","silencer","changelingsting","irishcarbomb","syndicatebomb","erikasurprise","driestmartini") + var/list/drinks_only = list("beer2","hot_coco","orangejuice","tomatojuice","limejuice","carrotjuice","berryjuice","poisonberryjuice","watermelonjuice","lemonjuice","banana","nothing","potato","milk","soymilk","cream","coffee","tea","icecoffee","icetea","cola","nuka_cola","spacemountainwind","thirteenloko","dr_gibb","space_up","lemon_lime","beer","whiskey","gin","rum","vodka","holywater","tequilla","vermouth","wine","tonic","kahlua","cognac","ale","sodawater","ice","bilk","atomicbomb","threemileisland","goldschlager","patron","gintonic","cubalibre","whiskeycola","martini","vodkamartini","whiterussian","screwdrivercocktail","booger","bloodymary","gargleblaster","bravebull","tequillasunrise","toxinsspecial","beepskysmash","salglu_solution","irishcream","manlydorf","longislandicedtea","moonshine","b52","irishcoffee","margarita","blackrussian","manhattan","manhattan_proj","whiskeysoda","antifreeze","barefoot","snowwhite","demonsblood","vodkatonic","ginfizz","bahama_mama","singulo","sbiten","devilskiss","red_mead","mead","iced_beer","grog","aloe","andalusia","alliescocktail","soy_latte","cafe_latte","acidspit","amasec","neurotoxin","hippiesdelight","bananahonk","silencer","changelingsting","irishcarbomb","syndicatebomb","erikasurprise","driestmartini") if(prob(50)) drinks_only += list("pancuronium","adminordrazine","lsd","omnizine","blood") diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 60fd31ae47c..26757340fc8 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -456,7 +456,6 @@ var/list/wood_icons = list("wood","wood-broken") levelupdate() /turf/simulated/floor/attackby(obj/item/C as obj, mob/user as mob, params) - if(!C || !user) return 0 @@ -468,18 +467,18 @@ var/list/wood_icons = list("wood","wood-broken") qdel(C) T.state = C //fixing it by bashing it with a light bulb, fun eh? update_icon() - user << "\blue You replace the light bulb." + user << "You replace the light bulb." else - user << "\blue The lightbulb seems fine, no need to replace it." + user << "The light bulb seems fine, no need to replace it." if(istype(C, /obj/item/weapon/crowbar) && (!(is_plating())) && (!is_catwalk())) if(broken || burnt) - user << "\red You remove the broken plating." + user << "You remove the broken plating." else if(is_wood_floor()) - user << "\red You forcefully pry off the planks, destroying them in the process." + user << "You forcefully pry off the planks, destroying them in the process." else - user << "\red You remove the [floor_tile.name]." + user << "You remove the [floor_tile.name]." new floor_tile.type(src) make_plating() @@ -488,20 +487,19 @@ var/list/wood_icons = list("wood","wood-broken") return - if(istype(C, /obj/item/weapon/screwdriver)) if(is_wood_floor()) if(broken || burnt) return else if(is_wood_floor()) - user << "\red You unscrew the planks." + user << "You unscrew the planks." new floor_tile.type(src) make_plating() playsound(src, 'sound/items/Screwdriver.ogg', 80, 1) else if(is_catwalk()) if(broken) return - user << "\red You unscrew the catwalk's rods." + user << "You unscrew the catwalk's rods." new /obj/item/stack/rods(src, 2) ReplaceWithLattice() for(var/direction in cardinal) @@ -516,23 +514,23 @@ var/list/wood_icons = list("wood","wood-broken") var/obj/item/stack/rods/R = C if (is_plating()) if (R.amount >= 2) - user << "\blue Reinforcing the floor..." + user << "Reinforcing the floor..." if(do_after(user, 30, target = src) && R && R.amount >= 2 && is_plating()) ChangeTurf(/turf/simulated/floor/engine) playsound(src, 'sound/items/Deconstruct.ogg', 80, 1) R.use(2) return else - user << "\red You need more rods." + user << "You need more rods." else if (is_catwalk()) - user << "\red The entire thing is 100% rods already, it doesn't need any more." + user << "The entire thing is 100% rods already, it doesn't need any more." else - user << "\red You must remove the plating first." + user << "You must remove the plating first." return if(istype(C, /obj/item/stack/tile)) if (is_catwalk()) - user << "\red The catwalk is too primitive to support tiling." + user << "The catwalk is too primitive to support tiling." if(is_plating()) if(!broken && !burnt) var/obj/item/stack/tile/T = C @@ -558,7 +556,7 @@ var/list/wood_icons = list("wood","wood-broken") levelupdate() playsound(src, 'sound/weapons/Genhit.ogg', 50, 1) else - user << "\blue This section is too damaged to support a tile. Use a welder to fix the damage." + user << "This section is too damaged to support a tile. Use a welder to fix the damage." if(istype(C, /obj/item/stack/cable_coil)) @@ -566,29 +564,29 @@ var/list/wood_icons = list("wood","wood-broken") var/obj/item/stack/cable_coil/coil = C coil.turf_place(src, user) else - user << "\red You must remove the plating first." + user << "You must remove the plating first." if(istype(C, /obj/item/weapon/shovel)) if(is_grass_floor()) new /obj/item/weapon/ore/glass(src) new /obj/item/weapon/ore/glass(src) //Make some sand if you shovel grass - user << "\blue You shovel the grass." + user << "You shovel the grass." make_plating() else - user << "\red You cannot shovel this." + user << "You cannot shovel this." if(istype(C, /obj/item/weapon/weldingtool)) var/obj/item/weapon/weldingtool/welder = C if(welder.isOn() && (is_plating())) if(broken || burnt) if(welder.remove_fuel(0,user)) - user << "\red You fix some dents on the broken plating." + user << "You fix some dents on the broken plating." playsound(src, 'sound/items/Welder.ogg', 80, 1) icon_state = "plating" burnt = 0 broken = 0 else - user << "\blue You need more welding fuel to complete this task." + user << "You need more welding fuel to complete this task." if(istype(C,/obj/item/pipe)) var/obj/item/pipe/V = C @@ -597,7 +595,7 @@ var/list/wood_icons = list("wood","wood-broken") user.visible_message( \ "[user] starts sliding [P] along \the [src].", \ - "\blue You slide [P] along \the [src].", \ + "You slide [P] along \the [src].", \ "You hear the scrape of metal against something.") user.drop_item() if (P.pipe_type in list (1,3,12)) // bent pipe rotation fix see construction.dm diff --git a/code/modules/economy/Accounts_DB.dm b/code/modules/economy/Accounts_DB.dm index 1168a3f4bb6..2eb5a487bfd 100644 --- a/code/modules/economy/Accounts_DB.dm +++ b/code/modules/economy/Accounts_DB.dm @@ -11,6 +11,7 @@ var/datum/money_account/detailed_account_view var/creating_new_account = 0 var/activated = 1 + var/const/fund_cap = 1000000 light_color = LIGHT_COLOR_GREEN @@ -175,6 +176,10 @@ if("finalise_create_account") var/account_name = href_list["holder_name"] var/starting_funds = max(text2num(href_list["starting_funds"]), 0) + + starting_funds = Clamp(starting_funds, 0, station_account.money) // Not authorized to put the station in debt. + starting_funds = min(starting_funds, fund_cap) // Not authorized to give more than the fund cap. + create_account(account_name, starting_funds, src) if(starting_funds > 0) //subtract the money diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 3036d0252a8..39f526cb39b 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -262,7 +262,7 @@ emp_act else visible_message("\red [src] has been attacked in the [hit_area] with [I.name] by [user]!") - var/armor = run_armor_check(affecting, "melee", "Your armor has protected your [hit_area].", "Your armor has softened hit to your [hit_area].") + var/armor = run_armor_check(affecting, "melee", "Your armor has protected your [hit_area].", "Your armor has softened hit to your [hit_area].", armour_penetration = I.armour_penetration) var/weapon_sharp = is_sharp(I) var/weapon_edge = has_edge(I) if ((weapon_sharp || weapon_edge) && prob(getarmor(user.zone_sel.selecting, "melee"))) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 5737aad1c6c..07fa3470a66 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -10,8 +10,16 @@ 1 - halfblock 2 - fullblock */ -/mob/living/proc/run_armor_check(var/def_zone = null, var/attack_flag = "melee", var/absorb_text = null, var/soften_text = null) +/mob/living/proc/run_armor_check(var/def_zone = null, var/attack_flag = "melee", var/absorb_text = null, var/soften_text = null, armour_penetration, penetrated_text) var/armor = getarmor(def_zone, attack_flag) + + //the if "armor" check is because this is used for everything on /living, including humans + if(armor && armor < 100 && armour_penetration) // Armor with 100+ protection can not be penetrated for admin items + armor = max(0, armor - armour_penetration) + if(penetrated_text) + src << "[penetrated_text]" + else + src << "Your armor was penetrated!" if(armor >= 100) if(absorb_text) @@ -42,7 +50,7 @@ Stun(2) //Armor - var/armor = run_armor_check(def_zone, P.flag) + var/armor = run_armor_check(def_zone, P.flag, armour_penetration = P.armour_penetration) var/proj_sharp = is_sharp(P) var/proj_edge = has_edge(P) if ((proj_sharp || proj_edge) && prob(getarmor(def_zone, P.flag))) diff --git a/code/modules/ninja/energy_katana.dm b/code/modules/ninja/energy_katana.dm index ff56a80858b..309136dcba0 100644 --- a/code/modules/ninja/energy_katana.dm +++ b/code/modules/ninja/energy_katana.dm @@ -5,6 +5,7 @@ item_state = "energy_katana" force = 40 throwforce = 20 + armour_penetration = 15 var/cooldown = 0 // Because spam aint cool, yo. var/datum/effect/effect/system/spark_spread/spark_system diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index 50a64fccb71..0ac35dd1455 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -70,7 +70,7 @@ user << "\red You must hold \the [P] steady to burn \the [src]." /obj/item/weapon/photo/examine(mob/user) - if(..(user, 1)) + if(..(user, 1) || isobserver(user)) show(user) else user << "It is too far away." diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm index 647ac2b105b..8117ff8441c 100644 --- a/code/modules/projectiles/ammunition/ammo_casings.dm +++ b/code/modules/projectiles/ammunition/ammo_casings.dm @@ -24,7 +24,21 @@ desc = "A 9mm bullet casing." caliber = "9mm" projectile_type = "/obj/item/projectile/bullet/weakbullet3" + +/obj/item/ammo_casing/c9mmap + desc = "A 9mm bullet casing." + caliber = "9mm" + projectile_type =/obj/item/projectile/bullet/armourpiercing +/obj/item/ammo_casing/c9mmtox + desc = "A 9mm bullet casing." + caliber = "9mm" + projectile_type = /obj/item/projectile/bullet/toxinbullet + +/obj/item/ammo_casing/c9mminc + desc = "A 9mm bullet casing." + caliber = "9mm" + projectile_type = /obj/item/projectile/bullet/incendiary/firebullet /obj/item/ammo_casing/c45 desc = "A .45 bullet casing." diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index e47acf7521e..d84b9e9dc75 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -132,11 +132,23 @@ icon_state = "smg9mm" ammo_type = "/obj/item/ammo_casing/c9mm" caliber = "9mm" - max_ammo = 20 + max_ammo = 30 + +/obj/item/ammo_box/magazine/smgm9mm/ap + name = "SMG magazine (Armour Piercing 9mm)" + ammo_type = /obj/item/ammo_casing/c9mmap + +/obj/item/ammo_box/magazine/smgm9mm/toxin + name = "SMG magazine (Toxin Tipped 9mm)" + ammo_type = /obj/item/ammo_casing/c9mmtox + +/obj/item/ammo_box/magazine/smgm9mm/fire + name = "SMG Magazine (Incendiary 9mm)" + ammo_type = /obj/item/ammo_casing/c9mminc /obj/item/ammo_box/magazine/smgm9mm/update_icon() ..() - icon_state = "[initial(icon_state)]-[round(ammo_count(),5)]" + icon_state = "[initial(icon_state)]-[round(ammo_count(),6)]" /obj/item/ammo_box/magazine/smgm45 name = "SMG magazine (.45)" diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 63e1d384a4d..e23c8653667 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -27,6 +27,18 @@ /obj/item/projectile/bullet/weakbullet3 damage = 20 + + +/obj/item/projectile/bullet/toxinbullet + damage = 15 + damage_type = TOX + +/obj/item/projectile/bullet/incendiary/firebullet + damage = 10 + +/obj/item/projectile/bullet/armourpiercing + damage = 17 + armour_penetration = 10 /obj/item/projectile/bullet/pellet name = "pellet" diff --git a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm index b02289784a6..0cf90626ccc 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm @@ -53,7 +53,7 @@ var/mob/living/carbon/human/H = target var/headarmor = 0 // Target's head armour - armor_block = H.run_armor_check(affecting, "melee") // For normal attack damage + armor_block = H.run_armor_check(affecting, "melee", armour_penetration = armour_penetration) // For normal attack damage //If they have a hat/helmet and the user is targeting their head. if(istype(H.head, /obj/item/clothing/head) && affecting == "head") diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 545e22d0822..5c4ed5c4299 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -126,13 +126,34 @@ /datum/design/mag_smg name = "Saber Submachine Gun Magazine (9mm)" - desc = "A 20-round magazine for the Saber submachine gun." + desc = "A 30-round magazine for the Saber submachine gun." id = "mag_smg" req_tech = list("combat" = 4, "materials" = 3) build_type = PROTOLATHE materials = list(MAT_METAL = 2000) build_path = /obj/item/ammo_box/magazine/smgm9mm category = list("Weapons") + +/datum/design/mag_smg/ap_mag + name = "Saber Submachine Gun Magazine (9mmAP)" + desc = "A 30-round armour piercing magazine for the Saber submachine gun. Deals slightly less damage but bypasses most armor." + id = "mag_smg_ap" + materials = list(MAT_METAL = 3000, MAT_SILVER = 100) + build_path = /obj/item/ammo_box/magazine/smgm9mm/ap + +/datum/design/mag_smg/incin_mag + name = "Saber Submachine Gun Magazine (9mmIC)" + desc = "A 30-round incendiary round magazine for the Saber submachine gun. Deals significantly less damage but sets the target on fire." + id = "mag_smg_ic" + materials = list(MAT_METAL = 3000, MAT_SILVER = 100, MAT_GLASS = 400) + build_path = /obj/item/ammo_box/magazine/smgm9mm/fire + +/datum/design/mag_smg/incin_tox + name = "Saber Submachine Gun Magazine (9mmTX)" + desc = "A 30-round uranium tipped round magazine for the Saber submachine gun. Deals toxin damage, but less overall damage." + id = "mag_smg_tx" + materials = list(MAT_METAL = 3000, MAT_GLASS = 200, MAT_URANIUM = 1000) + build_path = /obj/item/ammo_box/magazine/smgm9mm/toxin /datum/design/rapidsyringe name = "Rapid Syringe Gun" diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 7978b514703..add4c667b0b 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi index c49dbe8cb59..9675d99379b 100644 Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ diff --git a/icons/obj/pipe-item.dmi b/icons/obj/pipe-item.dmi index 06c53e5a68b..1ef48fbad13 100644 Binary files a/icons/obj/pipe-item.dmi and b/icons/obj/pipe-item.dmi differ