diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 9efa4fc4705..6c2177b408a 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -2585,18 +2585,18 @@ "aXK" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = 30},/turf/simulated/floor,/area/hallway/primary/central/nw) "aXL" = (/obj/machinery/camera{c_tag = "Central Hallway North-West"; dir = 2; network = list("SS13")},/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor,/area/hallway/primary/central/nw) "aXM" = (/obj/machinery/light{dir = 1},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/hallway/primary/central/nw) -"aXN" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Central Hall NW APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor,/area/hallway/primary/central/nw) +"aXN" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Central Hall NW APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/primary/central/nw) "aXO" = (/turf/simulated/floor{dir = 4; icon_state = "bluecorner"},/area/hallway/primary/central/nw) "aXP" = (/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/hallway/primary/central/nw) "aXQ" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "station intercom (General)"; pixel_y = 25},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 1; icon_state = "bluecorner"},/area/hallway/primary/central/nw) -"aXR" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "L1"},/area/hallway/primary/central/north) +"aXR" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/hallway/primary/central/north) "aXS" = (/turf/simulated/floor{icon_state = "L3"},/area/hallway/primary/central/north) "aXT" = (/turf/simulated/floor{icon_state = "L5"},/area/hallway/primary/central/north) "aXU" = (/turf/simulated/floor{icon_state = "L7"},/area/hallway/primary/central/north) "aXV" = (/turf/simulated/floor{icon_state = "L9"},/area/hallway/primary/central/north) -"aXW" = (/turf/simulated/floor{icon_state = "L11"},/area/hallway/primary/central/north) -"aXX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{desc = ""; icon_state = "L13"; name = "floor"},/area/hallway/primary/central/north) -"aXY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "L15"},/area/hallway/primary/central/north) +"aXW" = (/turf/simulated/floor{icon_state = "L1"},/area/hallway/primary/central/north) +"aXX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "L11"},/area/hallway/primary/central/north) +"aXY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{desc = ""; icon_state = "L13"; name = "floor"},/area/hallway/primary/central/north) "aXZ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/hallway/primary/central/north) "aYa" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "station intercom (General)"; pixel_y = 25},/obj/machinery/light{dir = 1},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/central/ne) "aYb" = (/turf/simulated/floor{icon_state = "neutralcorner"; dir = 4},/area/hallway/primary/central/ne) @@ -2683,12 +2683,11 @@ "aZE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/central/nw) "aZF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "L2"},/area/hallway/primary/central/north) "aZG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "L4"},/area/hallway/primary/central/north) -"aZH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "L6"},/area/hallway/primary/central/north) -"aZI" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Lockers"; location = "EVA"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "L8"},/area/hallway/primary/central/north) -"aZJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "L10"},/area/hallway/primary/central/north) -"aZK" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Security"; location = "EVA2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "L12"},/area/hallway/primary/central/north) -"aZL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{desc = ""; icon_state = "L14"},/area/hallway/primary/central/north) -"aZM" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor{icon_state = "L16"},/area/hallway/primary/central/north) +"aZH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "L8"},/area/hallway/primary/central/north) +"aZI" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Lockers"; location = "EVA"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "L6"},/area/hallway/primary/central/north) +"aZJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "L12"},/area/hallway/primary/central/north) +"aZK" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Security"; location = "EVA2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "L10"},/area/hallway/primary/central/north) +"aZL" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor{desc = ""; icon_state = "L14"},/area/hallway/primary/central/north) "aZN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/central/north) "aZO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor,/area/hallway/primary/central/ne) "aZP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/central/ne) @@ -8349,8 +8348,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSfaOFaOFaNjaOMaQjaOFaQjaSgaQjaOFaQjaOMaQkaQlaKzaKBaShaMoaMoaSiaSjaSkaSjaMoaKHaKHaKHaKHaSlaSmaSnaSoaKHaSpaSqaSraPdaPdaSsaPdaStaSuaSvaMvaaaaLRaLRaSwaSxaSwaLRaLRaaaaJGaJLaJMaSyaSzaSAaQJaSBaJMaGvaIKaJNaJOaSCaNRaLXaJOaLYaJOaLXaNTaSDaIKaIKaIKaSEaSFaSGaSHaSIaSJamKamKaSKaSLaSMaSNaMcaSOaMQaMcaSPaMcaSQaMcaSRaSSaSTaSUaSVaSWaSXaSYaSZaTaaTbaTcaTdaTbaTbaTeaTbaSYaTfaSYaOvaTgaSYaThaTiaTjaTkaTlaTmaTnaToaTpaTqaTraOuaTsaTtaTuaTvaTwaTxaTyaTzaRHaTAaTBaRIaTCaTDaTEaTFaROaTGaRQaRRaRSaTHaTIaQdaTJaTKaTKaTLaScaScaScaScaSdapraaaaaaaaaaaaaaaaaaaQfaQfaQfaQfaQfaQfaQfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaONaTMaTNaQiaOMaQjaOFaQjaOFaQjaOFaQjaOMaQkaQlaKzaKBaTOaTPaTQaTRaTSaTSaJraTTaTUaTVaTWaTXaTYaTZaMqaUaaKHaUbaUcaUdaUeaUfaUgaUhaUiaUjaUkaMvaaaaabaaaaUlaUmaUlaaaaabaaaaCuaJLaJMaUnaUoaUpaUqaUraJMaGvaIKaUsaUtaKPaUuaUvaKSaUwaKSaUxaUyaUzaIKaUAaUBaUCaUDaUEaUFaUGaUHaaaaaaaSKaUIaUJaUKaMcaULaUMaMQaMQaUNaMQaMQaMQaUOaMeaUPaMeaUQaURaMeaUSaMeaUTaUUaUVaUWaUXaUYaUTaUZaVaaVbaVcaVbaVbaVbaVbaVdaVbaVbaVeaVbaVfaVgaVbaVhayHaRDaViaTvaVjaVkaVlaVmaVnaVoaVpaVqaRIaVraVsaVtaVuaVvaTGaRQaRRaRSaRTaVwaQdaVxaTKaTKaTLaScaScaScaScaSdapraaaaaaaaaaaaaaaaaaaQfaQfaQfaQfaQfaQfaQfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVyaVzaNiaODaOMaOFaVAaVBaOFaOFaVCaVAaOMaONaVDaKzaKBaVEaVFaVGaVHaVGaVGaVGaVGaVGaVIaJraKHaVJaVKaVJaKHaKHaVLaVMaVLaMuaMuaMuaMuaVLaVNaVOaMvaVPaVQaVQaVRaVSaVRaVQaVQaVTaVUaVVaJMaVWaJMaVXaVYaVZaJMaWaaIKaIKaIKaIKaWbaWcaWdaWeaWdaWcaWbaIKaIKaWfaUDaUDaUDaUDaWgaWhaWiaWjaWkaSKaWlaUJaWmaMcaMcaMcaMcaMcaMcaMcaMeaMeaUOaWnaWoaWpaWqaWraWsaWtaWuaUTaWvaWwaWxaWyaWzaUTaWAaWBaWCaWDaWCaWEaWFaWGaWHaWIaWJaWKaWLaWMaWNaVbaWOaRtaWPaWQaWRaVjaWSaVlaVmaWTaRIaWUaWVaWWaWXaWYaTFaTFaRIaRIaRQaRRaRSaTHaWZaQdaXaaXbaXcaXdaXeaXfaScaScaXgapraaaaaaaaaaaaaaaaQfaQfaQfaQfaQfaQfaQfaQfaQfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVyaNiaNjaNiaNiaNkaNlaNiaNiaNjaVzaXhaCuaXiaVEaInaXjaXjaXkaXjaXlaDEaXmaXnaJraXoaXpaXqaXqaXraXsaXqaXtaXqaXqaXqaXuaXqaXqaXvaXwaXxaXyaXzaXAaXyaXBaXyaXyaXyaXyaXCaXDaXEaXqaXqaXFaXGaXHaXIaXJaXKaXLaXMaXNaXOaXPaXPaXPaXPaXPaXPaXQaXRaXSaXTaXUaXVaXWaXXaXYaXZaUDaUDaYaaYbaYcaYbaYcaYdaYeaYfaYgaYhaYiaMeaYjaYkaYlaYmaYnaYnaYoaYpaYqaYraUTaYsaYtaYuaYuaYvaUTaYwaYxaYyaYzaYAaYAaYBaYCaYDaWNaYEaYFaYGaYHaWNaVbaVhaKsaRDaYIaYJaYJaYKaYLaYJaYMaRIaYNaYOaRIaYPaYQaTFaYRaRIaYSaYTaYUaRSaQbaQbaQdaYVaQeaYWaYXaQeaQeaQeaQeaQeabLadbaaaaaaaaaaaaaQfaQfaQfaQfaQfaQfaQfaQfaQfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaInaYYaKzaKzaKzaKzaKzaKzaYYaInaMlaCuaYZaZaaInaZbaZcaZdaZdaZeaDEaZfaXnaZgaZhaXpaZiaZjaZkaZlaZlaZmaZnaZnaZnaZoaZpaZpaZqaZraZsaZlaZlaZtaZpaZvaZwaZxaZxaZyaZzaZAaZuaZuaZuaZBaXGaXHaXIaXJaXJaXJaXJaZCaXJaXJaXJaXJaXJaXJaZDaZEaZFaZGaZHaZIaZJaZKaZLaZMaZNaZNaZNaZOaZPaZPaZPaZQaYiaYiaYiaZRaZSaYiaMeaZTaZUaYnaYnaZVaYnaZWaZXaYqaZYaUTaZZbaababbacbadaUTbaebafbagbahbaibajaVbbakbalbakaVbaVbaVbaVeaVbaVbaVhayHaRDbamaTvaTvaTvbanaTvbaoaRIaRIaRIaRIaRIaRIaRIbapaRIaRSaRSaRRaRSbaqbaraQbbasbatbaubavbawbaxbaybazbaAaaaaaaaaaaaaaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVyaNiaNjaNiaNiaNkaNlaNiaNiaNjaVzaXhaCuaXiaVEaInaXjaXjaXkaXjaXlaDEaXmaXnaJraXoaXpaXqaXqaXraXsaXqaXtaXqaXqaXqaXuaXqaXqaXvaXwaXxaXyaXzaXAaXyaXBaXyaXyaXyaXyaXCaXDaXEaXqaXqaXFaXGaXHaXIaXJaXKaXLaXMaXNaXPaXPaXPaXPaXPaXPaXPaXQaXRaXWaXSaXTaXUaXVaXXaXYaXZaUDaUDaYaaYbaYcaYbaYcaYdaYeaYfaYgaYhaYiaMeaYjaYkaYlaYmaYnaYnaYoaYpaYqaYraUTaYsaYtaYuaYuaYvaUTaYwaYxaYyaYzaYAaYAaYBaYCaYDaWNaYEaYFaYGaYHaWNaVbaVhaKsaRDaYIaYJaYJaYKaYLaYJaYMaRIaYNaYOaRIaYPaYQaTFaYRaRIaYSaYTaYUaRSaQbaQbaQdaYVaQeaYWaYXaQeaQeaQeaQeaQeabLadbaaaaaaaaaaaaaQfaQfaQfaQfaQfaQfaQfaQfaQfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaInaYYaKzaKzaKzaKzaKzaKzaYYaInaMlaCuaYZaZaaInaZbaZcaZdaZdaZeaDEaZfaXnaZgaZhaXpaZiaZjaZkaZlaZlaZmaZnaZnaZnaZoaZpaZpaZqaZraZsaZlaZlaZtaZpaZvaZwaZxaZxaZyaZzaZAaZuaZuaZuaZBaXGaXHaXIaXJaXJaXJaXJaZCaXJaXJaXJaXJaXJaXJaZDaZEaZNaZFaZGaZIaZHaZKaZJaZLaZNaZNaZNaZOaZPaZPaZPaZQaYiaYiaYiaZRaZSaYiaMeaZTaZUaYnaYnaZVaYnaZWaZXaYqaZYaUTaZZbaababbacbadaUTbaebafbagbahbaibajaVbbakbalbakaVbaVbaVbaVeaVbaVbaVhayHaRDbamaTvaTvaTvbanaTvbaoaRIaRIaRIaRIaRIaRIaRIbapaRIaRSaRSaRRaRSbaqbaraQbbasbatbaubavbawbaxbaybazbaAaaaaaaaaaaaaaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaLyaCuaInaGdaKzbaBbaCbaDbaEaKzaGdaInaInaCubaFaVEaInbaGbaHaZdaZdaZeaDEbaIaXnaJraZhaXpaXqbaJbaKbaLbaLbaMbaNbaObaLbaPbaLbaQbaLbaRbaSbaLbaLbaWbaLbaLbaUbaVbaLbaWbaXbaYbaZaXqaXqbbabbbbbcbbdbbebbfbbebbgbbhbbgbbgbbgbbgbbgbbgbbibbjbbkbbkbbkbbkbblbbkbbmbbnbbkbbkbbobbpbbqbbqbbqbbqbbqbbqbbqbbraYiaYiaMebbsbbtbbubbvbbvbbwbbxaZXaYqbbyaUTaUTaUTaUTaUTbbzaUTbbAbbBbbCbbDaWCbbEaVbbbFbbGbbHbbIbbJbbKbbLbbMaVbaVhaHYaRDbbNbbOaTvbbPbbQaTvbbRbbRaRDbbSbbTbbUaQbbbVbbWbbXaRSaRSbbYbbZaQbbcaaQbbcbbatbccbcdbcebatbatbcfbaAaaaaaaaaaaaaaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaDEaInaYYaKzaKBaJraJraKCaKzaYYaKzbcgbchbcibcjaInbckbckaXkbckaXlaDEbclaXnaJraDEbcmbcmbcnbcobcobcobcobcobcobcpbcqbcobcobcobcobcobcobcrbcsbctbctbcubctbcvbcwbcxbcvbcvbcybczbcAbcmbcBbcBbcCbcCbcCbcDbcDbcDbcDbcDbcDbcDbcDbcEbcFbcFbcGbcFbcHbcHbcHbcHbcIbcJbcHbcEbcKbcKbcKbcKbcKbcKbcKbcKbcLbcLbcLaMebcMbcNbcObcObcObcObcPbcQbcRbcSbcTbcUbcVbcWbcXbcYaUTaUTbcZbdabdbbdabdaaVbbdcbddbdebdebdebdebdfbdgaVbbdhbdiaRDbdjaTvbbPbbPbbQbbPaTvbdkaRDbdlbdmbdnaQbaRSbdobdpbdqbdqbdrbdsbdtbdubdvbdwbdxbdybdzbavbatbatbdAbaAaaaaaaaaaaaaaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfbdBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdCbdDaJrbdEbdFbdGbdHbdIbdJbdHbdKbdLbdHbdHbdMbdNbdObdPbdQbdQbdQbdRbdQbdSbdTaDEbdUbdVbdWbcobdXbdYbdZbeabebbecbedbeebefbegbehbeibcobejbekbctbelbembenbcvbeobepbeqbcvberbesbetberberberbeuaXJaXObcDaaaaaaaaaaaaaaaaaaaaabcEbevbewbexbeybezbeAbeBbeCbeDbeEbeFbcEaaaaaaaaaaaaaaaaaaaaabcKbeGaYibeHaMebeIbcNbcSbcSbcSbcSbcSbeJbeKbcSbcSbcSbeLbeMbeMbeNbeObePbeQbeRbeSbeTbeUaVbbeVbeWbeXbeYbeYbeXbeZbfaaVbaVhayHaRDbfbbfcaTvbbPbbQaTvbfdbfdaRDaRDbfeaRDaQbbffbbWbbZbfgbfgbfhbbZaQbaQbaQbbfibatbfjbfjbfkbfjbatbflbaAaabaaaaaabfmaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/code/game/machinery/atmo_control.dm b/code/game/machinery/atmo_control.dm index ac70b7d7d38..fbe43b8095b 100644 --- a/code/game/machinery/atmo_control.dm +++ b/code/game/machinery/atmo_control.dm @@ -141,7 +141,7 @@ obj/machinery/air_sensor icon = 'icons/obj/computer.dmi' icon_screen = "tank" icon_keyboard = "atmos_key" - circuit = "/obj/item/weapon/circuitboard/air_management" + circuit = /obj/item/weapon/circuitboard/air_management req_one_access_txt = "24;10" name = "Computer" @@ -360,7 +360,7 @@ legend { return 1 large_tank_control - circuit = "/obj/item/weapon/circuitboard/large_tank_control" + circuit = /obj/item/weapon/circuitboard/large_tank_control req_one_access_txt = "24;10" settagwhitelist = list("input_tag", "output_tag") @@ -586,7 +586,7 @@ legend { fuel_injection icon = 'icons/obj/computer.dmi' icon_screen = "atmos" - circuit = "/obj/item/weapon/circuitboard/injector_control" + circuit = /obj/item/weapon/circuitboard/injector_control var/device_tag var/list/device_info diff --git a/code/game/machinery/atmoalter/area_atmos_computer.dm b/code/game/machinery/atmoalter/area_atmos_computer.dm index b95e1e1ea0c..948de84f89f 100644 --- a/code/game/machinery/atmoalter/area_atmos_computer.dm +++ b/code/game/machinery/atmoalter/area_atmos_computer.dm @@ -3,7 +3,7 @@ desc = "A computer used to control the stationary scrubbers and pumps in the area." icon_screen = "area_atmos" icon_keyboard = "atmos_key" - circuit = "/obj/item/weapon/circuitboard/area_atmos" + circuit = /obj/item/weapon/circuitboard/area_atmos var/list/connectedscrubbers = new() var/status = "" diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm index 5d1b14e9623..1daf3be5714 100644 --- a/code/game/machinery/computer/Operating.dm +++ b/code/game/machinery/computer/Operating.dm @@ -6,7 +6,7 @@ anchored = 1.0 icon_keyboard = "med_key" icon_screen = "crew" - circuit = "/obj/item/weapon/circuitboard/operating" + circuit = /obj/item/weapon/circuitboard/operating var/mob/living/carbon/human/victim = null var/obj/machinery/optable/table = null @@ -31,11 +31,11 @@ if(..(user)) return - if(stat & (NOPOWER|BROKEN)) - return - - - add_fingerprint(user) + if(stat & (NOPOWER|BROKEN)) + return + + + add_fingerprint(user) interact(user) diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm index c93ae5cafc0..6cbd71cf35a 100644 --- a/code/game/machinery/computer/atmos_alert.dm +++ b/code/game/machinery/computer/atmos_alert.dm @@ -7,7 +7,7 @@ var/global/list/minor_air_alarms = list() /obj/machinery/computer/atmos_alert name = "Atmospheric Alert Computer" desc = "Used to access the station's atmospheric sensors." - circuit = "/obj/item/weapon/circuitboard/atmos_alert" + circuit = /obj/item/weapon/circuitboard/atmos_alert icon_keyboard = "atmos_key" icon_screen = "alert:0" light_color = LIGHT_COLOR_CYAN @@ -80,6 +80,6 @@ var/datum/topic_state/air_alarm_topic/air_alarm_topic = new() extra_href["remote_access"] = 1 return extra_href - + /datum/topic_state/air_alarm_topic/can_use_topic(var/src_object, var/mob/user) return STATUS_INTERACTIVE diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 88a8f01b159..09a0c72ed56 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -197,6 +197,12 @@ /obj/item/weapon/circuitboard/splicer name = "Circuit board (Disease Splicer)" build_path = /obj/machinery/computer/diseasesplicer +/obj/item/weapon/circuitboard/labor_shuttle + name = "circuit Board (Labor Shuttle)" + build_path = /obj/machinery/computer/labor_shuttle +/obj/item/weapon/circuitboard/labor_shuttle/one_way + name = "circuit Board (Prisoner Shuttle Console)" + build_path = /obj/machinery/computer/labor_shuttle/one_way /obj/item/weapon/circuitboard/mining_shuttle name = "Circuit board (Mining Shuttle)" build_path = /obj/machinery/computer/shuttle_control/mining diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 90fb5bd41cc..c70ac8d37cc 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -2,13 +2,13 @@ /proc/invalidateCameraCache() camera_cache_id = (++camera_cache_id % 999999) - + /obj/machinery/computer/security name = "Camera Monitor" desc = "Used to access the various cameras networks on the station." icon_keyboard = "security_key" icon_screen = "cameras" - circuit = "/obj/item/weapon/circuitboard/camera" + circuit = /obj/item/weapon/circuitboard/camera var/obj/machinery/camera/current = null var/list/network = list("") var/last_pic = 1.0 @@ -43,7 +43,7 @@ networks["ERT"] = list(access_cent_specops_commander,access_cent_commander) networks["CentCom"] = list(access_cent_security,access_cent_commander) networks["Thunderdome"] = list(access_cent_thunder,access_cent_commander) - + ..() /obj/machinery/computer/security/attack_ai(var/mob/user as mob) @@ -115,7 +115,7 @@ break if(tempnets.len) data["networks"] = tempnets - + if(current) data["current"] = current.nano_structure() data["cameras"] = list("__json_cache" = camera_cache) @@ -207,7 +207,7 @@ set_current(C) use_power(50) return 1 - + /obj/machinery/computer/security/proc/set_current(var/obj/machinery/camera/C) if(current == C) return @@ -220,8 +220,8 @@ use_power = 2 var/mob/living/L = current.loc if(istype(L)) - L.tracking_initiated() - + L.tracking_initiated() + /obj/machinery/computer/security/proc/reset_current() if(current) var/mob/living/L = current.loc diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index d255e4837e6..020969521a1 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -14,7 +14,7 @@ var/time_last_changed_position = 0 var/obj/item/weapon/card/id/modify = null var/mode = 0.0 var/printing = null - + //Cooldown for closing positions in seconds //if set to -1: No cooldown... probably a bad idea //if set to 0: Not able to close "original" positions. You can only close positions that you have opened before @@ -36,7 +36,7 @@ var/time_last_changed_position = 0 /datum/job/brigdoc, /datum/job/mechanic, /datum/job/barber, - /datum/job/chaplain, + /datum/job/chaplain, /datum/job/civilian ) @@ -69,7 +69,7 @@ var/time_last_changed_position = 0 "job" = job))) return formatted - + /obj/machinery/computer/card/proc/format_job_slots() var/list/formatted = list() for(var/datum/job/job in job_master.occupations) @@ -83,7 +83,7 @@ var/time_last_changed_position = 0 "can_close" = can_close_job(job)))) return formatted - + /obj/machinery/computer/card/proc/format_card_skins(list/card_skins) var/list/formatted = list() for(var/skin in card_skins) @@ -131,7 +131,7 @@ var/time_last_changed_position = 0 nanomanager.update_uis(src) attack_hand(user) - + //Check if you can't open a new position for a certain job /obj/machinery/computer/card/proc/job_blacklisted(datum/job/job) return (job.type in blacklisted) @@ -164,11 +164,11 @@ var/time_last_changed_position = 0 return attack_hand(user) /obj/machinery/computer/card/attack_hand(mob/user as mob) - if(..()) + if(..()) return - if(stat & (NOPOWER|BROKEN)) + if(stat & (NOPOWER|BROKEN)) return - + ui_interact(user) /obj/machinery/computer/card/ui_interact(mob/user, ui_key="main", var/datum/nanoui/ui = null, var/force_open = 1) @@ -200,15 +200,15 @@ var/time_last_changed_position = 0 data["special_jobs"] = format_jobs(whitelisted_positions) data["centcom_jobs"] = format_jobs(get_all_centcom_jobs()) data["card_skins"] = format_card_skins(get_station_card_skins()) - + data["job_slots"] = format_job_slots() - + var/time_to_wait = round(change_position_cooldown - ((world.time / 10) - time_last_changed_position), 1) var/mins = round(time_to_wait / 60) var/seconds = time_to_wait - (60*mins) data["cooldown_mins"] = mins data["cooldown_secs"] = (seconds < 10) ? "0[seconds]" : seconds - + if(modify) data["current_skin"] = modify.icon_state @@ -222,7 +222,7 @@ var/time_last_changed_position = 0 data["all_centcom_access"] = all_centcom_access data["all_centcom_skins"] = format_card_skins(get_centcom_card_skins()) - + else if (modify) var/list/regions = list() for(var/i = 1; i <= 7; i++) @@ -296,7 +296,7 @@ var/time_last_changed_position = 0 modify.access -= access_type if(!access_allowed) modify.access += access_type - + if("skin") var/skin = href_list["skin_target"] if(is_authenticated(usr) && modify && ((skin in get_station_card_skins()) || ((skin in get_centcom_card_skins()) && is_centcom()))) @@ -390,7 +390,7 @@ var/time_last_changed_position = 0 modify.access = list() callHook("terminate_employee", list(modify)) - + if("make_job_available") // MAKE ANOTHER JOB POSITION AVAILABLE FOR LATE JOINERS if(is_authenticated(usr)) @@ -429,5 +429,5 @@ var/time_last_changed_position = 0 /obj/machinery/computer/card/centcom name = "CentCom Identification Computer" - circuit = "/obj/item/weapon/circuitboard/card/centcom" + circuit = /obj/item/weapon/circuitboard/card/centcom req_access = list(access_cent_commander) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index 31fa24feb6f..0cc1cc07a60 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -3,7 +3,7 @@ icon = 'icons/obj/computer.dmi' icon_keyboard = "med_key" icon_screen = "dna" - circuit = "/obj/item/weapon/circuitboard/cloning" + circuit = /obj/item/weapon/circuitboard/cloning req_access = list(access_heads) //Only used for record deletion right now. var/obj/machinery/dna_scannernew/scanner = null //Linked scanner. For scanning. var/list/pods = list() //Linked cloning pods. diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 7a6ffcdc22a..44e6d95de53 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -39,7 +39,7 @@ var/shuttle_call/shuttle_calls[0] icon_keyboard = "tech_key" icon_screen = "comm" req_access = list(access_heads) - circuit = "/obj/item/weapon/circuitboard/communications" + circuit = /obj/item/weapon/circuitboard/communications var/prints_intercept = 1 var/authenticated = 0 var/list/messagetitle = list() @@ -64,7 +64,7 @@ var/shuttle_call/shuttle_calls[0] /obj/machinery/computer/communications/New() ..() crew_announcement.newscast = 1 - + /obj/machinery/computer/communications/proc/is_authenticated(var/mob/user, var/message = 1) if(authenticated == 2) return 2 @@ -84,10 +84,10 @@ var/shuttle_call/shuttle_calls[0] if ((!(src.z in config.station_levels) && !(src.z in config.admin_levels))) usr << "Unable to establish a connection: You're too far away from the station!" return 1 - + if(href_list["login"]) if(!ishuman(usr)) - usr << "Access denied." + usr << "Access denied." return var/mob/living/carbon/human/M = usr var/obj/item/card = M.get_active_hand() @@ -103,11 +103,11 @@ var/shuttle_call/shuttle_calls[0] crew_announcement.announcer = GetNameAndAssignmentFromId(I) nanomanager.update_uis(src) return - + if(href_list["logout"]) authenticated = 0 crew_announcement.announcer = "" - setMenuState(usr,COMM_SCREEN_MAIN) + setMenuState(usr,COMM_SCREEN_MAIN) nanomanager.update_uis(src) return @@ -117,12 +117,12 @@ var/shuttle_call/shuttle_calls[0] switch(href_list["operation"]) if("main") setMenuState(usr,COMM_SCREEN_MAIN) - + if("changeseclevel") setMenuState(usr,COMM_SCREEN_SECLEVEL) if("newalertlevel") - if(isAI(usr) || isrobot(usr)) + if(isAI(usr) || isrobot(usr)) usr << "Firewalls prevent you from changing the alert level." nanomanager.update_uis(src) return 1 @@ -177,14 +177,14 @@ var/shuttle_call/shuttle_calls[0] if(!input || ..() || !is_authenticated(usr)) nanomanager.update_uis(src) return - + call_shuttle_proc(usr, input) if(emergency_shuttle.online()) post_status("shuttle") setMenuState(usr,COMM_SCREEN_MAIN) - + if("cancelshuttle") - if(isAI(usr) || isrobot(usr)) + if(isAI(usr) || isrobot(usr)) usr << "Firewalls prevent you from recalling the shuttle." nanomanager.update_uis(src) return 1 @@ -194,13 +194,13 @@ var/shuttle_call/shuttle_calls[0] if(emergency_shuttle.online()) post_status("shuttle") setMenuState(usr,COMM_SCREEN_MAIN) - + if("messagelist") src.currmsg = 0 if(href_list["msgid"]) setCurrentMessage(usr, text2num(href_list["msgid"])) setMenuState(usr,COMM_SCREEN_MESSAGES) - + if("delmessage") if(href_list["msgid"]) src.currmsg = text2num(href_list["msgid"]) @@ -234,7 +234,7 @@ var/shuttle_call/shuttle_calls[0] if("setmsg1") stat_msg1 = input("Line 1", "Enter Message Text", stat_msg1) as text|null setMenuState(usr,COMM_SCREEN_STAT) - + if("setmsg2") stat_msg2 = input("Line 2", "Enter Message Text", stat_msg2) as text|null setMenuState(usr,COMM_SCREEN_STAT) @@ -256,8 +256,8 @@ var/shuttle_call/shuttle_calls[0] centcomm_message_cooldown = 1 spawn(6000)//10 minute cooldown centcomm_message_cooldown = 0 - setMenuState(usr,COMM_SCREEN_MAIN) - + setMenuState(usr,COMM_SCREEN_MAIN) + if("MessageCentcomm") if(is_authenticated(usr) == 2) if(centcomm_message_cooldown) @@ -300,7 +300,7 @@ var/shuttle_call/shuttle_calls[0] src.emagged = 0 setMenuState(usr,COMM_SCREEN_MAIN) - nanomanager.update_uis(src) + nanomanager.update_uis(src) return 1 /obj/machinery/computer/communications/emag_act(user as mob) @@ -316,13 +316,13 @@ var/shuttle_call/shuttle_calls[0] if(..(user)) return - if(stat & (NOPOWER|BROKEN)) - return - + if(stat & (NOPOWER|BROKEN)) + return + if (!(src.z in list(ZLEVEL_STATION, ZLEVEL_CENTCOMM))) user << "Unable to establish a connection: You're too far away from the station!" return - + ui_interact(user) /obj/machinery/computer/communications/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 9f344a8171b..6d1643fd988 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -7,7 +7,7 @@ idle_power_usage = 250 active_power_usage = 500 light_color = LIGHT_COLOR_DARKBLUE - circuit = "/obj/item/weapon/circuitboard/crew" + circuit = /obj/item/weapon/circuitboard/crew var/datum/nano_module/crew_monitor/crew_monitor /obj/machinery/computer/crew/New() diff --git a/code/game/machinery/computer/honkputer.dm b/code/game/machinery/computer/honkputer.dm index 188b22e502d..0b31b365033 100644 --- a/code/game/machinery/computer/honkputer.dm +++ b/code/game/machinery/computer/honkputer.dm @@ -7,7 +7,7 @@ icon_screen = "honkcomms" light_color = LIGHT_COLOR_PINK req_access = list(access_clown) - circuit = "/obj/item/weapon/circuitboard/HONKputer" + circuit = /obj/item/weapon/circuitboard/HONKputer var/authenticated = 0 var/message_cooldown = 0 var/state = STATE_DEFAULT diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm index 6f7aaf2006b..020ed6e45e2 100644 --- a/code/game/machinery/computer/law.dm +++ b/code/game/machinery/computer/law.dm @@ -5,7 +5,7 @@ desc = "Used to upload laws to the AI." icon_screen = "command" icon_keyboard = "med_key" - circuit = "/obj/item/weapon/circuitboard/aiupload" + circuit = /obj/item/weapon/circuitboard/aiupload var/mob/living/silicon/ai/current = null var/opened = 0 @@ -63,7 +63,7 @@ desc = "Used to upload laws to Cyborgs." icon_screen = "command" icon_keyboard = "med_key" - circuit = "/obj/item/weapon/circuitboard/borgupload" + circuit = /obj/item/weapon/circuitboard/borgupload var/mob/living/silicon/robot/current = null diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 0680cb330f4..5c47e0f923f 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -6,7 +6,7 @@ icon_keyboard = "med_key" icon_screen = "medcomp" req_one_access = list(access_medical, access_forensics_lockers) - circuit = "/obj/item/weapon/circuitboard/med_data" + circuit = /obj/item/weapon/circuitboard/med_data var/obj/item/weapon/card/id/scan = null var/authenticated = null var/rank = null diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm index 3099d738a70..ceaa0ab5041 100644 --- a/code/game/machinery/computer/message.dm +++ b/code/game/machinery/computer/message.dm @@ -11,7 +11,7 @@ light_color = LIGHT_COLOR_GREEN var/hack_icon = "tcboss" var/normal_icon = "comm_logs" - circuit = "/obj/item/weapon/circuitboard/message_monitor" + circuit = /obj/item/weapon/circuitboard/message_monitor //Server linked to. var/obj/machinery/message_server/linkedServer = null //Sparks effect - For emag @@ -65,7 +65,7 @@ // Will help make emagging the console not so easy to get away with. MK.info += "

£%@%(*$%&(£&?*(%&£/{}" update_icon() - spawn(100*length(src.linkedServer.decryptkey)) + spawn(100*length(src.linkedServer.decryptkey)) UnmagConsole() update_icon() message = rebootmsg @@ -77,7 +77,7 @@ icon_screen = hack_icon else icon_screen = normal_icon - + ..() /obj/machinery/computer/message_monitor/initialize() @@ -89,9 +89,9 @@ return /obj/machinery/computer/message_monitor/attack_hand(var/mob/user as mob) - if(..()) + if(..()) return - if(stat & (NOPOWER|BROKEN)) + if(stat & (NOPOWER|BROKEN)) return //If the computer is being hacked or is emagged, display the reboot message. if(hacking || emag) diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm index af429a3014b..ac5d15fc392 100644 --- a/code/game/machinery/computer/prisoner.dm +++ b/code/game/machinery/computer/prisoner.dm @@ -6,7 +6,7 @@ icon_keyboard = "security_key" icon_screen = "explosive" req_access = list(access_armory) - circuit = "/obj/item/weapon/circuitboard/prisoner" + circuit = /obj/item/weapon/circuitboard/prisoner var/id = 0.0 var/temp = null var/status = 0 @@ -82,7 +82,7 @@ /obj/machinery/computer/prisoner/Topic(href, href_list) if(..()) return 1 - + usr.set_machine(src) if(href_list["id"]) diff --git a/code/game/machinery/computer/prisonshuttle.dm b/code/game/machinery/computer/prisonshuttle.dm index 107cfc6cb0f..3e860928ef9 100644 --- a/code/game/machinery/computer/prisonshuttle.dm +++ b/code/game/machinery/computer/prisonshuttle.dm @@ -17,7 +17,7 @@ var/prison_shuttle_timeleft = 0 icon_screen = "syndishuttle" light_color = LIGHT_COLOR_PURE_CYAN req_access = list(access_security) - circuit = "/obj/item/weapon/circuitboard/prison_shuttle" + circuit = /obj/item/weapon/circuitboard/prison_shuttle var/temp = null var/hacked = 0 var/allowedtocall = 0 diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index e77d0088b52..017702d67fa 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -6,7 +6,7 @@ icon_keyboard = "security_key" icon_screen = "security" req_one_access = list(access_security, access_forensics_lockers) - circuit = "/obj/item/weapon/circuitboard/secure_data" + circuit = /obj/item/weapon/circuitboard/secure_data var/obj/item/weapon/card/id/scan = null var/authenticated = null var/rank = null diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm index 50c2adca3f4..a2adae97cf3 100644 --- a/code/game/machinery/computer/skills.dm +++ b/code/game/machinery/computer/skills.dm @@ -8,7 +8,7 @@ icon_screen = "medlaptop" light_color = LIGHT_COLOR_GREEN req_one_access = list(access_heads) - circuit = "/obj/item/weapon/circuitboard/skills" + circuit = /obj/item/weapon/circuitboard/skills var/obj/item/weapon/card/id/scan = null var/authenticated = null var/rank = null diff --git a/code/game/machinery/computer/store.dm b/code/game/machinery/computer/store.dm index 42760e1b3e4..5beab8b5d1e 100644 --- a/code/game/machinery/computer/store.dm +++ b/code/game/machinery/computer/store.dm @@ -2,7 +2,7 @@ name = "Merch Computer" icon = 'icons/obj/computer.dmi' icon_screen = "comm_logs" - circuit = "/obj/item/weapon/circuitboard/merch" + circuit = /obj/item/weapon/circuitboard/merch light_color = LIGHT_COLOR_GREEN diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index f509cb9026d..87f008bc453 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -14,7 +14,7 @@ desc = "An interface between crew and the cryogenic storage oversight systems." icon = 'icons/obj/Cryogenic2.dmi' icon_state = "cellconsole" - circuit = "/obj/item/weapon/circuitboard/cryopodcontrol" + circuit = /obj/item/weapon/circuitboard/cryopodcontrol density = 0 interact_offline = 1 req_one_access = list(access_heads, access_armory) //Heads of staff or the warden can go here to claim recover items from their department that people went were cryodormed with. @@ -33,7 +33,7 @@ desc = "An interface between crew and the robotic storage systems" icon = 'icons/obj/robot_storage.dmi' icon_state = "console" - circuit = "/obj/item/weapon/circuitboard/robotstoragecontrol" + circuit = /obj/item/weapon/circuitboard/robotstoragecontrol storage_type = "cyborgs" storage_name = "Robotic Storage Control" diff --git a/code/game/machinery/telecomms/logbrowser.dm b/code/game/machinery/telecomms/logbrowser.dm index 51319a38237..9bc3e77fa1e 100644 --- a/code/game/machinery/telecomms/logbrowser.dm +++ b/code/game/machinery/telecomms/logbrowser.dm @@ -18,7 +18,7 @@ var/universal_translate = 0 // set to 1 if it can translate nonhuman speech req_access = list(access_tcomsat) - circuit = "/obj/item/weapon/circuitboard/comm_server" + circuit = /obj/item/weapon/circuitboard/comm_server attack_hand(mob/user as mob) if(stat & (BROKEN|NOPOWER)) diff --git a/code/game/machinery/telecomms/telemonitor.dm b/code/game/machinery/telecomms/telemonitor.dm index 5c0b8f5eac2..1bd424c0142 100644 --- a/code/game/machinery/telecomms/telemonitor.dm +++ b/code/game/machinery/telecomms/telemonitor.dm @@ -18,7 +18,7 @@ var/network = "NULL" // the network to probe var/temp = "" // temporary feedback messages - circuit = "/obj/item/weapon/circuitboard/comm_monitor" + circuit = /obj/item/weapon/circuitboard/comm_monitor light_color = LIGHT_COLOR_DARKGREEN diff --git a/code/game/machinery/telecomms/traffic_control.dm b/code/game/machinery/telecomms/traffic_control.dm index da8669e45e0..6e93ab8b7c6 100644 --- a/code/game/machinery/telecomms/traffic_control.dm +++ b/code/game/machinery/telecomms/traffic_control.dm @@ -17,7 +17,7 @@ light_color = LIGHT_COLOR_DARKGREEN req_access = list(access_tcomsat) - circuit = "/obj/item/weapon/circuitboard/comm_traffic" + circuit = /obj/item/weapon/circuitboard/comm_traffic /obj/machinery/computer/telecomms/traffic/attack_hand(mob/user) interact(user) diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 4aaaf47f8c7..d0b62cef441 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -3,7 +3,7 @@ desc = "Used to control a linked teleportation Hub and Station." icon_screen = "teleport" icon_keyboard = "teleport_key" - circuit = "/obj/item/weapon/circuitboard/teleporter" + circuit = /obj/item/weapon/circuitboard/teleporter var/obj/item/device/gps/locked = null var/regime_set = "Teleporter" var/id = null diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index e2b26e7c491..ba1c8872937 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -70,6 +70,7 @@ var/list/admin_verbs_admin = list( /client/proc/secrets, /client/proc/change_human_appearance_admin, /* Allows an admin to change the basic appearance of human-based mobs */ /client/proc/change_human_appearance_self, /* Allows the human-based mob itself change its basic appearance */ + /client/proc/virus_2_creator, /client/proc/debug_variables ) var/list/admin_verbs_ban = list( @@ -234,7 +235,7 @@ var/list/admin_verbs_proccall = list ( /client/proc/hide_verbs() set name = "Adminverbs - Hide All" set category = "Admin" - + if(!holder) return @@ -248,7 +249,7 @@ var/list/admin_verbs_proccall = list ( /client/proc/show_verbs() set name = "Adminverbs - Show" set category = "Admin" - + if(!holder) return @@ -263,8 +264,8 @@ var/list/admin_verbs_proccall = list ( set name = "Aghost" if(!check_rights(R_ADMIN|R_MOD)) - return - + return + if(istype(mob,/mob/dead/observer)) //re-enter var/mob/dead/observer/ghost = mob @@ -287,7 +288,7 @@ var/list/admin_verbs_proccall = list ( set name = "Invisimin" set category = "Admin" set desc = "Toggles ghost-like invisibility (Don't abuse this)" - + if(!check_rights(R_ADMIN)) return @@ -305,8 +306,8 @@ var/list/admin_verbs_proccall = list ( set category = "Admin" if(!check_rights(R_ADMIN)) - return - + return + holder.player_panel_old() feedback_add_details("admin_verb","PP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return @@ -316,8 +317,8 @@ var/list/admin_verbs_proccall = list ( set category = "Admin" if(!check_rights(R_ADMIN|R_MOD)) - return - + return + holder.player_panel_new() feedback_add_details("admin_verb","PPN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return @@ -325,10 +326,10 @@ var/list/admin_verbs_proccall = list ( /client/proc/check_antagonists() set name = "Check Antagonists" set category = "Admin" - + if(!check_rights(R_ADMIN)) - return - + return + holder.check_antagonists() log_admin("[key_name(usr)] checked antagonists") feedback_add_details("admin_verb","CHA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -337,10 +338,10 @@ var/list/admin_verbs_proccall = list ( /client/proc/jobbans() set name = "Display Job bans" set category = "Admin" - + if(!check_rights(R_ADMIN|R_MOD)) return - + if(config.ban_legacy_system) holder.Jobbans() else @@ -351,10 +352,10 @@ var/list/admin_verbs_proccall = list ( /client/proc/unban_panel() set name = "Unban Panel" set category = "Admin" - + if(!check_rights(R_BAN)) return - + if(config.ban_legacy_system) holder.unbanpanel() else @@ -365,10 +366,10 @@ var/list/admin_verbs_proccall = list ( /client/proc/game_panel() set name = "Game Panel" set category = "Admin" - + if(!check_rights(R_ADMIN)) return - + holder.Game() feedback_add_details("admin_verb","GP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return @@ -376,14 +377,14 @@ var/list/admin_verbs_proccall = list ( /client/proc/secrets() set name = "Secrets" set category = "Admin" - + if(!check_rights(R_ADMIN)) - return - + return + holder.Secrets() feedback_add_details("admin_verb","S") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! return - + /client/proc/findStealthKey(txt) if(txt) for(var/P in stealthminID) @@ -401,15 +402,15 @@ var/list/admin_verbs_proccall = list ( if(num == stealthminID[P]) num++ i = 0 - stealthminID["[ckey]"] = "@[num2text(num)]" + stealthminID["[ckey]"] = "@[num2text(num)]" /client/proc/stealth() set category = "Admin" set name = "Stealth Mode" - + if(!check_rights(R_ADMIN)) - return - + return + if(holder) if(holder.fakekey) holder.fakekey = null @@ -428,7 +429,7 @@ var/list/admin_verbs_proccall = list ( #define AUTOBANTIME 10 /client/proc/warn(warned_ckey) - if(!check_rights(R_ADMIN)) + if(!check_rights(R_ADMIN)) return if(!warned_ckey || !istext(warned_ckey)) return @@ -475,7 +476,7 @@ var/list/admin_verbs_proccall = list ( set category = "Special Verbs" set name = "Drop Bomb" set desc = "Cause an explosion of varying strength at your location." - + if(!check_rights(R_EVENT)) return @@ -513,10 +514,10 @@ var/list/admin_verbs_proccall = list ( set category = "Event" set name = "Give Spell" set desc = "Gives a spell to a mob." - + if(!check_rights(R_EVENT)) - return - + return + var/list/spell_list = list() var/type_length = length("/obj/effect/proc_holder/spell") + 2 for(var/A in spells) @@ -529,7 +530,7 @@ var/list/admin_verbs_proccall = list ( T.mind.AddSpell(new S) else T.AddSpell(new S) - + feedback_add_details("admin_verb","GS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! log_admin("[key_name(usr)] gave [key_name(T)] the spell [S].") message_admins("[key_name_admin(usr)] gave [key_name(T)] the spell [S].", 1) @@ -539,7 +540,7 @@ var/list/admin_verbs_proccall = list ( set category = "Event" set name = "Give Disease" set desc = "Gives a Disease to a mob." - + if(!check_rights(R_EVENT)) return @@ -576,10 +577,10 @@ var/list/admin_verbs_proccall = list ( set category = "Event" set name = "Make Sound" set desc = "Display a message to everyone who can hear the target" - + if(!check_rights(R_EVENT)) - return - + return + if(O) var/message = input("What do you want the message to be?", "Make Sound") as text|null if(!message) @@ -593,10 +594,10 @@ var/list/admin_verbs_proccall = list ( /client/proc/togglebuildmodeself() set name = "Toggle Build Mode Self" set category = "Event" - + if(!check_rights(R_EVENT)) - return - + return + if(src.mob) togglebuildmode(src.mob) feedback_add_details("admin_verb","TBMS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -605,10 +606,10 @@ var/list/admin_verbs_proccall = list ( set category = "Event" set name = "oSay" set desc = "Display a message to everyone who can hear the target" - + if(!check_rights(R_EVENT)) - return - + return + if(mob.control_object) if(!msg) return @@ -616,17 +617,17 @@ var/list/admin_verbs_proccall = list ( V.show_message("[mob.control_object.name] says: \"" + msg + "\"", 2) log_admin("[key_name(usr)] used oSay on [mob.control_object]: [msg]") message_admins("[key_name_admin(usr)] used oSay on [mob.control_object]: [msg]") - + feedback_add_details("admin_verb","OT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/kill_air() // -- TLE set category = "Debug" set name = "Kill Air" set desc = "Toggle Air Processing" - + if(!check_rights(R_DEBUG)) - return - + return + if(air_processing_killed) air_processing_killed = 0 usr << "Enabled air processing." @@ -643,7 +644,7 @@ var/list/admin_verbs_proccall = list ( if(!check_rights(R_ADMIN|R_MOD|R_MENTOR)) return - + log_admin("[key_name(usr)] deadmined themself.") message_admins("[key_name_admin(usr)] deadmined themself.") deadmin() @@ -656,7 +657,7 @@ var/list/admin_verbs_proccall = list ( set name = "Re-admin self" set category = "Admin" set desc = "Regain your admin powers." - + var/datum/admins/D = admin_datums[ckey] var/rank = null if(config.admin_legacy_system) @@ -722,10 +723,10 @@ var/list/admin_verbs_proccall = list ( /client/proc/toggle_log_hrefs() set name = "Toggle href logging" set category = "Server" - + if(!check_rights(R_SERVER)) return - + if(config) if(config.log_hrefs) config.log_hrefs = 0 @@ -738,7 +739,7 @@ var/list/admin_verbs_proccall = list ( set name = "Check AI Laws" set category = "Admin" - if(!check_rights(R_ADMIN)) + if(!check_rights(R_ADMIN)) return holder.output_ai_laws() @@ -747,7 +748,7 @@ var/list/admin_verbs_proccall = list ( set name = "Manage Silicon Laws" set category = "Admin" - if(!check_rights(R_ADMIN)) + if(!check_rights(R_ADMIN)) return var/mob/living/silicon/S = input("Select silicon.", "Manage Silicon Laws") as null|anything in silicon_mob_list @@ -762,7 +763,7 @@ var/list/admin_verbs_proccall = list ( set name = "C.M.A. - Admin" set desc = "Allows you to change the mob appearance" set category = "Admin" - + if(!check_rights(R_ADMIN)) return @@ -778,7 +779,7 @@ var/list/admin_verbs_proccall = list ( set name = "C.M.A. - Self" set desc = "Allows the mob to change its appearance" set category = "Admin" - + if(!check_rights(R_ADMIN)) return @@ -798,13 +799,26 @@ var/list/admin_verbs_proccall = list ( H.change_appearance(APPEARANCE_ALL, H.loc, check_species_whitelist = 1) feedback_add_details("admin_verb","CMAS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! +/client/proc/virus_2_creator() + set name = "Virus2 Creator" + set desc = "Allows you to create and spread custom viruses." + set category = "Admin" + + if(!check_rights(R_ADMIN)) + return + + var/datum/nano_module/virus2/virus2 = new() + virus2.ui_interact(usr, state = admin_state) + log_and_message_admins("has opened the virus2 creator.") + feedback_add_details("admin_verb","VS2C") + /client/proc/free_slot() set name = "Free Job Slot" set category = "Admin" - + if(!check_rights(R_ADMIN)) return - + var/list/jobs = list() for (var/datum/job/J in job_master.occupations) if (J.current_positions >= J.total_positions && J.total_positions != -1) @@ -821,7 +835,7 @@ var/list/admin_verbs_proccall = list ( /client/proc/toggleattacklogs() set name = "Toggle Attack Log Messages" set category = "Preferences" - + if(!check_rights(R_ADMIN)) return @@ -835,10 +849,10 @@ var/list/admin_verbs_proccall = list ( /client/proc/toggledrones() set name = "Toggle Maintenance Drones" set category = "Server" - - if(!check_rights(R_SERVER)) + + if(!check_rights(R_SERVER)) return - + config.allow_drone_spawn = !(config.allow_drone_spawn) log_admin("[key_name(usr)] has [config.allow_drone_spawn ? "enabled" : "disabled"] maintenance drones.") message_admins("[key_name_admin(usr)] has [config.allow_drone_spawn ? "enabled" : "disabled"] maintenance drones.") @@ -846,7 +860,7 @@ var/list/admin_verbs_proccall = list ( /client/proc/toggledebuglogs() set name = "Toggle Debug Log Messages" set category = "Preferences" - + if(!check_rights(R_DEBUG)) return @@ -860,7 +874,7 @@ var/list/admin_verbs_proccall = list ( set category = "Admin" set name = "Man Up" set desc = "Tells mob to man up and deal with it." - + if(!check_rights(R_ADMIN)) return @@ -874,7 +888,7 @@ var/list/admin_verbs_proccall = list ( set category = "Admin" set name = "Man Up Global" set desc = "Tells everyone to man up and deal with it." - + if(!check_rights(R_ADMIN)) return diff --git a/code/modules/atmos_automation/console.dm b/code/modules/atmos_automation/console.dm index 0a558747523..0a8aecb9150 100644 --- a/code/modules/atmos_automation/console.dm +++ b/code/modules/atmos_automation/console.dm @@ -2,7 +2,7 @@ icon = 'icons/obj/computer.dmi' icon_screen = "area_atmos" icon_keyboard = "atmos_key" - circuit = "/obj/item/weapon/circuitboard/atmos_automation" + circuit = /obj/item/weapon/circuitboard/atmos_automation req_one_access_txt = "24;10" Mtoollink = 1 diff --git a/code/modules/computer3/computers/law.dm b/code/modules/computer3/computers/law.dm index 3d0cd0eb23e..1ee99e5b9cb 100644 --- a/code/modules/computer3/computers/law.dm +++ b/code/modules/computer3/computers/law.dm @@ -4,7 +4,6 @@ name = "AI Upload" desc = "Used to upload laws to the AI." icon_state = "frame-rnd" - circuit = "/obj/item/part/board/circuit/aiupload" var/mob/living/silicon/ai/current = null var/opened = 0 @@ -56,7 +55,6 @@ name = "Cyborg Upload" desc = "Used to upload laws to Cyborgs." icon_state = "frame-rnd" - circuit = "/obj/item/part/board/circuit/borgupload" var/mob/living/silicon/robot/current = null diff --git a/code/modules/mining/laborcamp/laborshuttle.dm b/code/modules/mining/laborcamp/laborshuttle.dm index 41d54ca1279..e9566668b21 100644 --- a/code/modules/mining/laborcamp/laborshuttle.dm +++ b/code/modules/mining/laborcamp/laborshuttle.dm @@ -69,7 +69,7 @@ proc/move_labor_shuttle() //TODO: Security Access only; add moving the shuttle t name = "Labor Shuttle Console" icon = 'icons/obj/computer.dmi' icon_state = "shuttle" - circuit = "/obj/item/weapon/circuitboard/labor_shuttle" + circuit = /obj/item/weapon/circuitboard/labor_shuttle var/location = 0 //0 = station, 1 = labor camp req_access = list(access_brig) var/hacked = 0 @@ -114,7 +114,7 @@ proc/move_labor_shuttle() //TODO: Security Access only; add moving the shuttle t /obj/machinery/computer/labor_shuttle/one_way name = "Prisoner Shuttle Console" desc = "A one-way shuttle console, used to summon the shuttle to the labor camp." - circuit = "/obj/item/weapon/circuitboard/one_way_shuttle" + circuit = /obj/item/weapon/circuitboard/labor_shuttle/one_way req_access = list( ) /obj/machinery/computer/labor_shuttle/one_way/attack_hand(user as mob) diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm index 52fd9ad29fc..0710e90c2a2 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -96,7 +96,7 @@ if(istype(A, /mob/living)) var/mob/living/L = A L.visible_message("[src] pounces on [L]!", "[src] pounces on you!") - L.Weaken(5) + apply_effect(5, WEAKEN, run_armor_check("chest", "melee")) sleep(2)//Runtime prevention (infinite bump() calls on hulks) step_towards(src,L) diff --git a/code/modules/mob/living/carbon/human/human_attackalien.dm b/code/modules/mob/living/carbon/human/human_attackalien.dm index e40030c9e0f..f948cdb2b3b 100644 --- a/code/modules/mob/living/carbon/human/human_attackalien.dm +++ b/code/modules/mob/living/carbon/human/human_attackalien.dm @@ -34,8 +34,9 @@ M.do_attack_animation(src) var/randn = rand(1, 100) if (randn <= 80) + var/obj/item/organ/external/affecting = get_organ(ran_zone(M.zone_sel.selecting)) playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) - Weaken(5) + apply_effect(5, WEAKEN, run_armor_check(affecting, "melee")) for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) O.show_message(text("\red [] has tackled down []!", M, src), 1) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 4af3cf88499..56d197e3b88 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -77,7 +77,7 @@ emp_act /mob/living/carbon/human/proc/getarmor_organ(var/obj/item/organ/external/def_zone, var/type) if(!type || !def_zone) return 0 var/protection = 0 - var/list/body_parts = list(head, wear_mask, wear_suit, w_uniform) + var/list/body_parts = list(head, wear_mask, wear_suit, w_uniform, back, gloves, shoes, belt, s_store, glasses, l_ear, r_ear, wear_id) //Everything but pockets. Pockets are l_store and r_store. (if pockets were allowed, putting something armored, gloves or hats for example, would double up on the armor) for(var/bp in body_parts) if(!bp) continue if(bp && istype(bp ,/obj/item/clothing)) diff --git a/code/modules/mob/living/carbon/human/npcs.dm b/code/modules/mob/living/carbon/human/npcs.dm index 290c81723ee..b66a0ee52ba 100644 --- a/code/modules/mob/living/carbon/human/npcs.dm +++ b/code/modules/mob/living/carbon/human/npcs.dm @@ -10,4 +10,4 @@ spawn(1) name = "Pun Pun" real_name = name - w_uniform = new /obj/item/clothing/under/punpun(src) \ No newline at end of file + equip_to_slot(new /obj/item/clothing/under/punpun(src), slot_w_uniform) \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/drone/drone_console.dm b/code/modules/mob/living/silicon/robot/drone/drone_console.dm index 2e0dedb1461..b59f69ec3c0 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_console.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_console.dm @@ -4,7 +4,7 @@ icon_screen = "power" icon_keyboard = "power_key" req_access = list(access_engine_equip) - circuit = "/obj/item/weapon/circuitboard/drone_control" + circuit = /obj/item/weapon/circuitboard/drone_control //Used when pinging drones. var/drone_call_area = "Engineering" diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 8546c793876..aa37549606b 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -471,6 +471,7 @@ src.modules += new /obj/item/weapon/matter_decompiler(src) src.modules += new /obj/item/weapon/reagent_containers/spray/cleaner/drone(src) src.modules += new /obj/item/weapon/soap(src) + src.modules += new /obj/item/device/t_scanner(src) src.emag = new /obj/item/weapon/pickaxe/drill/cyborg/diamond(src) @@ -499,4 +500,4 @@ var/mob/living/silicon/robot/R = src.loc - return (src in R.module.modules) + return (src in R.module.modules) \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/bot_swarm/swarmer.dm b/code/modules/mob/living/simple_animal/bot_swarm/swarmer.dm index 530409bd517..d4cac27a309 100644 --- a/code/modules/mob/living/simple_animal/bot_swarm/swarmer.dm +++ b/code/modules/mob/living/simple_animal/bot_swarm/swarmer.dm @@ -227,6 +227,9 @@ /obj/item/stack/cable_coil/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)//Wiring would be too effective as a resource S << "This object does not contain enough materials to work with." +/obj/item/weapon/circuitboard/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + S << "This object does not contain enough materials to work with." + /obj/machinery/porta_turret/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "Attempting to dismantle this machine would result in an immediate counterattack. Aborting." @@ -323,8 +326,7 @@ if(istype(target, /obj/machinery/computer)) var/obj/machinery/computer/C = target if(C.circuit) - var/obj/item/weapon/circuitboard/circuit = text2path(C.circuit) - new circuit(get_turf(M)) + new C.circuit(get_turf(M)) qdel(target) diff --git a/code/modules/nano/modules/virus2_creator.dm b/code/modules/nano/modules/virus2_creator.dm new file mode 100644 index 00000000000..ad262f9ab5d --- /dev/null +++ b/code/modules/nano/modules/virus2_creator.dm @@ -0,0 +1,142 @@ +/datum/nano_module/virus2 + name = "Virus Creator" + + var/mob/virus_target = null + var/datum/disease2/disease/curr_virus = null + +/datum/nano_module/virus2/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = default_state) + var/data[0] + + data["virus_target"] = virus_target + data["curr_virus"] = curr_virus ? curr_virus.uniqueID : null + if(curr_virus) + var/effects[0] + for(var/datum/disease2/effectholder/E in curr_virus.effects) + var/subeffect[0] + subeffect["name"] = E.effect.name + subeffect["stage"] = E.stage + subeffect["chance"] = E.chance + subeffect["multiplier"] = E.multiplier + subeffect["badness"] = E.effect.badness + + effects.Add(list(subeffect)) + data["virus_effects"] = effects + + var/virusstats[0] + virusstats["antigen"] = antigens2string(curr_virus.antigen) + virusstats["spreadType"] = curr_virus.spreadtype + virusstats["affectedSpecies"] = list2text(curr_virus.affected_species, ", ") + virusstats["speed"] = curr_virus.speed + data["virusStats"] = virusstats + + + + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) + if (!ui) + ui = new(user, src, ui_key, "virus2_creator.tmpl", "[src]", 800, 450, state = state) + ui.set_initial_data(data) + ui.open() + ui.set_auto_update(1) + +/datum/nano_module/virus2/Topic(href, href_list) + if(..()) + return 1 + + if(href_list["setTarget"]) + var/list/mob_list_l = list() + for(var/mob/living/carbon/human/H in mob_list) + mob_list_l += H + mob_list_l = sortList(mob_list_l) + mob_list_l += "Random" + + var/newTarget = input(usr, "Who do you want to infect?", "Infection", "Random") as null|anything in mob_list_l + if(newTarget) + if(newTarget == "Random") + virus_target = null + else + if(ismob(newTarget)) + virus_target = newTarget + return 1 + + if(href_list["createVirus"]) + if(curr_virus) + if(alert(usr, "Would you like to delete the current virus and generate a new one?", "Regenerate Virus", "Yes", "No") == "Yes") + qdel(curr_virus) + curr_virus = null + else + return 0 + + var/datum/disease2/disease/new_virus = new() + new_virus.makerandom() + curr_virus = new_virus + new_virus.affected_species = list("Human","Unathi","Skrell","Tajaran","Vox","Kidan","Slime People","Grey","Diona", "Vulpkanin") //restore to default + usr << "New virus generated: [new_virus.uniqueID]." + return 1 + + if(href_list["deleteCurrVirus"]) + if(curr_virus) + qdel(curr_virus) + curr_virus = null + return 1 + + if(href_list["changeEffect"]) + if(curr_virus) + var/stage = text2num(href_list["changeEffect"]) + if(stage) + var/list/L = list() + + for(var/effect in (subtypesof(/datum/disease2/effect))) + var/datum/disease2/effect/E = new effect + if(initial(E.stage) == stage) + L[initial(E.name)] = E + + var/datum/disease2/effectholder/holder = curr_virus.effects[stage] + if(holder) + var/datum/disease2/effect/current_effect = holder.effect + + var/C = input("Select effect for stage [stage]:", "Stage [stage]", current_effect.name) as null|anything in L + if(!C) + return 0 + + var/datum/disease2/effect/applied_effect = L[C] + if(istype(applied_effect)) + holder.effect = applied_effect + qdel(current_effect) + else + + return 1 + + if(href_list["changeStat"]) + if(curr_virus) + var/stat = href_list["changeStat"] + var/stage = text2num(href_list["cSEffect"]) + if(stat && stage) + switch(stat) + if("C") + var/C = input(usr, "What would you like to change the chance to? ", "Edit Chance", null) as null|num + if(C) + var/datum/disease2/effectholder/holder = curr_virus.effects[stage] + if(holder) + holder.chance = Clamp(C, 0, holder.effect.chance_maxm) + + if("M") + var/C = input(usr, "What would you like to change the multiplier to?", "Edit Multiplier", null) as null|num + if(C) + var/datum/disease2/effectholder/holder = curr_virus.effects[stage] + if(holder) + holder.multiplier = Clamp(C, 1, holder.effect.maxm) + return 1 + + if(href_list["spreadToTarget"]) + if(curr_virus) + if(virus_target) + infect_virus2(virus_target, curr_virus, 1) //no protection from gods + else //random + var/list/mob_list_l = list() + for(var/mob/living/carbon/human/H in mob_list) + if(H.client) + mob_list_l += H + + var/mob/living/carbon/human/H = pick(mob_list_l) + if(H && H.client) + infect_virus2(H, curr_virus, 1) //no protection from gods \ No newline at end of file diff --git a/code/modules/research/xenoarchaeology/genetics/reconstitutor.dm b/code/modules/research/xenoarchaeology/genetics/reconstitutor.dm index 23413d4f0df..dc6bdc70521 100644 --- a/code/modules/research/xenoarchaeology/genetics/reconstitutor.dm +++ b/code/modules/research/xenoarchaeology/genetics/reconstitutor.dm @@ -15,7 +15,7 @@ datum/genesequence icon = 'icons/obj/computer.dmi' icon_keyboard = "med_key" icon_screen = "dna" - circuit = "/obj/item/weapon/circuitboard/reconstitutor" + circuit = /obj/item/weapon/circuitboard/reconstitutor req_access = list(access_heads) //Only used for record deletion right now. var/obj/machinery/clonepod/pod1 = 1 //Linked cloning pod. var/temp = "" @@ -42,7 +42,7 @@ datum/genesequence name = "Fauna reconstitution console" accepted_fossil_types = list(/obj/item/weapon/fossil/bone,/obj/item/weapon/fossil/shell,/obj/item/weapon/fossil/skull) pod1 = null - circuit = "/obj/item/weapon/circuitboard/reconstitutor/animal" + circuit = /obj/item/weapon/circuitboard/reconstitutor/animal /obj/machinery/computer/reconstitutor/animal/initialize() undiscovered_genesequences = master_controller.all_animal_genesequences.Copy() diff --git a/code/modules/shuttles/whiteship.dm b/code/modules/shuttles/whiteship.dm index e0d485afb11..7ae19d3482a 100644 --- a/code/modules/shuttles/whiteship.dm +++ b/code/modules/shuttles/whiteship.dm @@ -2,7 +2,7 @@ name = "medical ship control console" req_access = list() shuttle_tag = "White Ship" - circuit = "/obj/item/weapon/circuitboard/white_ship" + circuit = /obj/item/weapon/circuitboard/white_ship light_color = LIGHT_COLOR_DARKRED /obj/machinery/computer/shuttle_control/multi/whiteship/attack_ai(user as mob) diff --git a/code/modules/virus2/disease2.dm b/code/modules/virus2/disease2.dm index f685bbe2b12..95b5ab60583 100644 --- a/code/modules/virus2/disease2.dm +++ b/code/modules/virus2/disease2.dm @@ -10,8 +10,8 @@ var/list/datum/disease2/effectholder/effects = list() var/antigen = 0 // 16 bits describing the antigens, when one bit is set, a cure with that bit can dock here var/max_stage = 4 - var/list/affected_species = list("Human","Unathi","Skrell","Tajaran","Vox","Kidan","Slime People","Grey","Diona", "Vulpkanin") - + var/list/affected_species = list("Human","Unathi","Skrell","Tajaran","Vox","Kidan","Slime People","Grey","Diona", "Vulpkanin") //if this is changed, also change modules/nano/modules/virus2_creator.dm + //as you cannot use initial() with lists /datum/disease2/disease/New() uniqueID = rand(0,10000) ..() diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index 388011b8ca1..b3ce39511b5 100644 Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ diff --git a/nano/templates/virus2_creator.tmpl b/nano/templates/virus2_creator.tmpl new file mode 100644 index 00000000000..810bd8b124f --- /dev/null +++ b/nano/templates/virus2_creator.tmpl @@ -0,0 +1,76 @@ + +
+
+ Spread to: +
+
+ {{:helper.link(data.virus_target ? data.virus_target : "Random", null, {"setTarget" : 1})}} +
+
+ +{{:helper.link("Spread", null, {"spreadToTarget" : 1}, null, "notice")}} + +

Virus Creation

+
+
+ Virus: +
+
+ {{:helper.link(data.curr_virus ? data.curr_virus : "Create", null, {"createVirus" : 1})}} + {{:helper.link("Delete", null, {"deleteCurrVirus" : 1})}} +
+
+ + + +{{if data.curr_virus}} +
+

Stats

+
+
+ Antigen: +
+
+ {{:data.virusStats.antigen}} +
+ +
+ Spread: +
+
+ {{:data.virusStats.spreadType}} +
+ +
+ Speed: +
+
+ {{:data.virusStats.speed}} +
+ +
+ Affected Species: +
+
+ {{:data.virusStats.affectedSpecies}} +
+ +
+

Effects

+ {{for data.virus_effects}} +
+
+ {{:helper.link(value.name, null, {"changeEffect" : value.stage})}} +
+
+ {{:helper.link("Stage: " + value.stage, null, null, null, "linkOff")}} + {{:helper.link("Chance: " + value.chance, null, {"changeStat" : "C", "cSEffect" : value.stage})}} + {{:helper.link("Multiplier: " + value.multiplier, null, {"changeStat" : "M", "cSEffect" : value.stage})}} + {{:helper.link("Badness: " + value.badness, null, null, null, "linkOff")}} +
+
+ {{/for}} +{{/if}} \ No newline at end of file diff --git a/paradise.dme b/paradise.dme index 9ff1096b70d..578e68069d7 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1514,6 +1514,7 @@ #include "code\modules\nano\modules\law_manager.dm" #include "code\modules\nano\modules\nano_module.dm" #include "code\modules\nano\modules\power_monitor.dm" +#include "code\modules\nano\modules\virus2_creator.dm" #include "code\modules\ninja\energy_katana.dm" #include "code\modules\ninja\suit\gloves.dm" #include "code\modules\ninja\suit\head.dm"