diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 92c4fd732a8..c572710e85a 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -3,17 +3,19 @@ ## Описание - + -## Ссылка на предложение/Причина создания ПР +## Причина создания ПР / Почему это хорошо для игры - - + + + + ## Демонстрация изменений - + ## Тесты - + diff --git a/_maps/map_files/nova/nova.dmm b/_maps/map_files/nova/nova.dmm index 5fe1e3dbb3c..faf10b9e956 100644 --- a/_maps/map_files/nova/nova.dmm +++ b/_maps/map_files/nova/nova.dmm @@ -2577,7 +2577,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/chapel/main) +/area/chapel/massdriver) "atT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sign/poster/official/nanotrasen_logo{ @@ -2780,7 +2780,7 @@ dir = 6; icon_state = "vault" }, -/area/chapel/main) +/area/chapel/massdriver) "avP" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -3200,9 +3200,6 @@ pixel_y = -22; req_access = list(39) }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/structure/cable{ icon_state = "1-4" }, @@ -3211,6 +3208,9 @@ /obj/structure/disposalpipe/segment{ dir = 9 }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "whitegreen" @@ -3729,7 +3729,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "aCQ" = ( /obj/machinery/door/airlock/security/glass{ id = "Interrogation"; @@ -4108,7 +4108,6 @@ }, /obj/machinery/power/apc{ dir = 4; - name = "east bump"; pixel_x = 26 }, /turf/simulated/floor/plasteel{ @@ -5320,6 +5319,18 @@ icon_state = "purple" }, /area/hallway/primary/fore) +"aNX" = ( +/obj/structure/window/reinforced, +/obj/item/flag/nt, +/obj/structure/sign/beautyplaque{ + pixel_y = 32; + name = "Благодарственное Письмо от Главного Инженера станции Нова"; + desc = "Важное Уточнение! Рабочие пожелали оставаться анонимными, поэтому, обойдёмся их прозвищами. За помощь Главному Инженеру Новы в поисках и устранении неисправностей на станции НаноТрейзен. С благодарностью, Saad603. Слава НаноТрейзен!" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/bridge) "aOb" = ( /obj/structure/table/wood/fancy/royalblack, /obj/item/clothing/under/syndicate/blackops_civ, @@ -8542,6 +8553,12 @@ icon_state = "neutral" }, /area/hallway/primary/central/sw) +"bmb" = ( +/obj/machinery/door/airlock/maintenance{ + req_access = list(12) + }, +/turf/simulated/floor/plating, +/area/maintenance/fsmaint3) "bmd" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random_spawners/blood_20, @@ -8615,11 +8632,11 @@ /turf/simulated/floor/plating, /area/security/permabrig) "bmP" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ +/obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, /turf/simulated/floor/plasteel{ - dir = 1 + icon_state = "redcorner" }, /area/security/prison/cell_block/A) "bmR" = ( @@ -9188,7 +9205,7 @@ dir = 9; icon_state = "darkblue" }, -/area/chapel/main) +/area/chapel/massdriver) "bqA" = ( /obj/effect/spawner/window/reinforced, /turf/simulated/floor/plating, @@ -11061,17 +11078,10 @@ }, /area/security/processing) "bDb" = ( -/obj/machinery/atmospherics/unary/vent_scrubber{ - name = "standard air scrubber"; - on = 1; - scrub_N2O = 1; - scrub_Toxins = 1; - dir = 1 - }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/chapel/main) +/area/chapel/massdriver) "bDc" = ( /obj/structure/chair/stool, /obj/effect/decal/cleanable/dust, @@ -12516,7 +12526,7 @@ dir = 8; icon_state = "vault" }, -/area/tcommsat/chamber) +/area/tcommsat/server) "bNL" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -13239,15 +13249,13 @@ /turf/simulated/floor/plating, /area/maintenance/asmaint4) "bSJ" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, /obj/structure/cable{ icon_state = "1-8" }, /obj/structure/cable{ icon_state = "1-4" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 1 }, @@ -13773,6 +13781,10 @@ icon_state = "neutralfull" }, /area/hallway/primary/central/north) +"bWi" = ( +/obj/structure/flora/ausbushes/leafybush, +/turf/simulated/floor/grass, +/area/maintenance/garden) "bWj" = ( /obj/effect/spawner/window/reinforced, /obj/structure/cable{ @@ -14360,7 +14372,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/chapel/main) +/area/chapel/massdriver) "caB" = ( /obj/item/twohanded/required/kirbyplants, /turf/simulated/floor/plasteel{ @@ -14722,7 +14734,7 @@ dir = 4; icon_state = "darkredcorners" }, -/area/tcommsat/chamber) +/area/tcommsat/server) "cdq" = ( /obj/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -14830,7 +14842,7 @@ dir = 8; icon_state = "darkblue" }, -/area/chapel/main) +/area/chapel/massdriver) "cej" = ( /obj/structure/grille/broken, /turf/simulated/floor/plating, @@ -15490,7 +15502,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/chapel/main) +/area/chapel/massdriver) "cjO" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -16229,7 +16241,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "cpg" = ( /obj/effect/spawner/random_spawners/crate_spawner, /turf/simulated/floor/plating, @@ -16295,7 +16307,7 @@ "cpJ" = ( /obj/machinery/computer/security, /turf/simulated/floor/redgrid, -/area/tcommsat/chamber) +/area/tcommsat/server) "cpN" = ( /obj/structure/table/wood, /obj/item/flashlight/flare{ @@ -17220,7 +17232,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/chapel/main) +/area/chapel/massdriver) "cvY" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -17522,7 +17534,9 @@ dir = 4 }, /obj/structure/window/reinforced, -/obj/item/twohanded/required/kirbyplants, +/obj/item/twohanded/required/kirbyplants{ + layer = 3.1 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -18114,17 +18128,6 @@ icon_state = "caution" }, /area/atmos/control) -"cDr" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel{ - dir = 1 - }, -/area/security/prison/cell_block/A) "cDE" = ( /turf/simulated/floor/plasteel{ dir = 8; @@ -18754,7 +18757,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "cHO" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=A2"; @@ -18937,7 +18940,7 @@ dir = 5; icon_state = "vault" }, -/area/chapel/main) +/area/chapel/massdriver) "cJZ" = ( /obj/machinery/smartfridge, /obj/machinery/door/window/eastleft{ @@ -19565,6 +19568,9 @@ c_tag = "Brig Cell 2"; dir = 10 }, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, /turf/simulated/floor/carpet/cyan, /area/security/prison/cell_block/A) "cOz" = ( @@ -20860,12 +20866,6 @@ tag = "icon-wood-broken" }, /area/maintenance/casino) -"cXR" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/turf/simulated/floor/plasteel{ - dir = 1 - }, -/area/security/prison/cell_block/A) "cXW" = ( /obj/machinery/atmospherics/unary/vent_scrubber{ dir = 1; @@ -21441,7 +21441,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/chapel/main) +/area/chapel/massdriver) "ddi" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/tiles/damageturf, @@ -22626,6 +22626,20 @@ icon_state = "redfull" }, /area/security/checkpoint) +"dnh" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = -26 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/chapel/office) "dni" = ( /obj/structure/table/wood, /obj/machinery/fishtank/bowl, @@ -24063,6 +24077,10 @@ }, /turf/simulated/floor/carpet, /area/medical/psych) +"dxq" = ( +/obj/structure/flora/ausbushes/grassybush, +/turf/simulated/floor/grass, +/area/maintenance/garden) "dxv" = ( /obj/structure/cable{ icon_state = "1-2" @@ -24581,6 +24599,14 @@ }, /turf/simulated/floor/glass/reinforced, /area/quartermaster/qm) +"dAX" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/chapel/massdriver) "dAZ" = ( /obj/machinery/door/airlock/silver{ name = "Bathroom" @@ -26030,6 +26056,13 @@ /area/security/interrogation) "dNe" = ( /obj/effect/decal/cleanable/dirt, +/obj/structure/safe/floor, +/obj/item/reagent_containers/food/condiment/cheesesauce, +/obj/item/reagent_containers/food/condiment/garlicsauce, +/obj/item/reagent_containers/food/condiment/diablosauce, +/obj/item/reagent_containers/food/condiment/mushroomsauce, +/obj/item/reagent_containers/food/condiment/herbs, +/obj/item/reagent_containers/food/condiment/soysauce, /turf/simulated/floor/plasteel{ icon_state = "bar" }, @@ -26659,6 +26692,7 @@ dir = 1; pixel_y = -25 }, +/obj/item/reagent_containers/spray/pestspray, /turf/simulated/floor/grass, /area/maintenance/garden) "dRw" = ( @@ -27273,20 +27307,24 @@ }, /area/toxins/xenobiology) "dWV" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, /obj/structure/disposalpipe/segment{ dir = 9 }, +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = 26 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plasteel{ dir = 9; icon_state = "vault" }, -/area/chapel/main) +/area/chapel/massdriver) "dXb" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plasteel{ @@ -27496,6 +27534,20 @@ icon_state = "darkbluecornersalt" }, /area/crew_quarters/fitness) +"dYX" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = 26 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/chapel/office) "dZb" = ( /obj/structure/cable{ icon_state = "1-2" @@ -29860,7 +29912,7 @@ pixel_x = -28 }, /turf/simulated/floor/redgrid, -/area/tcommsat/chamber) +/area/tcommsat/server) "eoV" = ( /obj/machinery/porta_turret{ dir = 8 @@ -29870,9 +29922,6 @@ }, /area/turret_protected/ai_upload) "eoY" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 4 }, @@ -29887,6 +29936,9 @@ name = "Janitor"; sortType = 22 }, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/simulated/floor/plasteel{ icon_state = "neutralfull" }, @@ -31208,6 +31260,23 @@ }, /turf/simulated/floor/carpet, /area/maintenance/casino) +"ezg" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/simulated/floor/plasteel{ + icon_state = "grimy" + }, +/area/chapel/office) "ezi" = ( /obj/structure/table/reinforced, /obj/item/clothing/ears/earmuffs, @@ -32333,11 +32402,14 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/simulated/floor/plasteel{ dir = 9; icon_state = "vault" }, -/area/chapel/main) +/area/chapel/massdriver) "eHH" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -32695,7 +32767,7 @@ dir = 5; icon_state = "darkblue" }, -/area/chapel/main) +/area/chapel/massdriver) "eKz" = ( /turf/simulated/wall, /area/clownoffice) @@ -32740,11 +32812,16 @@ /turf/simulated/floor/plasteel, /area/crew_quarters/toilet) "eKM" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_y = 28; + pixel_x = 28 + }, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "darkred" }, -/area/tcommsat/chamber) +/area/tcommsat/server) "eLa" = ( /obj/structure/flora/ausbushes/ppflowers, /obj/structure/flora/ausbushes/ywflowers, @@ -33311,7 +33388,7 @@ dir = 8; icon_state = "vault" }, -/area/tcommsat/chamber) +/area/tcommsat/server) "eOZ" = ( /obj/machinery/power/tesla_coil, /obj/effect/decal/warning_stripes/yellow/hollow, @@ -33490,7 +33567,7 @@ "eQG" = ( /obj/machinery/firealarm{ dir = 4; - pixel_x = 28 + pixel_x = 26 }, /turf/simulated/floor/plasteel{ dir = 6; @@ -33698,7 +33775,7 @@ dir = 9; icon_state = "vault" }, -/area/chapel/main) +/area/chapel/massdriver) "eSV" = ( /obj/machinery/gateway{ dir = 1 @@ -34445,6 +34522,12 @@ pixel_y = -9 }, /obj/item/shard, +/obj/structure/curtain/open/shower/security{ + alpha = 255; + name = "backstage"; + anchored = 1; + pixel_y = 0 + }, /turf/simulated/floor/plating, /area/maintenance/backstage) "eYL" = ( @@ -35292,7 +35375,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/turf/simulated/floor/carpet/royalblack, +/turf/simulated/floor/carpet/black, /area/ntrep) "feN" = ( /obj/machinery/computer/arcade/orion_trail, @@ -36122,7 +36205,7 @@ /area/turret_protected/aisat_interior/secondary) "fkL" = ( /obj/machinery/vending/boozeomat, -/turf/simulated/floor/carpet/royalblack, +/turf/simulated/floor/carpet/black, /area/ntrep) "fkO" = ( /obj/structure/railing/corner{ @@ -36160,9 +36243,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -36173,6 +36253,9 @@ /obj/effect/turf_decal/siding/white{ dir = 1 }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/simulated/floor/glass, /area/crew_quarters/locker) "flc" = ( @@ -36746,6 +36829,18 @@ icon_state = "whitebluefull" }, /area/medical/surgery/south) +"fps" = ( +/obj/structure/window/reinforced, +/obj/item/flag/nt, +/obj/structure/sign/tajarplaque{ + desc = "Важное Уточнение! Рабочие пожелали оставаться анонимными, поэтому, обойдёмся их прозвищами. Особая благодарность за помощь Главному Инженеру Новы в поисках и устранении неисправностей на станции НаноТрейзен. С благодарностью, Daeberdir. Слава НаноТрейзен!"; + name = "Благодарственное Письмо от Главного Инженера станции Нова"; + pixel_y = 32 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/bridge) "fpt" = ( /obj/item/radio/intercom{ pixel_x = 28 @@ -37200,16 +37295,13 @@ "fsy" = ( /obj/effect/decal/cleanable/vomit, /obj/effect/decal/cleanable/dirt, -/obj/machinery/power/apc{ - name = "south bump"; - pixel_y = -26 +/obj/structure/disposalpipe/segment{ + dir = 4 }, /obj/structure/cable{ + d1 = 4; d2 = 8; - icon_state = "0-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 + icon_state = "4-8" }, /turf/simulated/floor/plating, /area/maintenance/disposal) @@ -38122,6 +38214,7 @@ }, /area/medical/genetics) "fzn" = ( +/obj/structure/flora/ausbushes/ppflowers, /obj/item/storage/bag/plants/portaseeder, /turf/simulated/floor/grass, /area/maintenance/garden) @@ -38179,10 +38272,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/disposalpipe/segment, +/obj/machinery/light_switch{ + pixel_x = -26; + pixel_y = -26 + }, /turf/simulated/floor/plasteel{ icon_state = "darkblue" }, -/area/chapel/main) +/area/chapel/massdriver) "fzE" = ( /obj/machinery/door_control{ id = "xeno5"; @@ -38749,7 +38846,7 @@ dir = 4; icon_state = "darkblue" }, -/area/chapel/main) +/area/chapel/massdriver) "fDY" = ( /turf/simulated/wall, /area/crew_quarters/kitchen) @@ -39863,6 +39960,7 @@ dir = 4 }, /obj/machinery/hologram/holopad, +/obj/effect/decal/warning_stripes/blue/hollow, /turf/simulated/floor/plasteel{ dir = 1 }, @@ -41668,6 +41766,11 @@ }, /turf/simulated/floor/wood/dark, /area/ntrep) +"fZu" = ( +/obj/structure/flora/ausbushes/ywflowers, +/obj/structure/flora/ausbushes/ppflowers, +/turf/simulated/floor/grass, +/area/maintenance/garden) "fZz" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/drip{ @@ -42044,7 +42147,6 @@ }, /area/hallway/secondary/exit/maint) "gcH" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, @@ -42054,6 +42156,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, /turf/simulated/floor/plasteel{ dir = 1 }, @@ -42524,7 +42629,7 @@ dir = 6; icon_state = "darkred" }, -/area/tcommsat/chamber) +/area/tcommsat/server) "gfP" = ( /turf/simulated/openspace, /area/quartermaster/delivery) @@ -43010,7 +43115,7 @@ dir = 9; icon_state = "darkred" }, -/area/tcommsat/chamber) +/area/tcommsat/server) "gjB" = ( /obj/structure/table/reinforced, /obj/item/taperecorder, @@ -43262,6 +43367,12 @@ }, /turf/simulated/floor/glass, /area/crew_quarters/chief) +"gkR" = ( +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkredcorners" + }, +/area/tcommsat/server) "gkT" = ( /obj/effect/turf_decal/siding/wood{ dir = 8; @@ -43556,11 +43667,13 @@ tag_airpump = "ai_pump"; tag_chamber_sensor = "ai_sensor"; tag_exterior_door = "ai_outer"; - tag_interior_door = "ai_inner" + tag_interior_door = "ai_inner"; + pixel_y = -3 }, /obj/machinery/airlock_sensor{ id_tag = "ai_sensor"; - pixel_x = -28 + pixel_x = 28; + pixel_y = 4 }, /turf/simulated/floor/plasteel{ dir = 8; @@ -43876,9 +43989,6 @@ /turf/simulated/floor/plasteel, /area/security/permabrig) "gpy" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/manifold/hidden/supply, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /obj/structure/cable{ @@ -43888,6 +43998,11 @@ /obj/effect/turf_decal/siding/white{ dir = 1 }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, /turf/simulated/floor/glass, /area/crew_quarters/locker) "gpI" = ( @@ -44183,7 +44298,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "grY" = ( /obj/structure/sign/directions/cargo{ dir = 4 @@ -44238,23 +44353,22 @@ /obj/machinery/embedded_controller/radio/airlock/airlock_controller{ id_tag = "robotics_solar_airlock"; layer = 3.3; - pixel_y = -25; + pixel_y = -30; req_access = list(13); tag_airpump = "robotics_solar_pump"; tag_chamber_sensor = "robotics_solar_sensor"; tag_exterior_door = "robotics_solar_outer"; tag_interior_door = "robotics_solar_inner" }, -/obj/machinery/airlock_sensor{ - id_tag = "robotics_solar_sensor"; - layer = 3.3; - pixel_x = 12; - pixel_y = -25 - }, /obj/effect/decal/warning_stripes/yellow, /obj/machinery/light/small{ dir = 1 }, +/obj/machinery/airlock_sensor{ + id_tag = "robotics_solar_sensor"; + layer = 3.3; + pixel_y = -23 + }, /turf/simulated/floor/plating, /area/maintenance/portsolar) "gsB" = ( @@ -44952,7 +45066,12 @@ /area/maintenance/fore) "gxY" = ( /obj/structure/window/reinforced, -/obj/structure/statue/gold/hop{ +/obj/structure/sign/goldenplaque{ + pixel_y = 32; + desc = "Важное Уточнение! Рабочие пожелали оставаться анонимными, поэтому, обойдёмся их прозвищами. За помощь Главному Инженеру Новы в поисках и устранении неисправностей на станции НаноТрейзен. С благодарностью, Zhojaba. Слава НаноТрейзен!"; + name = "Благодарственное Письмо от Главного Инженера станции Нова" + }, +/obj/structure/statue/gold/hos{ pixel_y = 7 }, /turf/simulated/floor/plasteel{ @@ -45487,7 +45606,7 @@ dir = 6; icon_state = "vault" }, -/area/chapel/main) +/area/chapel/massdriver) "gDC" = ( /obj/structure/cable{ icon_state = "4-8" @@ -45578,10 +45697,6 @@ req_access = list(1); color = "red" }, -/obj/item/clothing/suit/armor/riot, -/obj/item/shield/riot, -/obj/item/clothing/gloves/combat, -/obj/item/clothing/head/helmet/riot, /obj/structure/window/reinforced{ color = "red" }, @@ -45593,6 +45708,10 @@ color = "red"; dir = 4 }, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/riot, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -45647,7 +45766,7 @@ icon_state = "1-4" }, /turf/simulated/floor/plasteel{ - icon_state = "red" + dir = 1 }, /area/security/seceqstorage) "gFc" = ( @@ -47437,12 +47556,6 @@ /area/maintenance/fpmaint) "gTN" = ( /obj/item/twohanded/required/kirbyplants, -/obj/structure/curtain/open/shower/security{ - alpha = 255; - name = "backstage"; - anchored = 1; - pixel_y = 32 - }, /obj/effect/decal/cleanable/glass, /turf/simulated/floor/carpet/red, /area/maintenance/backstage) @@ -49030,7 +49143,7 @@ }, /obj/machinery/airlock_sensor{ id_tag = "aisole_sensor"; - pixel_y = -28 + pixel_y = 35 }, /obj/machinery/atmospherics/unary/vent_pump/high_volume{ frequency = 1379; @@ -49572,7 +49685,9 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/item/twohanded/required/kirbyplants, +/obj/item/twohanded/required/kirbyplants{ + layer = 3.1 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -49694,7 +49809,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "hjv" = ( /obj/effect/decal/warning_stripes/north, /turf/simulated/floor/plasteel{ @@ -50348,7 +50463,7 @@ }, /obj/machinery/airlock_sensor{ id_tag = "engineering_west_sensor"; - pixel_y = 7; + pixel_y = 3; pixel_x = 25 }, /turf/simulated/floor/plasteel{ @@ -51154,7 +51269,7 @@ dir = 5; icon_state = "vault" }, -/area/chapel/main) +/area/chapel/massdriver) "hva" = ( /obj/item/chair/wood/wings, /obj/effect/decal/remains/human, @@ -51423,7 +51538,7 @@ dir = 9; icon_state = "vault" }, -/area/chapel/main) +/area/chapel/massdriver) "hxl" = ( /obj/effect/decal/cleanable/dust, /turf/simulated/floor/carpet/orange, @@ -51807,11 +51922,18 @@ /obj/structure/chair{ dir = 1 }, +/obj/item/radio/intercom{ + name = "south station intercom (General)"; + pixel_x = -28 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "darkblue" }, -/area/chapel/main) +/area/chapel/massdriver) +"hBC" = ( +/turf/simulated/wall/r_wall, +/area/tcommsat/server) "hBG" = ( /obj/structure/cable{ icon_state = "1-2" @@ -52140,6 +52262,10 @@ /obj/structure/table, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/item/storage/firstaid/regular, +/obj/item/storage/firstaid/regular{ + pixel_x = 2; + pixel_y = 2 + }, /turf/simulated/floor/plasteel{ dir = 1 }, @@ -53003,9 +53129,6 @@ /turf/simulated/floor/wood, /area/security/detectives_office) "hNs" = ( -/obj/machinery/light_switch{ - pixel_x = -26 - }, /obj/machinery/light{ dir = 8 }, @@ -53392,7 +53515,7 @@ pixel_x = 28 }, /turf/simulated/floor/redgrid, -/area/tcommsat/chamber) +/area/tcommsat/server) "hQr" = ( /obj/structure/cable, /obj/machinery/power/apc{ @@ -53648,10 +53771,13 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/chapel/main) +/area/chapel/massdriver) "hSz" = ( /turf/simulated/floor/plasteel{ icon_state = "darkbluealt" @@ -55185,7 +55311,7 @@ dir = 9; icon_state = "vault" }, -/area/chapel/main) +/area/chapel/massdriver) "idu" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 @@ -55230,7 +55356,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/chapel/main) +/area/chapel/massdriver) "idL" = ( /obj/item/radio/intercom{ dir = 4; @@ -55739,7 +55865,7 @@ dir = 6; icon_state = "vault" }, -/area/chapel/main) +/area/chapel/massdriver) "ihk" = ( /turf/simulated/floor/plasteel{ dir = 1; @@ -55751,9 +55877,6 @@ /turf/simulated/floor/plating, /area/maintenance/secpost) "ihz" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, @@ -55763,6 +55886,9 @@ /obj/structure/cable{ icon_state = "2-4" }, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/simulated/floor/plasteel{ icon_state = "neutralfull" }, @@ -56023,6 +56149,9 @@ /obj/effect/decal/warning_stripes/southeast, /turf/simulated/floor/plasteel, /area/hallway/secondary/entry/additional) +"ijt" = ( +/turf/simulated/wall, +/area/chapel/massdriver) "ijx" = ( /obj/effect/decal/warning_stripes/yellow, /obj/machinery/door/window/eastright{ @@ -57255,6 +57384,14 @@ icon_state = "neutral" }, /area/hallway/primary/central/second/south) +"irY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + icon_state = "grimy" + }, +/area/chapel/office) "irZ" = ( /obj/effect/spawner/window/reinforced, /obj/structure/cable{ @@ -57303,7 +57440,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/chapel/main) +/area/chapel/massdriver) "isz" = ( /turf/simulated/wall, /area/crew_quarters/serviceyard) @@ -57980,7 +58117,7 @@ dir = 4; icon_state = "darkblue" }, -/area/chapel/main) +/area/chapel/massdriver) "ixj" = ( /obj/structure/chair/office/dark, /obj/structure/cable{ @@ -59454,9 +59591,7 @@ "iJH" = ( /obj/structure/cable, /obj/machinery/power/apc{ - cell_type = 5000; - name = "south bump Important Area"; - pixel_y = -24 + pixel_y = -26 }, /turf/simulated/floor/redgrid, /area/aisat/aihallway) @@ -59487,7 +59622,7 @@ dir = 5; icon_state = "vault" }, -/area/chapel/main) +/area/chapel/massdriver) "iJR" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -60102,7 +60237,9 @@ /area/quartermaster/qm) "iOP" = ( /obj/structure/window/reinforced, -/obj/item/twohanded/required/kirbyplants, +/obj/item/twohanded/required/kirbyplants{ + layer = 3.1 + }, /obj/machinery/light{ dir = 1; in_use = 1 @@ -60253,7 +60390,7 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/carpet/red, /area/security/prison/cell_block/A) "iQp" = ( @@ -60893,7 +61030,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "iWt" = ( /obj/machinery/atmospherics/unary/vent_scrubber{ name = "standard air scrubber"; @@ -61556,7 +61693,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "jbj" = ( /obj/structure/chair/comfy/brown{ dir = 8 @@ -61860,7 +61997,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, -/turf/simulated/floor/carpet/royalblack, +/turf/simulated/floor/carpet/black, /area/ntrep) "jdJ" = ( /obj/structure/table/wood, @@ -62000,6 +62137,7 @@ dir = 10 }, /obj/machinery/hologram/holopad, +/obj/effect/decal/warning_stripes/blue/hollow, /turf/simulated/floor/plasteel{ dir = 1 }, @@ -62187,7 +62325,17 @@ /area/hallway/secondary/exit) "jfO" = ( /obj/structure/table/reinforced, -/obj/item/lock_buster, +/obj/item/flashlight/sectaclight{ + pixel_y = 2; + pixel_x = -2 + }, +/obj/item/flashlight/sectaclight{ + pixel_y = 0 + }, +/obj/item/flashlight/sectaclight{ + pixel_y = -2; + pixel_x = 2 + }, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "dark" @@ -62831,7 +62979,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "jjX" = ( /obj/structure/window/reinforced{ dir = 4 @@ -63205,8 +63353,8 @@ /area/hallway/primary/central/ne) "jmY" = ( /turf/simulated/floor/plasteel{ - icon_state = "redfull"; - tag = "icon-redfull (NORTHWEST)" + dir = 8; + icon_state = "redcorner" }, /area/security/seceqstorage) "jna" = ( @@ -63711,6 +63859,9 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/simulated/floor/plating, /area/maintenance/disposal) "jqP" = ( @@ -65528,7 +65679,7 @@ dir = 4; icon_state = "darkblue" }, -/area/chapel/main) +/area/chapel/massdriver) "jFz" = ( /obj/machinery/atmospherics/unary/vent_scrubber{ name = "standard air scrubber"; @@ -65860,7 +66011,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "jHy" = ( /turf/simulated/wall/r_wall, /area/security/warden) @@ -66041,18 +66192,20 @@ }, /area/atmos/control) "jIQ" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/tcommsat/chamber) +/area/tcommsat/server) "jIT" = ( /obj/structure/chair/office/dark{ dir = 8 @@ -66906,7 +67059,7 @@ pixel_y = -33; req_access = list(73) }, -/turf/simulated/floor/carpet/royalblack, +/turf/simulated/floor/carpet/black, /area/ntrep) "jOs" = ( /obj/structure/cable{ @@ -67681,6 +67834,10 @@ }, /turf/simulated/floor/plating, /area/maintenance/asmaint) +"jVi" = ( +/obj/structure/flora/ausbushes/lavendergrass, +/turf/simulated/floor/grass, +/area/maintenance/garden) "jVl" = ( /obj/machinery/conveyor_switch/oneway{ id = "QMLoad"; @@ -68647,7 +68804,7 @@ /obj/machinery/cell_charger, /obj/item/stock_parts/cell/high, /turf/simulated/floor/redgrid, -/area/tcommsat/chamber) +/area/tcommsat/server) "kdy" = ( /obj/machinery/computer/secure_data{ dir = 8 @@ -69055,6 +69212,9 @@ }, /obj/structure/bed, /obj/machinery/light, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, /turf/simulated/floor/plasteel{ dir = 1 }, @@ -69397,6 +69557,10 @@ slowdown = -0.3 }, /area/hallway/primary/central) +"kjI" = ( +/obj/structure/flora/ausbushes/ywflowers, +/turf/simulated/floor/grass, +/area/maintenance/garden) "kjL" = ( /obj/effect/spawner/window/reinforced, /turf/simulated/floor/plating, @@ -70241,6 +70405,9 @@ }, /turf/simulated/openspace, /area/quartermaster/delivery) +"kqy" = ( +/turf/simulated/wall, +/area/chapel/morgue) "kqz" = ( /obj/effect/spawner/window/reinforced, /obj/structure/cable{ @@ -70824,7 +70991,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "kvy" = ( /obj/effect/decal/cleanable/ash, /turf/simulated/floor/plasteel, @@ -71438,10 +71605,10 @@ /area/maintenance/fsmaint) "kAy" = ( /obj/effect/decal/warning_stripes/east, -/obj/machinery/flasher/portable, /obj/structure/extinguisher_cabinet{ pixel_x = -26 }, +/obj/machinery/flasher/portable, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -71709,6 +71876,12 @@ /obj/effect/spawner/window/reinforced, /turf/simulated/floor/plating, /area/security/securehallway) +"kCy" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkredcorners" + }, +/area/tcommsat/server) "kCC" = ( /obj/machinery/door/poddoor/shutters/preopen{ dir = 2; @@ -72102,6 +72275,7 @@ c_tag = "Brig Cell 5"; dir = 6 }, +/obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor/plasteel{ dir = 1 }, @@ -73185,7 +73359,7 @@ color = "#996633" }, /obj/item/reagent_containers/food/snacks/meatsteak, -/turf/simulated/floor/carpet/royalblack, +/turf/simulated/floor/carpet/black, /area/ntrep) "kPe" = ( /obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction, @@ -73443,7 +73617,7 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 1 }, @@ -73840,13 +74014,13 @@ dir = 4; icon_state = "darkblue" }, -/area/chapel/main) +/area/chapel/massdriver) "kUj" = ( /obj/machinery/camera{ c_tag = "NT Representative's Office 2"; dir = 6 }, -/turf/simulated/floor/carpet/royalblack, +/turf/simulated/floor/carpet/black, /area/ntrep) "kUn" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -74025,7 +74199,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 8 }, -/turf/simulated/floor/carpet/royalblack, +/turf/simulated/floor/carpet/black, /area/ntrep) "kVB" = ( /obj/machinery/mech_bay_recharge_port{ @@ -74426,8 +74600,8 @@ }, /area/maintenance/backstage) "kYp" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 }, /turf/simulated/floor/plasteel{ dir = 1 @@ -75179,6 +75353,15 @@ }, /turf/simulated/floor/greengrid, /area/security/nuke_storage) +"ldG" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/warning_stripes/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "neutralfull" + }, +/area/hallway/secondary/entry/commercial) "ldJ" = ( /obj/structure/barricade/security, /obj/effect/decal/cleanable/dirt, @@ -76466,7 +76649,7 @@ /area/maintenance/fsmaint) "loQ" = ( /obj/machinery/disposal, -/turf/simulated/floor/carpet/royalblack, +/turf/simulated/floor/carpet/black, /area/ntrep) "loR" = ( /obj/effect/decal/warning_stripes/yellow, @@ -77877,7 +78060,7 @@ dir = 8 }, /turf/simulated/floor/plating, -/area/chapel/main) +/area/chapel/massdriver) "lAj" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -78150,7 +78333,7 @@ dir = 9; icon_state = "darkblue" }, -/area/chapel/main) +/area/chapel/massdriver) "lCA" = ( /turf/simulated/wall, /area/hallway/primary/port/south) @@ -78237,7 +78420,7 @@ dir = 8; icon_state = "darkblue" }, -/area/chapel/main) +/area/chapel/massdriver) "lDe" = ( /obj/machinery/atmospherics/unary/outlet_injector/on{ dir = 1 @@ -79025,7 +79208,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "lJU" = ( /obj/structure/window/reinforced{ dir = 8 @@ -79289,6 +79472,9 @@ dir = 4 }, /obj/structure/window/reinforced, +/obj/machinery/light{ + dir = 8 + }, /turf/simulated/floor/plasteel{ dir = 10; icon_state = "darkblue" @@ -80082,6 +80268,15 @@ }, /turf/simulated/floor/plating, /area/maintenance/starboard) +"lSD" = ( +/obj/machinery/alarm{ + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "neutral" + }, +/area/hallway/primary/central/south) "lSL" = ( /obj/effect/decal/warning_stripes/yellow/hollow, /obj/effect/decal/warning_stripes/east, @@ -80860,6 +81055,7 @@ /area/maintenance/trading) "lYj" = ( /obj/machinery/hologram/holopad, +/obj/effect/decal/warning_stripes/blue/hollow, /turf/simulated/floor/plasteel{ dir = 1 }, @@ -80983,10 +81179,18 @@ /obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "2-8" }, /obj/structure/cable{ - icon_state = "2-8" + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" }, /turf/simulated/floor/plasteel{ icon_state = "dark" @@ -81238,6 +81442,9 @@ /obj/item/radio/intercom{ pixel_x = -28 }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 30 + }, /turf/simulated/floor/wood, /area/library) "mbz" = ( @@ -81961,7 +82168,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "mfx" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -82211,6 +82418,32 @@ /obj/effect/spawner/window/reinforced, /turf/simulated/floor/plating, /area/toxins/server) +"mhj" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/effect/decal/warning_stripes/red/hollow, +/obj/structure/window/reinforced{ + color = "red" + }, +/obj/structure/window/reinforced{ + color = "red"; + dir = 1 + }, +/obj/machinery/door/window{ + name = "Secure Armory"; + req_access = list(1); + color = "red" + }, +/obj/item/clothing/shoes/jackboots/armored, +/obj/item/clothing/shoes/jackboots/armored, +/obj/item/clothing/shoes/jackboots/armored, +/obj/item/clothing/shoes/jackboots/armored, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/security/securearmory) "mht" = ( /obj/item/pod_parts/core, /obj/item/circuitboard/mecha/pod, @@ -82250,7 +82483,7 @@ dir = 6; icon_state = "vault" }, -/area/chapel/main) +/area/chapel/massdriver) "mhK" = ( /obj/structure/sink/kitchen{ pixel_y = 25 @@ -82299,6 +82532,21 @@ }, /turf/simulated/floor/glass/reinforced, /area/quartermaster/office) +"mio" = ( +/obj/structure/table/socle, +/obj/item/storage/funeral_urn/random{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/machinery/firealarm{ + dir = 1; + name = "south fire alarm"; + pixel_y = 26 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/chapel/office) "mir" = ( /obj/structure/cable{ icon_state = "1-2" @@ -83028,11 +83276,14 @@ /obj/structure/disposalpipe/junction/reversed{ dir = 8 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/simulated/floor/plasteel{ dir = 5; icon_state = "vault" }, -/area/chapel/main) +/area/chapel/massdriver) "mmS" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 @@ -83481,6 +83732,15 @@ /area/maintenance/fpmaint) "mry" = ( /obj/structure/closet/crate/engineering, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/glass{ + amount = 50 + }, /obj/effect/spawner/lootdrop/maintenance, /turf/simulated/floor/plating, /area/maintenance/apmaint) @@ -85001,6 +85261,15 @@ icon_state = "plant-22"; tag = "icon-plant-22" }, +/obj/machinery/power/apc{ + dir = 1; + name = "north bump"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -85197,12 +85466,12 @@ /obj/machinery/camera{ c_tag = "Brig Cell 2" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, /obj/structure/chair/comfy/teal{ dir = 4 }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, /turf/simulated/floor/carpet/cyan, /area/security/prison/cell_block/A) "mGy" = ( @@ -86505,7 +86774,7 @@ dir = 9; icon_state = "vault" }, -/area/chapel/main) +/area/chapel/massdriver) "mOR" = ( /obj/structure/cable{ icon_state = "1-2" @@ -86582,7 +86851,7 @@ /obj/item/twohanded/required/kirbyplants, /obj/machinery/firealarm{ dir = 4; - pixel_x = -28 + pixel_x = -25 }, /obj/machinery/light{ dir = 8 @@ -86591,7 +86860,7 @@ dir = 5; icon_state = "vault" }, -/area/chapel/main) +/area/chapel/massdriver) "mPu" = ( /obj/effect/decal/warning_stripes/west, /turf/simulated/floor/plasteel, @@ -87192,7 +87461,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/chapel/main) +/area/chapel/massdriver) "mTC" = ( /obj/structure/cable{ icon_state = "1-2" @@ -87688,6 +87957,18 @@ /obj/machinery/door/airlock/maintenance, /turf/simulated/floor/plating, /area/maintenance/asmaint2) +"mXr" = ( +/obj/structure/window/reinforced, +/obj/item/flag/nt, +/obj/structure/sign/atmosplaque{ + pixel_y = 32; + desc = "Важное Уточнение! Главный Инженер пожелал оставаться анонимным, поэтому, обойдёмся прозвищем. За выдающиеся успехи в области инженерного менеджмента, а также успешное проектирование станции Нова по всем стандартам НаноТрейзен. Благодарим вас за труд, PiroMage. Слава НаноТрейзен!"; + name = "Благодарственное Письмо Для Главного Инженера Команды Архитекторов Станции Нова" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/bridge) "mXt" = ( /obj/structure/window/reinforced, /obj/structure/window/reinforced{ @@ -87752,10 +88033,6 @@ layer = 2.9 }, /obj/effect/decal/warning_stripes/red/hollow, -/obj/item/clothing/suit/armor/riot, -/obj/item/shield/riot, -/obj/item/clothing/gloves/combat, -/obj/item/clothing/head/helmet/riot, /obj/structure/window/reinforced{ color = "red" }, @@ -87773,6 +88050,10 @@ req_access = list(1); color = "red" }, +/obj/item/clothing/gloves/combat, +/obj/item/clothing/gloves/combat, +/obj/item/clothing/gloves/combat, +/obj/item/clothing/gloves/combat, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -88283,19 +88564,6 @@ }, /area/security/processing) "nbu" = ( -/obj/item/ammo_box/magazine/enforcer/lethal{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/ammo_box/magazine/enforcer/lethal, -/obj/item/ammo_box/magazine/enforcer/lethal{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/ammo_box/magazine/enforcer/lethal{ - pixel_x = -6; - pixel_y = 6 - }, /obj/effect/decal/warning_stripes/red/hollow, /obj/structure/rack{ dir = 8; @@ -88313,6 +88581,24 @@ req_access = list(1); color = "red" }, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/ammo_box/magazine/enforcer/lethal{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/ammo_box/magazine/enforcer/lethal, +/obj/item/ammo_box/magazine/enforcer/lethal{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/ammo_box/magazine/enforcer/lethal{ + pixel_x = -6; + pixel_y = 6 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -89332,7 +89618,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/chapel/main) +/area/chapel/massdriver) "niY" = ( /obj/structure/cable{ icon_state = "1-2" @@ -89789,8 +90075,8 @@ frequency = 1379; master_tag = "ex"; name = "interior access button"; - pixel_x = 21; - pixel_y = -21 + pixel_x = 25; + pixel_y = -25 }, /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 6 @@ -89812,6 +90098,22 @@ icon_state = "whitegreen" }, /area/medical/virology/lab) +"nms" = ( +/obj/structure/safe/floor, +/obj/item/seeds/wheat/meat, +/obj/item/gun/energy/floragun{ + selfcharge = 0; + emagged = 1; + name = "old floral somatoray"; + can_charge = 1; + cell_type = /obj/item/stock_parts/cell/degraded; + ammo_type = list(/obj/item/ammo_casing/energy/flora/beta,/obj/item/ammo_casing/energy/flora/gamma); + current_skin = "oldflora"; + description_info = "Это энергетическое оружие. Имеет 2 режима стрельбы: бета и гамма. Бета изменяет геном растений. Гамма ускоряет рост растений. Чтобы перезарядить это оружие, используйте устройство для подзарядки оружия."; + desc = "Старый ботанический инструмент, испускающий контролируемое излучение, вызывающее мутации в клетках растений, не имеет самозарядки. Чтобы перезарядить это оружие, используйте устройство для подзарядки оружия." + }, +/turf/simulated/floor/grass, +/area/maintenance/garden) "nmx" = ( /obj/structure/cable{ icon_state = "4-8" @@ -90930,7 +91232,7 @@ dir = 9; icon_state = "darkred" }, -/area/tcommsat/chamber) +/area/tcommsat/server) "nvU" = ( /obj/machinery/vending/wallmed{ pixel_x = 26; @@ -91021,6 +91323,22 @@ icon_state = "dark" }, /area/atmos) +"nwG" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/girder/reinforced, +/turf/simulated/floor/plating, +/area/maintenance/maintcentral) "nwN" = ( /obj/structure/chair/sofa/corner{ dir = 4 @@ -91294,6 +91612,7 @@ c_tag = "Brig Cell 3"; dir = 6 }, +/obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor/plasteel{ dir = 1 }, @@ -92321,6 +92640,15 @@ icon_state = "white" }, /area/toxins/explab) +"nFO" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 30 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "yellow" + }, +/area/engineering/break_room) "nFR" = ( /obj/structure/chair/sofa/right, /obj/machinery/light{ @@ -93026,6 +93354,10 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, /turf/simulated/floor/plasteel{ dir = 6; icon_state = "vault" @@ -93253,7 +93585,9 @@ /area/quartermaster/miningdock) "nMX" = ( /obj/effect/decal/warning_stripes/east, -/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/item/videocam, +/obj/item/videocam, +/obj/structure/closet/crate, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -93504,14 +93838,6 @@ dir = 1 }, /area/security/prison/cell_block/A) -"nOM" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/turf/simulated/floor/plasteel{ - dir = 1 - }, -/area/security/prison/cell_block/A) "nON" = ( /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, @@ -94694,6 +95020,10 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/maintenance/apmaint) +"nYP" = ( +/obj/effect/spawner/window/reinforced, +/turf/simulated/floor/plating, +/area/chapel/massdriver) "nYR" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 @@ -94784,12 +95114,6 @@ /obj/structure/chair/sofa/corner{ color = "#85130b" }, -/obj/structure/curtain/open/shower/security{ - alpha = 255; - name = "backstage"; - anchored = 1; - pixel_y = 32 - }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dust, /turf/simulated/floor/wood, @@ -95612,11 +95936,17 @@ tag_chamber_sensor = "sw_maint2_sensor"; tag_exterior_door = "sw_maint2_outer"; tag_interior_door = "sw_maint2_inner"; - pixel_x = 25 + pixel_x = 25; + pixel_y = -2 }, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/airlock_sensor{ + id_tag = "sw_maint2_sensor"; + pixel_y = 5; + pixel_x = 25 + }, /turf/simulated/floor/plating, /area/maintenance/starboard) "ofE" = ( @@ -95801,6 +96131,7 @@ /obj/machinery/light{ dir = 1 }, +/obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor/carpet/red, /area/security/prison/cell_block/A) "ohx" = ( @@ -97011,7 +97342,7 @@ dir = 8; icon_state = "darkblue" }, -/area/chapel/main) +/area/chapel/massdriver) "osl" = ( /obj/structure/table/reinforced, /obj/item/restraints/legcuffs/beartrap, @@ -97131,7 +97462,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "ote" = ( /obj/effect/decal/warning_stripes/yellow/hollow, /obj/machinery/power/port_gen/pacman, @@ -97466,6 +97797,37 @@ /obj/machinery/light/small, /turf/simulated/floor/plasteel/freezer, /area/crew_quarters/heads/hop) +"ovd" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/effect/decal/warning_stripes/red/hollow, +/obj/structure/window/reinforced{ + color = "red" + }, +/obj/structure/window/reinforced{ + color = "red"; + dir = 1 + }, +/obj/structure/window/reinforced{ + color = "red"; + dir = 4 + }, +/obj/machinery/door/window{ + dir = 8; + name = "Secure Armory"; + req_access = list(1); + color = "red" + }, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/suit/armor/riot, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/security/securearmory) "ovn" = ( /obj/structure/table/reinforced, /obj/item/clipboard, @@ -98476,10 +98838,10 @@ dir = 1; in_use = 1 }, -/turf/simulated/floor/carpet/royalblack, +/turf/simulated/floor/carpet/black, /area/ntrep) "oDB" = ( -/obj/item/reagent_containers/spray/pestspray, +/obj/structure/flora/ausbushes/sunnybush, /turf/simulated/floor/grass, /area/maintenance/garden) "oDL" = ( @@ -98620,7 +98982,7 @@ }, /obj/machinery/airlock_sensor{ id_tag = "aisolw_sensor"; - pixel_y = -28 + pixel_y = 35 }, /obj/machinery/atmospherics/unary/vent_pump/high_volume{ frequency = 1379; @@ -98656,6 +99018,15 @@ icon_state = "neutralfull" }, /area/hallway/secondary/entry/lounge) +"oEP" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = -30 + }, +/turf/simulated/floor/wood, +/area/library) "oET" = ( /obj/effect/decal/warning_stripes/northeast, /turf/simulated/floor/plasteel{ @@ -99616,7 +99987,6 @@ layer = 2.9 }, /obj/effect/decal/warning_stripes/red/hollow, -/obj/item/clothing/suit/armor/bulletproof, /obj/machinery/door/window{ name = "Secure Armory"; req_access = list(1); @@ -99629,7 +99999,9 @@ color = "red"; dir = 1 }, -/obj/item/clothing/gloves/combat, +/obj/item/clothing/head/helmet/alt, +/obj/item/clothing/head/helmet/alt, +/obj/item/clothing/head/helmet/alt, /obj/item/clothing/head/helmet/alt, /turf/simulated/floor/plasteel{ icon_state = "dark" @@ -100057,6 +100429,10 @@ icon_state = "darkred" }, /area/bridge) +"oPt" = ( +/obj/structure/flora/ausbushes/ywflowers/hell, +/turf/simulated/floor/grass, +/area/maintenance/garden) "oPu" = ( /obj/structure/chair/comfy/brown, /turf/simulated/floor/wood, @@ -100330,6 +100706,15 @@ icon_state = "neutral" }, /area/bridge/checkpoint/south) +"oRJ" = ( +/obj/machinery/alarm{ + dir = 1; + pixel_y = -24 + }, +/turf/simulated/floor/plasteel{ + icon_state = "grimy" + }, +/area/chapel/office) "oRO" = ( /obj/structure/chair/barber{ dir = 8 @@ -101838,12 +102223,6 @@ dir = 4; color = "#85130b" }, -/obj/structure/curtain/open/shower/security{ - alpha = 255; - name = "backstage"; - anchored = 1; - pixel_y = 32 - }, /turf/simulated/floor/wood{ icon_state = "wood-broken3"; tag = "icon-wood-broken3" @@ -104081,7 +104460,7 @@ /obj/effect/decal/warning_stripes/north, /obj/structure/fans/tiny, /turf/simulated/floor/plating, -/area/chapel/main) +/area/chapel/massdriver) "pty" = ( /obj/structure/bookcase{ name = "bookcase (Non-Fiction)" @@ -104149,9 +104528,6 @@ "ptU" = ( /obj/item/storage/fancy/donut_box, /obj/structure/table/wood/fancy/purple, -/obj/item/radio/intercom{ - pixel_y = -28 - }, /turf/simulated/floor/carpet/purple, /area/crew_quarters/captain) "ptW" = ( @@ -104390,7 +104766,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "pvI" = ( /obj/machinery/door/airlock/security/glass{ id_tag = "BrigLeft"; @@ -104487,10 +104863,13 @@ c_tag = "Cremator"; dir = 8 }, +/obj/machinery/light_switch{ + pixel_x = 26 + }, /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "pwp" = ( /obj/structure/chair/stool, /obj/effect/decal/cleanable/dust, @@ -104639,7 +105018,7 @@ dir = 10; icon_state = "darkred" }, -/area/tcommsat/chamber) +/area/tcommsat/server) "pxI" = ( /obj/structure/window/reinforced{ dir = 8 @@ -104976,9 +105355,6 @@ /turf/simulated/floor/plating, /area/maintenance/apmaint) "pzK" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/turretid/stun{ control_area = "AI Satellite Antechamber"; name = "AI Antechamber Turret Control"; @@ -104997,7 +105373,7 @@ dir = 10; icon_state = "darkred" }, -/area/tcommsat/chamber) +/area/tcommsat/server) "pzY" = ( /obj/effect/decal/warning_stripes/south, /obj/item/radio/intercom{ @@ -105300,12 +105676,12 @@ /turf/simulated/wall, /area/maintenance/apmaint) "pBK" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, /obj/structure/chair/comfy/red{ dir = 4 }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, /turf/simulated/floor/carpet/red, /area/security/prison/cell_block/A) "pBN" = ( @@ -105921,6 +106297,12 @@ icon_state = "neutralfull" }, /area/hallway/secondary/entry/commercial) +"pGo" = ( +/obj/structure/table/glass, +/obj/item/clipboard, +/obj/item/toy/figure/md, +/turf/simulated/floor/carpet/cyan, +/area/medical/medrest) "pGy" = ( /obj/machinery/light{ dir = 4 @@ -106039,7 +106421,7 @@ }, /obj/machinery/airlock_sensor{ id_tag = "station_ai_sensor"; - pixel_y = -10; + pixel_y = 7; pixel_x = 57 }, /turf/simulated/floor/plasteel{ @@ -106567,7 +106949,7 @@ scrub_N2O = 1; scrub_Toxins = 1 }, -/turf/simulated/floor/carpet/royalblack, +/turf/simulated/floor/carpet/black, /area/ntrep) "pLX" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -106745,7 +107127,7 @@ /obj/structure/cable{ icon_state = "2-4" }, -/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 1 }, @@ -107874,6 +108256,9 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/simulated/floor/plating, /area/maintenance/starboard) "pVm" = ( @@ -108047,6 +108432,15 @@ /obj/machinery/light/small, /turf/simulated/floor/plating, /area/maintenance/brig) +"pWd" = ( +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 30 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkred" + }, +/area/security/permahallway) "pWf" = ( /turf/simulated/floor/plasteel{ dir = 1; @@ -108529,6 +108923,11 @@ "pYS" = ( /obj/structure/window/reinforced, /obj/item/flag/nt, +/obj/structure/sign/tajarplaque{ + desc = "Важное Уточнение! Рабочие пожелали оставаться анонимными, поэтому, обойдёмся их прозвищами. За помощь Главному Инженеру Новы в поисках и устранении неисправностей на станции НаноТрейзен. С благодарностью, Den10g. Слава НаноТрейзен!"; + name = "Благодарственное Письмо от Главного Инженера станции Нова"; + pixel_y = 32 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -108731,12 +109130,12 @@ /obj/structure/table/wood{ color = "#996633" }, -/obj/machinery/photocopier/faxmachine/longrange{ - department = "NT Representative's Office" - }, /obj/item/radio/intercom{ pixel_x = 28 }, +/obj/machinery/photocopier/faxmachine/longrange{ + department = "NT Representative's Office" + }, /turf/simulated/floor/carpet/royalblack, /area/ntrep) "qaJ" = ( @@ -109887,7 +110286,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/chapel/main) +/area/chapel/massdriver) "qjQ" = ( /turf/simulated/floor/plasteel{ icon_state = "whiteyellow" @@ -110582,7 +110981,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/tcommsat/chamber) +/area/tcommsat/server) "qqq" = ( /obj/structure/chair/comfy/teal{ dir = 8 @@ -110676,7 +111075,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "qrs" = ( /obj/structure/cable{ icon_state = "2-4" @@ -111531,6 +111930,18 @@ slowdown = -0.3 }, /area/hallway/primary/port/south) +"qwG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc{ + dir = 1; + pixel_y = 26 + }, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/plating, +/area/maintenance/disposal) "qwI" = ( /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" @@ -111709,7 +112120,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "qyn" = ( /obj/structure/chair/sofa/pew/right{ dir = 4 @@ -111817,7 +112228,7 @@ icon_state = "1-4" }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-8" }, /turf/simulated/floor/plasteel{ icon_state = "neutralfull" @@ -112047,7 +112458,13 @@ req_access = list(73); security_level = 1 }, -/turf/simulated/floor/carpet/royalblack, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/simulated/floor/wood/dark, /area/ntrep) "qAG" = ( /obj/machinery/vending/snack, @@ -112348,6 +112765,7 @@ }, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /obj/machinery/hologram/holopad, +/obj/effect/decal/warning_stripes/blue/hollow, /turf/simulated/floor/plasteel{ dir = 1 }, @@ -112467,7 +112885,7 @@ /turf/simulated/floor/plasteel{ icon_state = "darkredcorners" }, -/area/tcommsat/chamber) +/area/tcommsat/server) "qDk" = ( /obj/machinery/optable, /obj/machinery/shower{ @@ -112732,6 +113150,13 @@ dir = 1 }, /area/hallway/primary/central/second/east) +"qFi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/maintenance/disposal) "qFu" = ( /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, @@ -112794,9 +113219,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, /turf/simulated/floor/carpet/cyan, /area/security/prison/cell_block/A) "qFV" = ( @@ -113118,6 +113540,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/simulated/floor/plasteel{ dir = 6; icon_state = "vault" @@ -113387,6 +113812,10 @@ }, /obj/machinery/hologram/holopad, /obj/effect/landmark/event/lightsout, +/obj/structure/disposalpipe/junction{ + dir = 4; + tag = "icon-pipe-j1 (EAST)" + }, /turf/simulated/floor/plasteel{ icon_state = "neutralfull" }, @@ -113543,12 +113972,14 @@ req_access = list(1); color = "red" }, -/obj/item/clothing/head/helmet/night, -/obj/item/clothing/head/helmet/night{ - pixel_y = -2 +/obj/item/gun/energy/gun/advtaser{ + pixel_x = -3; + pixel_y = 3 }, -/obj/item/clothing/head/helmet/night{ - pixel_y = -4 +/obj/item/gun/energy/gun/advtaser, +/obj/item/gun/energy/gun/advtaser{ + pixel_x = 3; + pixel_y = -3 }, /turf/simulated/floor/plasteel{ icon_state = "dark" @@ -113702,9 +114133,10 @@ }, /area/quartermaster/miningstorage) "qNY" = ( -/obj/structure/girder/reinforced, -/turf/simulated/floor/plating, -/area/maintenance/maintcentral) +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/tcommsat/server) "qOc" = ( /obj/machinery/disposal, /obj/structure/disposalpipe/trunk{ @@ -114334,7 +114766,7 @@ dir = 8; icon_state = "darkblue" }, -/area/chapel/main) +/area/chapel/massdriver) "qRN" = ( /obj/machinery/camera{ c_tag = "Library Games Room"; @@ -114449,7 +114881,7 @@ dir = 5; icon_state = "darkred" }, -/area/tcommsat/chamber) +/area/tcommsat/server) "qSA" = ( /obj/machinery/door/airlock/maintenance{ req_access = list(12) @@ -114692,6 +115124,11 @@ /obj/structure/disposalpipe/segment{ dir = 10 }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/simulated/floor/plating, /area/maintenance/disposal) "qUp" = ( @@ -114962,7 +115399,7 @@ dir = 10; icon_state = "darkblue" }, -/area/chapel/main) +/area/chapel/massdriver) "qWJ" = ( /obj/structure/table/reinforced, /obj/effect/decal/warning_stripes/yellow/hollow, @@ -116377,9 +116814,6 @@ }, /area/aisat/aihallway) "riR" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1 }, @@ -116396,6 +116830,9 @@ /obj/effect/turf_decal/siding/white{ dir = 1 }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/simulated/floor/glass, /area/crew_quarters/locker) "riV" = ( @@ -116571,7 +117008,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/carpet/red, /area/security/prison/cell_block/A) "rkW" = ( @@ -117013,12 +117449,10 @@ /obj/structure/cable{ icon_state = "1-8" }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, /obj/structure/cable{ icon_state = "1-8" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plasteel{ dir = 1 }, @@ -117866,7 +118300,7 @@ /obj/effect/decal/cleanable/dust, /obj/item/radio/intercom{ name = "north station intercom (General)"; - pixel_y = 28 + pixel_y = 24 }, /obj/machinery/light/small{ dir = 1 @@ -120420,9 +120854,7 @@ /obj/structure/cable{ icon_state = "1-8" }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/carpet/cyan, /area/security/prison/cell_block/A) "rMp" = ( @@ -120874,7 +121306,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/chapel/main) +/area/chapel/massdriver) "rOU" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -122411,7 +122843,7 @@ }, /obj/item/storage/belt/utility, /turf/simulated/floor/redgrid, -/area/tcommsat/chamber) +/area/tcommsat/server) "saQ" = ( /turf/simulated/floor/plasteel{ dir = 4; @@ -122685,7 +123117,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/tcommsat/chamber) +/area/tcommsat/server) "scp" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -122698,6 +123130,24 @@ icon_state = "escape" }, /area/bridge/checkpoint/south) +"scq" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "vault" + }, +/area/chapel/massdriver) "scs" = ( /obj/item/stack/cable_coil/random, /turf/simulated/floor/plating, @@ -123150,7 +123600,6 @@ layer = 2.9 }, /obj/effect/decal/warning_stripes/red/hollow, -/obj/item/clothing/suit/armor/bulletproof, /obj/structure/window/reinforced{ color = "red" }, @@ -123163,8 +123612,10 @@ req_access = list(1); color = "red" }, -/obj/item/clothing/gloves/combat, -/obj/item/clothing/head/helmet/alt, +/obj/item/clothing/suit/armor/bulletproof, +/obj/item/clothing/suit/armor/bulletproof, +/obj/item/clothing/suit/armor/bulletproof, +/obj/item/clothing/suit/armor/bulletproof, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -123820,7 +124271,7 @@ dir = 4 }, /obj/effect/landmark/start/nanotrasen_rep, -/turf/simulated/floor/carpet/royalblack, +/turf/simulated/floor/carpet/black, /area/ntrep) "skT" = ( /turf/simulated/floor/plasteel{ @@ -123929,7 +124380,7 @@ /obj/machinery/airlock_sensor{ id_tag = "solar_xeno_sensor"; layer = 3.3; - pixel_y = 36 + pixel_y = 33 }, /obj/machinery/atmospherics/unary/vent_pump/high_volume{ dir = 8; @@ -124701,7 +125152,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/chapel/main) +/area/chapel/massdriver) "ssw" = ( /obj/machinery/camera{ c_tag = "Gravity Generator Area"; @@ -125025,7 +125476,7 @@ /obj/machinery/embedded_controller/radio/airlock/airlock_controller{ id_tag = "solar_tool_airlock"; layer = 3.3; - pixel_y = 25; + pixel_y = 26; req_access = list(13); tag_airpump = "solar_tool_pump"; tag_chamber_sensor = "solar_tool_sensor"; @@ -125035,7 +125486,7 @@ /obj/machinery/airlock_sensor{ id_tag = "solar_tool_sensor"; layer = 3.3; - pixel_y = 32 + pixel_y = 33 }, /obj/effect/decal/warning_stripes/yellow, /obj/structure/cable{ @@ -126014,15 +126465,15 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/item/radio/intercom{ - name = "south station intercom (General)"; - pixel_x = -28 +/obj/machinery/alarm{ + dir = 4; + pixel_x = -22 }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "darkblue" }, -/area/chapel/main) +/area/chapel/massdriver) "sBo" = ( /obj/effect/decal/warning_stripes/red/hollow, /obj/structure/chair{ @@ -126386,7 +126837,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "sEP" = ( /obj/machinery/atmospherics/unary/outlet_injector/on{ dir = 4; @@ -127169,7 +127620,9 @@ /area/maintenance/casino) "sKl" = ( /obj/structure/window/reinforced, -/obj/item/twohanded/required/kirbyplants, +/obj/item/twohanded/required/kirbyplants{ + layer = 3.1 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -127424,10 +127877,15 @@ /obj/structure/chair{ dir = 1 }, +/obj/machinery/firealarm{ + dir = 1; + name = "south fire alarm"; + pixel_y = -24 + }, /turf/simulated/floor/plasteel{ icon_state = "darkblue" }, -/area/chapel/main) +/area/chapel/massdriver) "sMH" = ( /obj/effect/spawner/window/reinforced, /obj/structure/cable{ @@ -127993,9 +128451,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/structure/cable{ icon_state = "1-8" }, @@ -128006,6 +128461,11 @@ /obj/effect/turf_decal/siding/white{ dir = 1 }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, /turf/simulated/floor/glass, /area/crew_quarters/locker) "sRy" = ( @@ -128960,19 +129420,13 @@ dir = 4; icon_state = "darkred" }, -/area/tcommsat/chamber) +/area/tcommsat/server) "sXx" = ( /obj/structure/rack{ dir = 8; layer = 2.9 }, /obj/effect/decal/warning_stripes/red/hollow, -/obj/item/storage/lockbox/mindshield, -/obj/item/storage/box/trackimp, -/obj/item/storage/box/chemimp{ - pixel_x = 4; - pixel_y = 3 - }, /obj/structure/window/reinforced{ color = "red" }, @@ -128986,6 +129440,13 @@ req_access = list(1); color = "red" }, +/obj/item/lock_buster, +/obj/item/storage/box/trackimp, +/obj/item/storage/box/chemimp{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/storage/lockbox/mindshield, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -130171,9 +130632,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -130184,6 +130642,11 @@ /obj/effect/turf_decal/siding/white{ dir = 1 }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, /turf/simulated/floor/glass, /area/crew_quarters/locker) "tfx" = ( @@ -130466,6 +130929,12 @@ "thg" = ( /obj/effect/spawner/window/reinforced, /obj/structure/barricade/wooden/crude, +/obj/structure/curtain/open/shower/security{ + alpha = 255; + name = "backstage"; + anchored = 1; + pixel_y = 0 + }, /turf/simulated/floor/plating, /area/maintenance/backstage) "thk" = ( @@ -131164,12 +131633,6 @@ dir = 8; do_not_delete_me = 1 }, -/obj/structure/curtain/open/shower/security{ - alpha = 255; - name = "backstage"; - anchored = 1; - pixel_y = 32 - }, /obj/effect/decal/cleanable/dust, /turf/simulated/floor/wood, /area/maintenance/backstage) @@ -131245,7 +131708,7 @@ "tns" = ( /obj/structure/sign/holy, /turf/simulated/wall, -/area/chapel/main) +/area/chapel/massdriver) "tnu" = ( /turf/simulated/floor/plasteel{ dir = 1; @@ -131434,6 +131897,32 @@ icon_state = "neutralfull" }, /area/hallway/secondary/entry/lounge) +"tpw" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/effect/decal/warning_stripes/red/hollow, +/obj/structure/window/reinforced{ + color = "red" + }, +/obj/structure/window/reinforced{ + color = "red"; + dir = 1 + }, +/obj/machinery/door/window{ + name = "Secure Armory"; + req_access = list(1); + color = "red" + }, +/obj/item/clothing/gloves/color/black/ballistic, +/obj/item/clothing/gloves/color/black/ballistic, +/obj/item/clothing/gloves/color/black/ballistic, +/obj/item/clothing/gloves/color/black/ballistic, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/security/securearmory) "tpz" = ( /obj/effect/decal/warning_stripes/south, /obj/structure/sign/poster/official/space_a{ @@ -131529,7 +132018,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "tqt" = ( /obj/structure/table/glass, /obj/item/paper_bin{ @@ -131872,6 +132361,11 @@ }, /obj/effect/decal/warning_stripes/yellow/hollow, /obj/structure/closet/crate/freezer, +/obj/item/reagent_containers/food/condiment/tomatosauce, +/obj/item/reagent_containers/food/condiment/herbs, +/obj/item/reagent_containers/food/snacks/grown/tomato, +/obj/item/reagent_containers/food/snacks/grown/tomato, +/obj/item/reagent_containers/food/snacks/grown/tomato, /turf/simulated/floor/plasteel{ icon_state = "freezerfloor" }, @@ -132603,14 +133097,14 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 }, /turf/simulated/floor/plasteel{ dir = 9; icon_state = "vault" }, -/area/chapel/main) +/area/chapel/massdriver) "twF" = ( /obj/effect/decal/warning_stripes/yellow/hollow, /obj/structure/disposalpipe/junction/reversed, @@ -132924,12 +133418,6 @@ /area/hallway/secondary/entry/additional) "tyK" = ( /obj/item/twohanded/required/kirbyplants, -/obj/structure/curtain/open/shower/security{ - alpha = 255; - name = "backstage"; - anchored = 1; - pixel_y = 32 - }, /turf/simulated/floor/carpet/red, /area/maintenance/backstage) "tyM" = ( @@ -133104,7 +133592,7 @@ dir = 6; icon_state = "vault" }, -/area/chapel/main) +/area/chapel/massdriver) "tAm" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb2{ @@ -135099,9 +135587,6 @@ /turf/simulated/wall/r_wall, /area/quartermaster/delivery) "tPu" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/structure/cable{ icon_state = "1-4" }, @@ -135114,6 +135599,9 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1 }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/simulated/floor/carpet/purple, /area/janitor) "tPz" = ( @@ -136924,7 +137412,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/chapel/main) +/area/chapel/massdriver) "ubx" = ( /obj/machinery/newscaster{ pixel_y = -30 @@ -137359,7 +137847,7 @@ /obj/machinery/airlock_sensor{ id_tag = "port5_sensor"; pixel_x = 25; - pixel_y = 5 + pixel_y = 3 }, /turf/simulated/floor/plating, /area/maintenance/asmaint) @@ -137436,10 +137924,6 @@ /turf/simulated/floor/plasteel/dark, /area/maintenance/starboardaux) "ufB" = ( -/obj/machinery/firealarm{ - dir = 4; - pixel_y = -28 - }, /obj/structure/showcase{ density = 0; dir = 1; @@ -137448,11 +137932,19 @@ name = "Cyborg Statue" }, /obj/machinery/light, +/obj/machinery/power/apc{ + cell_type = 5000; + name = "south bump Important Area"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, /turf/simulated/floor/plasteel{ dir = 6; icon_state = "darkred" }, -/area/tcommsat/chamber) +/area/tcommsat/server) "ufI" = ( /obj/machinery/power/apc{ dir = 4; @@ -139925,16 +140417,14 @@ /turf/simulated/floor/glass, /area/crew_quarters/bar/atrium) "uAc" = ( -/obj/effect/decal/warning_stripes/blue/hollow, -/obj/structure/bed/roller, -/obj/machinery/iv_drip, -/obj/machinery/light{ - dir = 8 - }, /obj/machinery/firealarm{ dir = 4; pixel_x = -28 }, +/obj/structure/sink{ + dir = 8; + pixel_x = -12 + }, /turf/simulated/floor/plasteel{ dir = 1; icon_state = "dark" @@ -141226,6 +141716,37 @@ icon_state = "whitehall" }, /area/toxins/xenobiology) +"uJX" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/effect/decal/warning_stripes/red/hollow, +/obj/structure/window/reinforced{ + color = "red" + }, +/obj/structure/window/reinforced{ + color = "red"; + dir = 1 + }, +/obj/structure/window/reinforced{ + color = "red"; + dir = 4 + }, +/obj/machinery/door/window{ + dir = 8; + name = "Secure Armory"; + req_access = list(1); + color = "red" + }, +/obj/item/shield/riot, +/obj/item/shield/riot, +/obj/item/shield/riot, +/obj/item/shield/riot, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/security/securearmory) "uJY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -142081,7 +142602,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/chapel/main) +/area/chapel/massdriver) "uRw" = ( /obj/structure/table/glass, /obj/item/reagent_containers/food/drinks/coffee{ @@ -142222,9 +142743,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -142238,6 +142756,9 @@ /obj/effect/turf_decal/siding/white{ dir = 1 }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/simulated/floor/glass, /area/crew_quarters/locker) "uSo" = ( @@ -142527,7 +143048,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "uVn" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 @@ -142766,7 +143287,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/plasteel{ dir = 1 }, @@ -143246,7 +143766,7 @@ dir = 4 }, /obj/item/reagent_containers/food/drinks/shaker, -/turf/simulated/floor/carpet/royalblack, +/turf/simulated/floor/carpet/black, /area/ntrep) "uZF" = ( /obj/structure/disposalpipe/segment{ @@ -143794,6 +144314,15 @@ }, /turf/simulated/floor/engine, /area/engineering/supermatter) +"vdg" = ( +/obj/structure/chair/comfy/purp{ + dir = 4 + }, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/turf/simulated/floor/carpet/purple, +/area/crew_quarters/captain) "vdh" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -144787,6 +145316,7 @@ }, /area/hydroponics) "vlM" = ( +/obj/structure/flora/ausbushes/lavendergrass, /obj/item/hatchet, /obj/effect/spawner/random_spawners/rodent, /turf/simulated/floor/grass, @@ -145018,6 +145548,12 @@ icon_state = "yellow" }, /area/engineering/engine) +"vnH" = ( +/obj/machinery/light_switch{ + pixel_x = -24 + }, +/turf/simulated/floor/carpet/black, +/area/chapel/main) "vnM" = ( /obj/structure/stairs{ dir = 4; @@ -145403,7 +145939,7 @@ dir = 4; icon_state = "darkblue" }, -/area/chapel/main) +/area/chapel/massdriver) "vsi" = ( /obj/structure/cable, /obj/machinery/power/apc{ @@ -145580,10 +146116,13 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/chapel/main) +/area/chapel/massdriver) "vts" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -145735,7 +146274,7 @@ dir = 5; icon_state = "vault" }, -/area/chapel/main) +/area/chapel/massdriver) "vuR" = ( /obj/machinery/light{ dir = 1; @@ -145879,11 +146418,14 @@ }, /obj/machinery/airlock_sensor{ id_tag = "ex_sensor"; - pixel_y = -24 + pixel_y = 35 }, /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 4 }, +/obj/structure/sign/vacuum{ + pixel_y = -32 + }, /turf/simulated/floor/engine/insulated, /area/maintenance/apmaint) "vvH" = ( @@ -146228,12 +146770,6 @@ dir = 4; do_not_delete_me = 1 }, -/obj/structure/curtain/open/shower/security{ - alpha = 255; - name = "backstage"; - anchored = 1; - pixel_y = 32 - }, /obj/item/trash/raisins, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dust, @@ -146424,7 +146960,7 @@ icon_state = "4-8" }, /turf/simulated/floor/plasteel{ - icon_state = "red" + icon_state = "redcorner" }, /area/security/seceqstorage) "vzX" = ( @@ -146463,6 +146999,11 @@ icon_state = "neutralfull" }, /area/atmos) +"vAn" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/obj/structure/flora/ausbushes/fernybush, +/turf/simulated/floor/grass, +/area/maintenance/garden) "vAs" = ( /obj/machinery/status_display{ pixel_y = -32 @@ -146918,7 +147459,7 @@ dir = 4; icon_state = "darkblue" }, -/area/chapel/main) +/area/chapel/massdriver) "vEi" = ( /obj/structure/grille/broken, /obj/machinery/light/small{ @@ -147269,7 +147810,7 @@ /turf/simulated/floor/plasteel{ icon_state = "darkredfull" }, -/area/tcommsat/chamber) +/area/tcommsat/server) "vHo" = ( /obj/machinery/power/supermatter_shard{ anchored = 1; @@ -148122,7 +148663,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/tcommsat/chamber) +/area/tcommsat/server) "vNO" = ( /obj/structure/window/reinforced{ dir = 1 @@ -148464,16 +149005,8 @@ /area/hallway/primary/command/east) "vQd" = ( /obj/machinery/message_server, -/obj/machinery/power/apc{ - cell_type = 5000; - name = "south bump Important Area"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, /turf/simulated/floor/redgrid, -/area/tcommsat/chamber) +/area/tcommsat/server) "vQh" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ @@ -149510,7 +150043,7 @@ /obj/machinery/airlock_sensor{ id_tag = "engineering_east_sensor"; pixel_x = -25; - pixel_y = 10 + pixel_y = 7 }, /turf/simulated/floor/plasteel{ dir = 6; @@ -149867,6 +150400,9 @@ "vZY" = ( /obj/machinery/cryopod/robot, /obj/effect/decal/warning_stripes/yellow/hollow, +/obj/machinery/computer/cryopod/robot{ + pixel_y = 28 + }, /turf/simulated/floor/plasteel{ dir = 9; icon_state = "purple" @@ -150183,7 +150719,7 @@ }, /obj/machinery/tcomms/core/station, /turf/simulated/floor/redgrid, -/area/tcommsat/chamber) +/area/tcommsat/server) "wcH" = ( /turf/simulated/wall/r_wall, /area/medical/research/restroom) @@ -151424,6 +151960,14 @@ icon_state = "dark" }, /area/security/seceqstorage) +"wmn" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "darkblue" + }, +/area/chapel/massdriver) "wmp" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/remains/mouse, @@ -151766,13 +152310,6 @@ icon_state = "neutralfull" }, /area/quartermaster/delivery) -"wot" = ( -/obj/machinery/atmospherics/unary/vent_pump/on, -/turf/simulated/floor/plasteel{ - dir = 4; - icon_state = "redcorner" - }, -/area/security/prison/cell_block/A) "wox" = ( /obj/effect/decal/warning_stripes/northwest, /turf/simulated/floor/plasteel, @@ -152320,9 +152857,6 @@ }, /area/atmos) "wrT" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/structure/disposalpipe/junction/reversed{ dir = 2 }, @@ -152335,6 +152869,9 @@ /obj/structure/cable{ icon_state = "1-4" }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/simulated/floor/plasteel{ icon_state = "neutralfull" }, @@ -152620,7 +153157,7 @@ network = list("Minisat","SS13") }, /turf/simulated/floor/redgrid, -/area/tcommsat/chamber) +/area/tcommsat/server) "wtT" = ( /obj/machinery/door/airlock/maintenance{ name = "Broom Closet" @@ -152797,7 +153334,7 @@ dir = 6; icon_state = "darkblue" }, -/area/chapel/main) +/area/chapel/massdriver) "wvE" = ( /obj/machinery/atmospherics/unary/vent_scrubber{ name = "standard air scrubber"; @@ -153640,7 +154177,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "wBS" = ( /obj/structure/cable{ icon_state = "4-8" @@ -153860,6 +154397,16 @@ icon_state = "dark" }, /area/aisat/maintenance) +"wDL" = ( +/obj/machinery/alarm{ + dir = 1; + pixel_y = -24 + }, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "vault" + }, +/area/chapel/massdriver) "wDO" = ( /obj/structure/chair{ dir = 1 @@ -153867,7 +154414,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/chapel/main) +/area/chapel/massdriver) "wDT" = ( /obj/structure/cable{ d1 = 4; @@ -154916,7 +155463,7 @@ dir = 8; icon_state = "darkred" }, -/area/tcommsat/chamber) +/area/tcommsat/server) "wNu" = ( /obj/machinery/light{ dir = 1; @@ -155167,7 +155714,7 @@ dir = 8 }, /turf/simulated/floor/plating, -/area/chapel/main) +/area/chapel/massdriver) "wOT" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -155392,6 +155939,16 @@ /obj/effect/decal/cleanable/dust, /turf/simulated/floor/carpet/green, /area/maintenance/casino) +"wQi" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + pixel_y = -28 + }, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "vault" + }, +/area/chapel/massdriver) "wQj" = ( /obj/machinery/door/airlock/maintenance{ req_access = list(22) @@ -156208,7 +156765,7 @@ /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "wXl" = ( /obj/machinery/atmospherics/unary/vent_scrubber{ name = "standard air scrubber"; @@ -156700,7 +157257,7 @@ dir = 5; icon_state = "darkblue" }, -/area/chapel/main) +/area/chapel/massdriver) "xaK" = ( /obj/machinery/alarm{ dir = 8; @@ -158871,6 +159428,14 @@ pixel_x = 3; pixel_y = -3 }, +/obj/item/grenade/chem_grenade/teargas{ + pixel_y = -6; + pixel_x = 6 + }, +/obj/item/grenade/chem_grenade/teargas{ + pixel_y = -3; + pixel_x = 3 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -159240,7 +159805,7 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, -/turf/simulated/floor/carpet/royalblack, +/turf/simulated/floor/carpet/black, /area/ntrep) "xvb" = ( /obj/structure/cable{ @@ -159436,11 +160001,6 @@ /area/security/securearmory) "xwA" = ( /obj/effect/decal/warning_stripes/west, -/obj/item/storage/box/flashbangs{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/storage/box/flashbangs, /obj/item/storage/box/handcuffs{ pixel_x = -3; pixel_y = 3 @@ -159450,6 +160010,11 @@ name = "Brig storage crate" }, /obj/machinery/light, +/obj/item/storage/box/flashbangs, +/obj/item/storage/box/flashbangs{ + pixel_x = 3; + pixel_y = -3 + }, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -159759,7 +160324,19 @@ }, /obj/machinery/light, /obj/structure/table, -/obj/item/storage/firstaid/regular, +/obj/item/stack/sheet/metal{ + amount = 50; + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/stack/sheet/metal{ + amount = 50 + }, +/obj/item/stack/sheet/rglass{ + amount = 50; + pixel_x = 2; + pixel_y = 2 + }, /turf/simulated/floor/plasteel{ dir = 1 }, @@ -160188,9 +160765,12 @@ /area/toxins/mixing) "xBF" = ( /obj/structure/window/reinforced, -/obj/structure/statue/gold/hos{ - pixel_y = 7 +/obj/structure/sign/goldenplaque{ + pixel_y = 32; + desc = "Важное Уточнение! Рабочие пожелали оставаться анонимными, поэтому, обойдёмся их прозвищами. За помощь Главному Инженеру Новы в поисках и устранении неисправностей на станции НаноТрейзен. С благодарностью, Aeterna0. Слава НаноТрейзен!"; + name = "Благодарственное Письмо от Главного Инженера станции Нова" }, +/obj/structure/statue/gold/ce, /turf/simulated/floor/plasteel{ icon_state = "dark" }, @@ -160518,7 +161098,7 @@ id_tag = "port4_sensor"; layer = 3.3; pixel_x = 25; - pixel_y = 5 + pixel_y = 7 }, /obj/machinery/light/small{ dir = 8 @@ -161032,7 +161612,7 @@ }, /obj/machinery/airlock_sensor{ id_tag = "arrival_south_sensor"; - pixel_y = 24 + pixel_y = 34 }, /obj/machinery/embedded_controller/radio/airlock/airlock_controller{ id_tag = "arrival_south_airlock"; @@ -161040,7 +161620,11 @@ tag_chamber_sensor = "arrival_south_sensor"; tag_exterior_door = "arrival_south_outer"; tag_interior_door = "arrival_south_inner"; - pixel_y = -25 + pixel_y = 27 + }, +/obj/structure/sign/vacuum{ + icon_state = "space1"; + pixel_y = -32 }, /turf/simulated/floor/plating, /area/hallway/secondary/exit) @@ -161186,7 +161770,7 @@ /turf/simulated/floor/plasteel{ icon_state = "dark" }, -/area/chapel/main) +/area/chapel/massdriver) "xJI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/sortjunction{ @@ -161551,7 +162135,7 @@ dir = 8; icon_state = "vault" }, -/area/tcommsat/chamber) +/area/tcommsat/server) "xMp" = ( /obj/structure/railing/corner{ dir = 4 @@ -162061,10 +162645,14 @@ pixel_x = 24; pixel_y = 24 }, +/obj/machinery/alarm{ + dir = 8; + pixel_x = 25 + }, /turf/simulated/floor/plasteel{ icon_state = "cult" }, -/area/chapel/office) +/area/chapel/morgue) "xQF" = ( /obj/effect/spawner/random_spawners/blood_20, /turf/simulated/floor/plasteel{ @@ -162089,6 +162677,9 @@ "xQI" = ( /obj/structure/bed, /obj/machinery/light, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, /turf/simulated/floor/plasteel{ dir = 1 }, @@ -162945,11 +163536,16 @@ dir = 1; in_use = 1 }, +/obj/machinery/firealarm{ + dir = 1; + name = "south fire alarm"; + pixel_y = 26 + }, /turf/simulated/floor/plasteel{ dir = 9; icon_state = "vault" }, -/area/chapel/main) +/area/chapel/massdriver) "xWd" = ( /obj/structure/window/reinforced{ dir = 8 @@ -163603,7 +164199,7 @@ /obj/machinery/airlock_sensor{ id_tag = "atmos_tank_sensor"; pixel_x = 57; - pixel_y = 8 + pixel_y = 7 }, /turf/simulated/floor/plasteel/dark, /area/engineering/controlroom) @@ -163768,6 +164364,18 @@ }, /turf/simulated/floor/wood, /area/blueshield) +"ybv" = ( +/obj/machinery/atmospherics/unary/vent_scrubber{ + name = "standard air scrubber"; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1; + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/chapel/massdriver) "ybx" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -164550,7 +165158,7 @@ dir = 6; icon_state = "vault" }, -/area/chapel/main) +/area/chapel/massdriver) "ygI" = ( /obj/machinery/door/firedoor, /obj/effect/decal/warning_stripes/yellow, @@ -164868,6 +165476,10 @@ icon_state = "white" }, /area/medical/ward) +"yjj" = ( +/obj/structure/flora/ausbushes/reedbush, +/turf/simulated/floor/grass, +/area/maintenance/garden) "yjl" = ( /obj/structure/cable{ icon_state = "4-8" @@ -182034,7 +182646,7 @@ dFQ dFQ dFQ ocY -mWj +pWd eCk fAb wlg @@ -185393,7 +186005,7 @@ hKl jOC irs son -pSU +oEP jOC oak pPo @@ -186890,7 +187502,7 @@ xYq qGf bHf aWy -ugu +pGo fDG fDG fDG @@ -187106,7 +187718,7 @@ pMY lrf hkd lNx -pGm +ldG oax kbL vXb @@ -195169,7 +195781,7 @@ tkq tkq tkq dTS -hOz +lSD fDj iBU aHe @@ -197739,7 +198351,7 @@ tkq tkq tkq dTS -hOz +lSD tlq xTw hhx @@ -205497,8 +206109,8 @@ mMy lON dvj pWK -jll -jll +qwG +qFi jqO jll iIW @@ -216218,7 +216830,7 @@ cxn hRb hRb ibo -jKe +nFO fti kcL gVE @@ -246288,8 +246900,8 @@ ajW xoL oMu sfk -sfk -sfk +mhj +tpw bhh fvn gHq @@ -246312,7 +246924,7 @@ vbS gKt xmI dWi -mct +jmY aDA xAy vmF @@ -246570,7 +247182,7 @@ cTX egQ ldl gEV -jmY +mct xbz cIK jHI @@ -246801,8 +247413,8 @@ xoL ajW xoL gEx -mYe -mYe +ovd +uJX mYe qtN tIW @@ -251427,15 +252039,15 @@ xWH cCL dlD trZ -cXR +xzQ kYp lRi -wot +vTl gcH -hqo -lRi -nOM bmP +lRi +kYp +xzQ rAz dlD gIB @@ -252205,8 +252817,8 @@ vTl vZU hqo lRi -nOM -cDr +kYp +uWF tNj dlD pvc @@ -259107,7 +259719,7 @@ lbB hCH hHJ brM -pYS +aNX ihk fGh boP @@ -259924,7 +260536,7 @@ fvL bkc bkc bkc -bkc +fvL bkc bkc bkc @@ -260635,7 +261247,7 @@ fvL fvL hKA kCp -jZN +nwG kCp uMw ppW @@ -261662,7 +262274,7 @@ kCp kGY hKA nxY -qNY +kCp hJs uMw daU @@ -263733,7 +264345,7 @@ woE mmc wsA qCF -pYS +fps ihk fGh qEA @@ -263988,7 +264600,7 @@ aFR ges npi rsU -rsU +vdg qCF iOP ihk @@ -264036,7 +264648,7 @@ fvL bkc bkc bkc -bkc +fvL bkc bkc bkc @@ -264761,7 +265373,7 @@ lpY snI skE qCF -pYS +mXr ihk kjR mpH @@ -267155,7 +267767,7 @@ jFL baa cCD foY -qWo +fZu hlb jhW bGG @@ -267414,7 +268026,7 @@ nlt eJB qWo nzv -qWo +kjI eYr iik mze @@ -267670,7 +268282,7 @@ qHX fSw lLh cgD -qWo +dxq oOi qeC blB @@ -267926,8 +268538,8 @@ jFL cYx hmS wsH -qWo -qWo +oPt +nms qWo oDB bGG @@ -268440,10 +269052,10 @@ hfp mze mze dUM +vAn qWo qWo -qWo -qWo +bWi bGG nBL eQH @@ -268954,9 +269566,9 @@ xia mze mze bGG +yjj qWo -qWo -qWo +jVi jhW qQn bnw @@ -271728,7 +272340,7 @@ gab bkr urL iJr -jrc +vnH jrc jrc rtD @@ -272753,8 +273365,8 @@ nOX phm xxH mEB -rki -xSM +irY +ezg txh xxH eIO @@ -273520,9 +274132,9 @@ fIT ccA fIT lZs -nMr +dnh qBx -nMr +dYX nMr ojQ vLI @@ -273779,7 +274391,7 @@ nyx qIC nyx xxH -pyM +mio txh rki jYz @@ -274022,21 +274634,21 @@ lIq lIq nOX mHg -xxH -xxH -xxH +kqy +kqy +kqy qrm wXi -xxH -xxH -xxH -eVD -eVD +kqy +kqy +kqy +ijt +ijt uRu hSx -eVD -eVD -eVD +ijt +ijt +ijt spd rRE bKU @@ -274279,21 +274891,21 @@ sSR nTo pni kql -xxH +kqy uVm cHN sEN jHq cpb tqr -xxH +kqy huY mPn cJT mmJ vuI avO -eVD +ijt aUU kTg jGm @@ -274536,35 +275148,35 @@ pcL nOX nOX mHg -xxH +kqy grU sEN sEN jHq sEN mfw -xxH +kqy iJP -eIO +bDb ddg vtp -eIO +bDb mhJ -eVD +ijt qjp hQY mQF -rki +oRJ xxH eVD eVD +bmb eVD eVD eVD eVD eVD -eVD -eVD +bmb eVD eVD eVD @@ -274793,7 +275405,7 @@ pTU pTU nOX jSZ -xxH +kqy aCP sEN jjV @@ -274805,9 +275417,9 @@ eSU eSU eSU eHF -eIO +bDb mhJ -eVD +ijt xZX fvc rwJ @@ -275050,21 +275662,21 @@ cRi gvT mDV xTQ -xxH +kqy grU sEN sEN iWr sEN qym -xxH +kqy cjM ubt ssu -hxi -eIO -mhJ -eVD +scq +dAX +wQi +ijt qAL ikK kKi @@ -275307,21 +275919,21 @@ phm phm pcL nOX -xxH +kqy lJL xQE pwo hjr pvE wBP -xxH +kqy qjN niE caz hxi -eIO +bDb ygH -eVD +ijt xxH xxH xxH @@ -275564,21 +276176,21 @@ fgX fgX pTU pTU -xxH -xxH -xxH -xxH -xxH -xxH -xxH -xxH -eVD -eVD -eVD +kqy +kqy +kqy +kqy +kqy +kqy +kqy +kqy +ijt +ijt +ijt hxi -eIO +bDb tAj -eVD +ijt tUm gdY kIp @@ -275824,7 +276436,7 @@ uJG uJG uJG uJG -eVD +ijt lCs osk qRE @@ -275834,8 +276446,8 @@ qWI tns twE bDb -mhJ -eVD +wDL +ijt nJa llW yel @@ -276081,18 +276693,18 @@ cYe cYe cYe cYe -kjl +nYP xaI vsd jFs atN wDO -sMB -eVD +wmn +ijt mOQ -eIO +bDb ihh -eVD +ijt wWg ntw nim @@ -276347,9 +276959,9 @@ ist fzB rOT dWV -eIO +ybv mhJ -eVD +ijt mxu ubd spv @@ -276595,18 +277207,18 @@ cYe cYe cYe cYe -kjl +nYP bqr cee lDc idI cvV sMB -eVD +ijt xVY -eIO +bDb mhJ -eVD +ijt lXW lra kIp @@ -276852,18 +277464,18 @@ bkc uJG bkc bkc -eVD +ijt eKy fDT kUd vEe ixi wvB -eVD +ijt idr xJG gDB -eVD +ijt ddN rvs uUw @@ -277109,18 +277721,18 @@ fvL fvL fvL fvL -eVD -eVD -eVD -eVD -eVD -eVD -eVD -eVD -eVD -eVD -eVD -eVD +ijt +ijt +ijt +ijt +ijt +ijt +ijt +ijt +ijt +ijt +ijt +ijt uUw uUw uUw @@ -287719,13 +288331,13 @@ iqK iqK iqK iqK -hPs -hPs -hPs -hPs -hPs -hPs -hPs +hBC +hBC +hBC +hBC +hBC +hBC +hBC mRg mRg mRg @@ -287976,13 +288588,13 @@ nUo blK wCX qBf -hPs -hPs +hBC +hBC kdv wMZ saL -hPs -hPs +hBC +hBC uht uht vEb @@ -288233,13 +288845,13 @@ vOX bJz lhf hNL -hPs +hBC eoO nvR -dqM +qNY pxG vQd -hPs +hBC lrh mfy bTQ @@ -288490,13 +289102,13 @@ jWS mKl mKl rlg -hPs +hBC gjA -dbP +kCy bNE -uYu +gkR pzK -hPs +hBC lvm lvm grM @@ -289004,13 +289616,13 @@ jWS mKl mKl gBH -hPs +hBC qSz cdo eOV qDg ufB -hPs +hBC uTE uTE mVF @@ -289261,13 +289873,13 @@ nrj oWE rzI cxX -hPs +hBC cpJ eKM -dqM +qNY gfK wcF -hPs +hBC nBI vwV aPT @@ -289518,13 +290130,13 @@ cBD iJU wCX gke -hPs -hPs +hBC +hBC hQp sXu wtP -hPs -hPs +hBC +hBC uht uht hgi @@ -289775,13 +290387,13 @@ iqK iqK iqK iqK -hPs -hPs -hPs -hPs -hPs -hPs -hPs +hBC +hBC +hBC +hBC +hBC +hBC +hBC mRg mRg mRg diff --git a/code/__DEFINES/borer.dm b/code/__DEFINES/borer.dm index ee65cffd26c..cb61176fe58 100644 --- a/code/__DEFINES/borer.dm +++ b/code/__DEFINES/borer.dm @@ -1,10 +1,10 @@ #define REPRODUCTIONS_TO_MATURE 3 #define REPRODUCTIONS_TO_ADULT 6 #define REPRODUCTIONS_TO_ELDER 10 -#define HEAD_FOCUS_COST 9 -#define TORSO_FOCUS_COST 15 -#define HANDS_FOCUS_COST 5 -#define LEGS_FOCUS_COST 10 +#define HEAD_FOCUS_COST 4.5 +#define TORSO_FOCUS_COST 7.5 +#define HANDS_FOCUS_COST 2.5 +#define LEGS_FOCUS_COST 5 #define SCALING_MAX_CHEM 355 #define SCALING_CHEM_GAIN 15 #define BORER_RANK_YOUNG /datum/borer_rank/young diff --git a/code/__DEFINES/gamemode.dm b/code/__DEFINES/gamemode.dm index 2f2f64db4f5..33958d237c2 100644 --- a/code/__DEFINES/gamemode.dm +++ b/code/__DEFINES/gamemode.dm @@ -70,3 +70,4 @@ #define SPECIAL_ROLE_THIEF "Thief" #define SPECIAL_ROLE_SPACE_DRAGON "Space Dragon" #define SPECIAL_ROLE_EVENTMISC "Event Role" +#define SPECIAL_ROLE_MALFAI "Malfunctioning AI" diff --git a/code/controllers/configuration/entries/config.dm b/code/controllers/configuration/entries/config.dm index 5da930d43d3..f6570a41142 100644 --- a/code/controllers/configuration/entries/config.dm +++ b/code/controllers/configuration/entries/config.dm @@ -397,8 +397,6 @@ /datum/config_entry/number/simultaneous_pm_warning_timeout default = 100 -///Do assistants get maint access? -/datum/config_entry/flag/assistant_maint ///How long the gateway takes before it activates. Default is 10 minutes. Only matters if roundstart_away is enabled. /datum/config_entry/number/gateway_delay diff --git a/code/controllers/configuration/entries/testing.dm b/code/controllers/configuration/entries/testing.dm index ade389fb95c..009cc38beed 100644 --- a/code/controllers/configuration/entries/testing.dm +++ b/code/controllers/configuration/entries/testing.dm @@ -4,3 +4,9 @@ ///Enables bombarda crafting on server. /datum/config_entry/flag/enable_bombarda_craft + +///Enables loading titlescreen only after master has been loaded. +/datum/config_entry/flag/enable_titlescreen_lateload + +///Do not load station +/datum/config_entry/flag/load_no_station diff --git a/code/controllers/subsystem/icon_smooth.dm b/code/controllers/subsystem/icon_smooth.dm index 07aa1838d88..7648dc8b4bb 100644 --- a/code/controllers/subsystem/icon_smooth.dm +++ b/code/controllers/subsystem/icon_smooth.dm @@ -7,11 +7,18 @@ SUBSYSTEM_DEF(icon_smooth) offline_implications = "Objects will no longer smooth together properly. No immediate action is needed." cpu_display = SS_CPUDISPLAY_LOW ss_id = "icon_smooth" - + /** + * Used to track instances of icon smooth halters. Does not apply to roundstart loading, however. + * Always make sure to remove halt source from this list on the end of operation. + */ + var/halt_sources = list() var/list/smooth_queue = list() /datum/controller/subsystem/icon_smooth/fire() + if(length(halt_sources)) + return + while(smooth_queue.len) var/atom/A = smooth_queue[smooth_queue.len] smooth_queue.len-- @@ -44,3 +51,9 @@ SUBSYSTEM_DEF(icon_smooth) CHECK_TICK return SS_INIT_SUCCESS + +/datum/controller/subsystem/icon_smooth/proc/add_halt_source(datum/source) + halt_sources += source + +/datum/controller/subsystem/icon_smooth/proc/remove_halt_source(datum/source) + halt_sources -= source diff --git a/code/controllers/subsystem/non-firing/atoms.dm b/code/controllers/subsystem/non-firing/atoms.dm index 2a2a0caef1f..ff843736a49 100644 --- a/code/controllers/subsystem/non-firing/atoms.dm +++ b/code/controllers/subsystem/non-firing/atoms.dm @@ -27,6 +27,7 @@ SUBSYSTEM_DEF(atoms) if(initialized == INITIALIZATION_INSSATOMS) return + SSicon_smooth.add_halt_source(src) initialized = INITIALIZATION_INNEW_MAPLOAD LAZYINITLIST(late_loaders) @@ -79,6 +80,7 @@ SUBSYSTEM_DEF(atoms) log_debug(" Late initialized [length(late_loaders)] atoms in [stop_watch(watch)]s") late_loaders.Cut() + SSicon_smooth.remove_halt_source(src) /datum/controller/subsystem/atoms/proc/InitAtom(atom/A, list/arguments) var/the_type = A.type @@ -127,11 +129,12 @@ SUBSYSTEM_DEF(atoms) /datum/controller/subsystem/atoms/proc/map_loader_begin() old_initialized = initialized initialized = INITIALIZATION_INSSATOMS + SSicon_smooth.add_halt_source(src) /datum/controller/subsystem/atoms/proc/map_loader_stop() initialized = old_initialized - + SSicon_smooth.remove_halt_source(src) /datum/controller/subsystem/atoms/Recover() initialized = SSatoms.initialized diff --git a/code/controllers/subsystem/non-firing/mapping.dm b/code/controllers/subsystem/non-firing/mapping.dm index c0c6a4cd231..1680d0cc703 100644 --- a/code/controllers/subsystem/non-firing/mapping.dm +++ b/code/controllers/subsystem/non-firing/mapping.dm @@ -240,8 +240,27 @@ SUBSYSTEM_DEF(mapping) seedRuins(levels_by_trait(SPAWN_RUINS), rand(20, 30), /area/space, GLOB.space_ruins_templates) log_startup_progress("Successfully seeded ruins in [stop_watch(seed_ruins_timer)]s.") +/datum/controller/subsystem/mapping/proc/create_landmarks(turf/place) + var/landmarks = list( + /obj/effect/landmark/join_late, + /obj/effect/landmark/join_late_cryo, + /obj/effect/landmark/join_late_cyborg, + /obj/effect/landmark/join_late_gateway, + /obj/effect/landmark/observer_start + ) + + landmarks += subtypesof(/obj/effect/landmark/start) + for(var/mark in landmarks) + new mark(place) /datum/controller/subsystem/mapping/proc/loadStation() + if(CONFIG_GET(flag/load_no_station)) + log_startup_progress("Loading empty space...") + var/empty_z_level = GLOB.space_manager.add_new_zlevel(MAIN_STATION, linkage = CROSSLINKED, traits = DEFAULT_STATION_TRATS) + var/turf/centre = locate(world.maxx / 2, world.maxy / 2, empty_z_level) + create_landmarks(centre) + return + if(CONFIG_GET(string/default_map) && !CONFIG_GET(string/override_map) && map_datum == fallback_map) var/map_datum_path = text2path(CONFIG_GET(string/default_map)) if(map_datum_path) @@ -263,7 +282,6 @@ SUBSYSTEM_DEF(mapping) var/watch = start_watch() log_startup_progress("Loading [map_datum.station_name]...") - var/map_z_level if(map_datum.traits && map_datum.traits?.len && islist(map_datum.traits[1])) // we work with list of lists map_z_level = GLOB.space_manager.add_new_zlevel(MAIN_STATION, linkage = map_datum.linkage, traits = map_datum.traits[1]) diff --git a/code/controllers/subsystem/non-firing/titlescreen.dm b/code/controllers/subsystem/non-firing/titlescreen.dm index 1de3e185f67..ddcf80acf80 100644 --- a/code/controllers/subsystem/non-firing/titlescreen.dm +++ b/code/controllers/subsystem/non-firing/titlescreen.dm @@ -18,9 +18,14 @@ SUBSYSTEM_DEF(title) import_html() fill_title_images_pool() current_title_screen = new(title_html = base_html, screen_image_file = pick_title_image()) - show_title_screen_to_all_new_players() + if(!CONFIG_GET(flag/enable_titlescreen_lateload)) + show_title_screen_to_all_new_players() return SS_INIT_SUCCESS +/datum/controller/subsystem/title/OnMasterLoad() + if(CONFIG_GET(flag/enable_titlescreen_lateload)) + show_title_screen_to_all_new_players() + /datum/controller/subsystem/title/Recover() current_title_screen = SStitle.current_title_screen title_images_pool = SStitle.title_images_pool diff --git a/code/datums/action.dm b/code/datums/action.dm index 415da08fa9f..ce7e9830f6e 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -317,6 +317,9 @@ desc = "Toggles if the club's blasts cause friendly fire." button_icon_state = "vortex_ff_on" +/datum/action/item_action/toggle_backpack_light + name = "Toggle Backpack Light" + /datum/action/item_action/toggle_unfriendly_fire/Trigger(left_click = TRUE) if(..()) UpdateButtonIcon() diff --git a/code/datums/helper_datums/map_template.dm b/code/datums/helper_datums/map_template.dm index 3c6e5a2a0d4..4c9fca5d1d2 100644 --- a/code/datums/helper_datums/map_template.dm +++ b/code/datums/helper_datums/map_template.dm @@ -49,6 +49,7 @@ // if given a multi-z template // it might need to be adapted for that when that time comes GLOB.space_manager.add_dirt(placement.z) + SSicon_smooth.add_halt_source(src) try var/list/bounds = GLOB.maploader.load_map(get_file(), min_x, min_y, placement.z, shouldCropMap = TRUE) if(!bounds) @@ -58,11 +59,13 @@ if(ST_bot_left == null || ST_top_right == null) stack_trace("One of the smoothing corners is bust") catch(var/exception/e) + SSicon_smooth.remove_halt_source(src) GLOB.space_manager.remove_dirt(placement.z) message_admins("Map template [name] threw an error while loading. Safe exit attempted, but check for errors at [ADMIN_COORDJMP(placement)].") log_admin("Map template [name] threw an error while loading. Safe exit attempted.") throw e + SSicon_smooth.remove_halt_source(src) GLOB.space_manager.remove_dirt(placement.z) add_game_logs("[name] loaded at [min_x],[min_y],[placement.z]") diff --git a/code/datums/looping_sounds/item_sounds.dm b/code/datums/looping_sounds/item_sounds.dm index 4233c478644..e3a41b07ae5 100644 --- a/code/datums/looping_sounds/item_sounds.dm +++ b/code/datums/looping_sounds/item_sounds.dm @@ -3,3 +3,6 @@ start_sound = list('sound/items/taperecorder/taperecorder_hiss_start.ogg') volume = 10 +/datum/looping_sound/ambulance_alarm/justice + mid_length = 1.5 SECONDS + falloff_exponent = 4 diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index c36bb358f60..676c181ae90 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -577,6 +577,13 @@ GLOBAL_LIST_INIT(all_supply_groups, list(SUPPLY_EMERGENCY,SUPPLY_SECURITY,SUPPLY cost = 25 //По 6 за один блокиратор containername = "sibyl attachments crate" +/datum/supply_packs/security/armory/fastpouch + name = "Fast Pouch Crate" + contains = list(/obj/item/storage/pouch/fast, + /obj/item/storage/pouch/fast) + cost = 100 + containername = "fast pouch crate" + /////// Weapons: Specialist /datum/supply_packs/security/armory/ballistic diff --git a/code/defines/procs/announce.dm b/code/defines/procs/announce.dm index e124d06c5f9..19fe3703a74 100644 --- a/code/defines/procs/announce.dm +++ b/code/defines/procs/announce.dm @@ -13,6 +13,7 @@ GLOBAL_DATUM_INIT(event_announcement, /datum/announcement/priority/command/event var/announcement_type = "Оповещение" var/admin_announcement = 0 // Admin announcements are received regardless of being in range of a radio, unless you're in the lobby to prevent metagaming var/language = LANGUAGE_GALACTIC_COMMON + var/beannounced = TRUE /datum/announcement/New(var/do_log = 0, var/new_sound = null, var/do_newscast = 0) sound = new_sound @@ -47,6 +48,8 @@ GLOBAL_DATUM_INIT(event_announcement, /datum/announcement/priority/command/event /datum/announcement/proc/Announce(message as text, new_title = "", new_sound = null, do_newscast = newscast, msg_sanitized = 0, from, msg_language) if(!message) return + if(!beannounced) + return var/message_title = new_title ? new_title : title var/message_sound = new_sound ? sound(new_sound) : sound diff --git a/code/game/area/ss13_areas.dm b/code/game/area/ss13_areas.dm index bd59b00b0e7..2b86eaa3fed 100644 --- a/code/game/area/ss13_areas.dm +++ b/code/game/area/ss13_areas.dm @@ -1491,6 +1491,12 @@ This applies to all STANDARD station areas name = "Chapel Office" icon_state = "chapeloffice" +/area/chapel/morgue + name = "Chapel Morgue" + +/area/chapel/massdriver + name = "Chapel Mass Driver" + /area/escapepodbay name = "Escape Shuttle Hallway Podbay" icon_state = "escape" diff --git a/code/game/dna/genes/disabilities.dm b/code/game/dna/genes/disabilities.dm index 70e7ab98ca0..3e17d60509f 100644 --- a/code/game/dna/genes/disabilities.dm +++ b/code/game/dna/genes/disabilities.dm @@ -266,7 +266,7 @@ /datum/dna/gene/disability/wingdings name = "Alien Voice" desc = "Искажает голос субъекта, превращая его в непонятную речь." - activation_message = list(span_wingdings("Ваши голосовые связки кажутся инородными.")) + activation_message = list(span_wingdings("Vashi golosovyye svyazki kazhutsya chuzhimi.")) deactivation_message = list("Ваши голосовые связки больше не кажутся инородными.") instability = -GENE_INSTABILITY_MINOR traits_to_add = list(TRAIT_WINGDINGS) @@ -303,7 +303,7 @@ /datum/dna/gene/disability/weak name = "Weak" desc = "Делает мышцы субъекта более слабыми." - activation_message = list("Вы чуствуете внезапную слабость в мышцах.") + activation_message = list("Вы чувствуете внезапную слабость в мышцах.") deactivation_message = list("Вы снова ощущаете силу в мышцах.") instability = -GENE_INSTABILITY_MODERATE traits_to_add = list(TRAIT_GENE_WEAK) @@ -378,7 +378,7 @@ /datum/dna/gene/disability/paraplegia name = "Paraplegia" desc = "Парализует мышцы ног." - activation_message = list("Вы не чуствуете своих ног.") + activation_message = list("Вы не чувствуете своих ног.") deactivation_message = list("Вы возвращаете контроль над ногами.") instability = -GENE_INSTABILITY_MAJOR traits_to_add = list(TRAIT_FLOORED) diff --git a/code/game/dna/genes/goon_powers.dm b/code/game/dna/genes/goon_powers.dm index 84908917c69..313db2a819a 100644 --- a/code/game/dna/genes/goon_powers.dm +++ b/code/game/dna/genes/goon_powers.dm @@ -586,7 +586,7 @@ numbers += H.mind.initial_account.account_number numbers += H.mind.initial_account.remote_access_pin if(numbers.len>0) - to_chat(user, span_notice("Числа: Вы чувствуете, что [numbers.len > 1?"число является важным" : "числа являются важными"] для [M.name].")) + to_chat(user, span_notice("Числа: Вы чувствуете, что [numbers.len > 1 ? "числа" : "число"] [english_list(numbers)] [numbers.len > 1 ? "являются важными" : "является важным"] для [M.name].")) to_chat(user, span_notice("Мысли: [M.name] сейчас [thoughts].")) if(HAS_TRAIT(M, TRAIT_EMPATHY)) diff --git a/code/game/gamemodes/antag_paradise/antag_paradise.dm b/code/game/gamemodes/antag_paradise/antag_paradise.dm index 7ac097ddd9c..fd86374286d 100644 --- a/code/game/gamemodes/antag_paradise/antag_paradise.dm +++ b/code/game/gamemodes/antag_paradise/antag_paradise.dm @@ -107,7 +107,7 @@ if(special_antag) special_antag.restricted_roles = (restricted_jobs|protected_jobs|protected_jobs_AI) special_antag.restricted_roles -= JOB_TITLE_AI - special_antag.special_role = SPECIAL_ROLE_TRAITOR + special_antag.special_role = SPECIAL_ROLE_MALFAI SSjobs.new_malf = special_antag.current pre_antags[special_antag] = ROLE_MALF_AI antags_amount-- diff --git a/code/game/gamemodes/clockwork/clockwork_structures.dm b/code/game/gamemodes/clockwork/clockwork_structures.dm index cefd9609788..e65baa26fee 100644 --- a/code/game/gamemodes/clockwork/clockwork_structures.dm +++ b/code/game/gamemodes/clockwork/clockwork_structures.dm @@ -18,12 +18,12 @@ /obj/structure/clockwork/functional max_integrity = 100 var/cooldowntime = 0 - var/death_message = "The structure falls apart." + var/death_message = span_danger("The structure falls apart.") var/death_sound = 'sound/effects/forge_destroy.ogg' var/canbehidden = FALSE var/hidden = FALSE var/hidden_type - var/list/choosable_items = list( + var/list/atom/choosable_items = list( "rack" = /obj/structure/rack, "table" = /obj/structure/table, "wooden table" = /obj/structure/table/wood, @@ -37,19 +37,7 @@ if(!hidden) name = initial(name) return - switch(hidden_type) - if("rack") - name = "rack" - if("table") - name = "table" - if("wooden table") - name = "wooden table" - if("personal closet") - name = "personal closet" - if("girder") - name = "girder" - if("bookcase") - name = "bookcase" + name = choosable_items[hidden_type]::name /obj/structure/clockwork/functional/update_desc(updates = ALL) @@ -57,19 +45,19 @@ if(!hidden) desc = initial(desc) return - switch(hidden_type) + switch(hidden_type) //used in case, where objects "examine" text aren't in their desc var (like in proc/examine()) or if you want do something funny if("rack") - desc = "Different from the Middle Ages version.
It's held together by a couple of bolts." + desc = "Different from the Middle Ages version.
[span_notice("It's held together by a couple of bolts.")]" if("table") - desc = "A square piece of metal standing on four metal legs. It can not move.
The top is screwed on, but the main bolts are also visible." + desc = "A square piece of metal standing on four metal legs. It can not move.
[span_notice("The top is screwed on, but the main bolts are also visible.")]" if("wooden table") - desc = "Do not apply fire to this. Rumour says it burns easily.
The top is screwed on, but the main bolts are also visible." - if("personal closet") - desc = "It's a secure locker for personnel. The first card swiped gains control." + desc = "Do not apply fire to this. Rumour says it burns easily.
[span_notice("The top is screwed on, but the main bolts are also visible.")]" if("girder") - desc = "The bolts are lodged in place." - if("bookcase") - desc = null + desc = "[span_notice("The bolts are lodged in place.")]" + if("broken grille") + desc = "A flimsy framework of metal rods.
[span_notice("It's secured in place with screws. The rods look like they could be cut through.")]" + else + desc = choosable_items[hidden_type]::desc /obj/structure/clockwork/functional/update_icon_state() @@ -77,25 +65,8 @@ icon = initial(icon) icon_state = anchored ? "[initial(icon_state)]-off" : initial(icon_state) return - switch(hidden_type) - if("rack") - icon = 'icons/obj/objects.dmi' - icon_state = "rack" - if("table") - icon = 'icons/obj/smooth_structures/table.dmi' - icon_state = "table" - if("wooden table") - icon = 'icons/obj/smooth_structures/wood_table.dmi' - icon_state = "wood_table" - if("personal closet") - icon = 'icons/obj/closet.dmi' - icon_state = "secureoff" - if("girder") - icon = 'icons/obj/structures.dmi' - icon_state = "girder" - if("bookcase") - icon = 'icons/obj/library.dmi' - icon_state = "book-0" + icon = choosable_items[hidden_type]::icon + icon_state = choosable_items[hidden_type]::icon_state /obj/structure/clockwork/functional/attackby(obj/item/I, mob/user, params) @@ -139,7 +110,7 @@ /obj/structure/clockwork/functional/examine(mob/user) . = ..() if(hidden && isclocker(user)) - . += "It's a disguised [initial(name)]!" + . += span_notice("It's a disguised [initial(name)]!") // returns TRUE if hidden, if unhidden FALSE /obj/structure/clockwork/functional/proc/toggle_hide(chosen_type) @@ -158,7 +129,7 @@ desc = "An imposing spire formed of brass. It somewhat pulsates." icon_state = "beacon" max_integrity = 250 // A very important one - death_message = "The beacon crumbles and falls in parts to the ground relaesing it's power!" + death_message = span_danger("The beacon crumbles and falls in parts to the ground relaesing it's power!") death_sound = 'sound/effects/creepyshriek.ogg' var/heal_delay = 6 SECONDS var/last_heal = 0 @@ -186,7 +157,7 @@ if(!isclocker(L)) continue if(L.reagents?.has_reagent("holywater")) - to_chat(L, "You feel a terrible liquid disappearing from your body.") + to_chat(L, span_warning("You feel a terrible liquid disappearing from your body.")) L.reagents.del_reagent("holywater") if(iscogscarab(L)) var/mob/living/silicon/robot/cogscarab/C = L @@ -213,7 +184,7 @@ GLOB.clockwork_beacons -= src STOP_PROCESSING(SSobj, src) for(var/datum/mind/M in SSticker.mode.clockwork_cult) - to_chat(M.current, "You get the feeling that one of the beacons have been destroyed! The source comes from [areabeacon.name]") + to_chat(M.current, span_danger("You get the feeling that one of the beacons have been destroyed! The source comes from [areabeacon.name]")) return ..() /obj/structure/clockwork/functional/beacon/attackby(obj/item/I, mob/user, params) @@ -228,7 +199,7 @@ desc = "A strange brass platform with spinning cogs inside. It demands something in exchange for goods..." icon_state = "altar" density = FALSE - death_message = "The credence breaks in pieces as it dusts into nothing!" + death_message = span_danger("The credence breaks in pieces as it dusts into nothing!") canbehidden = TRUE choosable_items = list( "potted plant" = /obj/item/twohanded/required/kirbyplants, @@ -265,38 +236,6 @@ return ..() -/obj/structure/clockwork/functional/altar/update_name(updates = ALL) - . = ..() - if(!hidden) - name = initial(name) - return - switch(hidden_type) - if("potted plant") - name = "potted plant" - if("chair") - name = "chair" - if("stool") - name = "stool" - if("broken grille") - name = "grille" - - -/obj/structure/clockwork/functional/altar/update_desc(updates = ALL) - . = ..() - if(!hidden) - desc = initial(desc) - return - switch(hidden_type) - if("potted plant") - desc = null - if("chair") - desc = "You sit in this. Either by will or force." - if("stool") - desc = "Apply butt." - if("broken grille") - desc = "A flimsy framework of metal rods." - - /obj/structure/clockwork/functional/altar/update_icon_state() if(!hidden) icon = initial(icon) @@ -305,19 +244,11 @@ return icon_state = first_stage ? "[initial(icon_state)]-fast" : initial(icon_state) return - switch(hidden_type) - if("potted plant") - icon = 'icons/obj/flora/plants.dmi' - icon_state = "plant-[rand(1,36)]" - if("chair") - icon = 'icons/obj/chairs.dmi' - icon_state = "chair" - if("stool") - icon = 'icons/obj/chairs.dmi' - icon_state = "stool" - if("broken grille") - icon = 'icons/obj/structures.dmi' - icon_state = "brokengrille" + icon = choosable_items[hidden_type]::icon + if(hidden_type == "potted plant") + icon_state = "plant-[rand(1,36)]" + else + icon_state = choosable_items[hidden_type]::icon_state /obj/structure/clockwork/functional/altar/attackby(obj/item/I, mob/user, params) @@ -408,7 +339,7 @@ /obj/structure/clockwork/functional/altar/proc/first_stage_check(var/mob/living/carbon/human/target) first_stage = TRUE - target.visible_message("[src] begins to glow a piercing amber!", "You feel something start to invade your mind...") + target.visible_message(span_warning("[src] begins to glow a piercing amber!"), span_clock("You feel something start to invade your mind...")) glow = new (get_turf(src)) animate(glow, alpha = 255, time = 8 SECONDS) update_icon(UPDATE_ICON_STATE) @@ -416,11 +347,11 @@ /obj/structure/clockwork/functional/altar/proc/second_stage_check(var/mob/living/carbon/human/target) second_stage = TRUE if(!is_convertable_to_clocker(target.mind) || target.stat == DEAD) // mindshield or holy or mindless monkey. or dead guy - target.visible_message("[src] in glowing manner starts corrupting [target]!", \ - "You feel as your body starts to corrupt by [src] underneath!") + target.visible_message(span_warning("[src] in glowing manner starts corrupting [target]!"), \ + span_danger("You feel as your body starts to corrupt by [src] underneath!")) target.Weaken(20 SECONDS) else // just a living non-clocker civil - to_chat(target, "\"You belong to me now.\"") + to_chat(target, span_clocklarge("\"You belong to me now.\"")) target.heal_overall_damage(50, 50) if(isgolem(target)) target.mind.wipe_memory() @@ -438,7 +369,7 @@ converting = null update_icon(UPDATE_ICON_STATE) if(!silent) - visible_message("[src] slowly stops glowing!") + visible_message(span_warning("[src] slowly stops glowing!")) /obj/structure/clockwork/functional/altar/attackby(obj/item/I, mob/user, params) @@ -467,30 +398,30 @@ var/datum/game_mode/gamemode = SSticker.mode if(GLOB.ark_of_the_clockwork_justiciar) - to_chat(user, "There is already Gateway somewhere!") + to_chat(user, span_clockitalic("There is already Gateway somewhere!")) return FALSE if(gamemode.clocker_objs.clock_status < RATVAR_NEEDS_SUMMONING) - to_chat(user, "Ratvar is not ready to be summoned yet!") + to_chat(user, span_clockitalic("Ratvar is not ready to be summoned yet!")) return FALSE if(gamemode.clocker_objs.clock_status == RATVAR_HAS_RISEN) - to_chat(user, "\"My fellow. There is no need for it anymore.\"") + to_chat(user, span_clockitalic("\"My fellow. There is no need for it anymore.\"")) return FALSE var/list/summon_areas = gamemode.clocker_objs.obj_summon.ritual_spots if(!(A in summon_areas)) - to_chat(user, "Ratvar can only be summoned where the veil is weak - in [english_list(summon_areas)]!") + to_chat(user, span_cultlarge("Ratvar can only be summoned where the veil is weak - in [english_list(summon_areas)]!")) return FALSE var/confirm_final = tgui_alert(user, "This is the FINAL step to summon, the crew will be alerted to your presence AND your location!", "The power comes...", list("Let Ratvar shine ones more!", "No")) if(user) if(confirm_final != "Let Ratvar shine ones more!") - to_chat(user, "You decide to prepare further before pincing the shard.") + to_chat(user, span_clockitalic("You decide to prepare further before pincing the shard.")) return FALSE return TRUE /obj/structure/clockwork/functional/altar/proc/begin_the_ritual() - visible_message("The [src] expands itself revealing into the great Ark!") + visible_message(span_danger("The [src] expands itself revealing into the great Ark!")) new /obj/structure/clockwork/functional/celestial_gateway(get_turf(src)) qdel(src) return @@ -499,7 +430,7 @@ name = "cogscarab fabricator" desc = "House for a tons of little cogscarabs, self-producing and maintaining itself." icon_state = "fabricator" - death_message = "Fabricator crumbles and dusts, leaving nothing behind!" + death_message = span_danger("Fabricator crumbles and dusts, leaving nothing behind!") var/list/cogscarab_list = list() canbehidden = TRUE var/cog_slots = 0 @@ -508,11 +439,7 @@ /obj/structure/clockwork/functional/cogscarab_fabricator/examine(mob/user) . = ..() if(!hidden && (isclocker(user) || isobserver(user))) - . += "There's [cog_slots - cogscarab_list.len] cogscarab ready. [timer_fabrictor ? "And it's creating another one now" : "It stopped creating."]." - - -/obj/structure/clockwork/functional/cogscarab_fabricator/update_icon_state() - icon_state = anchored ? "[initial(icon_state)]-off" : initial(icon_state) + . += span_notice("There's [cog_slots - cogscarab_list.len] cogscarab ready. [timer_fabrictor ? "And it's creating another one now" : "It stopped creating."].") /obj/structure/clockwork/functional/cogscarab_fabricator/Initialize(mapload) @@ -577,17 +504,17 @@ /obj/structure/clockwork/functional/cogscarab_fabricator/attack_ghost(mob/dead/observer/user) if(hidden) - to_chat(user, "It's hidden and cannot produce you at this state!") + to_chat(user, span_warning("It's hidden and cannot produce you at this state!")) return FALSE if(!anchored) - to_chat(user, "It seems to be non-functional to produce a new shell!") + to_chat(user, span_warning("It seems to be non-functional to produce a new shell!")) return FALSE if(cogscarab_list.len >= cog_slots) - to_chat(user, "There's no empty shells to take!") + to_chat(user, span_notice("There's no empty shells to take!")) return FALSE if(alert(user, "Do you wish to become cogscarab?",,"Yes","No") == "Yes") if(cogscarab_list.len >= cog_slots) //Double check. No duplications - to_chat(user, "There's no empty shells to take!") + to_chat(user, span_notice("There's no empty shells to take!")) return FALSE var/mob/living/silicon/robot/cogscarab/cog = new(loc) cog.key = user.key diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index bdefc1983a3..26a3307edad 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -77,6 +77,7 @@ pre_malf_AI = traitor pre_malf_AI.restricted_roles = (restricted_jobs|protected_jobs|protected_jobs_AI) // All jobs are restricted for malf AI despite the config. pre_malf_AI.restricted_roles -= JOB_TITLE_AI + traitor.special_role = SPECIAL_ROLE_MALFAI SSjobs.new_malf = traitor.current else pre_traitors += traitor diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index 466ea8ab14a..7845ee9396e 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -9,8 +9,8 @@ supervisors = "the head of personnel" department_head = list(JOB_TITLE_HOP) selection_color = "#e6e6e6" - access = list() //See /datum/job/assistant/get_access() - minimal_access = list() //See /datum/job/assistant/get_access() + access = list(ACCESS_MAINT_TUNNELS) + minimal_access = list(ACCESS_MAINT_TUNNELS) alt_titles = list("Tourist","Businessman","Trader","Assistant") outfit = /datum/outfit/job/assistant insurance_type = INSURANCE_TYPE_BUDGETARY @@ -19,11 +19,6 @@ min_start_money = 10 max_start_money = 200 -/datum/job/civilian/get_access() - if(CONFIG_GET(flag/assistant_maint)) - return list(ACCESS_MAINT_TUNNELS) - else - return list() /datum/outfit/job/assistant name = "Civilian" diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index d90f74afdeb..06879c0c751 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -58,8 +58,8 @@ supervisors = "the chief medical officer" department_head = list(JOB_TITLE_CMO) selection_color = "#d1eeff" - access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_GENETICS, ACCESS_MINERAL_STOREROOM) - minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY) + access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_GENETICS, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS) + minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_MAINT_TUNNELS) alt_titles = list("Surgeon","Nurse") minimal_player_age = 3 exp_requirements = 600 @@ -145,8 +145,8 @@ supervisors = "the chief medical officer" department_head = list(JOB_TITLE_CMO) selection_color = "#d1eeff" - access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_GENETICS, ACCESS_MINERAL_STOREROOM) - minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE) + access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_GENETICS, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS) + minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS) minimal_player_age = 3 exp_requirements = 180 exp_type = EXP_TYPE_CREW @@ -211,8 +211,8 @@ supervisors = "the chief medical officer" department_head = list(JOB_TITLE_CMO) selection_color = "#d1eeff" - access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_GENETICS, ACCESS_MINERAL_STOREROOM) - minimal_access = list(ACCESS_MEDICAL, ACCESS_CHEMISTRY, ACCESS_MINERAL_STOREROOM) + access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_GENETICS, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS) + minimal_access = list(ACCESS_MEDICAL, ACCESS_CHEMISTRY, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS) alt_titles = list("Pharmacist","Pharmacologist") minimal_player_age = 7 exp_requirements = 600 @@ -250,8 +250,8 @@ supervisors = "the chief medical officer and the research director" department_head = list(JOB_TITLE_CMO, JOB_TITLE_RD) selection_color = "#d1eeff" - access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_GENETICS, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM) - minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_RESEARCH) + access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_GENETICS, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS) + minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_RESEARCH, ACCESS_MAINT_TUNNELS) minimal_player_age = 3 exp_requirements = 900 exp_type = EXP_TYPE_MEDICAL @@ -288,8 +288,8 @@ supervisors = "the chief medical officer" department_head = list(JOB_TITLE_CMO) selection_color = "#d1eeff" - access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_GENETICS, ACCESS_MINERAL_STOREROOM) - minimal_access = list(ACCESS_MEDICAL, ACCESS_VIROLOGY, ACCESS_MINERAL_STOREROOM) + access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_GENETICS, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS) + minimal_access = list(ACCESS_MEDICAL, ACCESS_VIROLOGY, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS) alt_titles = list("Pathologist","Microbiologist") minimal_player_age = 7 exp_requirements = 900 @@ -328,8 +328,8 @@ supervisors = "the chief medical officer" department_head = list(JOB_TITLE_CMO) selection_color = "#d1eeff" - access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_GENETICS, ACCESS_PSYCHIATRIST) - minimal_access = list(ACCESS_MEDICAL, ACCESS_PSYCHIATRIST) + access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_GENETICS, ACCESS_PSYCHIATRIST, ACCESS_MAINT_TUNNELS) + minimal_access = list(ACCESS_MEDICAL, ACCESS_PSYCHIATRIST, ACCESS_MAINT_TUNNELS) alt_titles = list("Psychologist","Therapist") outfit = /datum/outfit/job/psychiatrist diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index a7ddd56690b..9529e98f49a 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -64,8 +64,8 @@ supervisors = "the research director" department_head = list(JOB_TITLE_RD) selection_color = "#e6d1f0" - access = list(ACCESS_ROBOTICS, ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_XENOBIOLOGY, ACCESS_XENOARCH, ACCESS_MINERAL_STOREROOM) - minimal_access = list(ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_XENOBIOLOGY, ACCESS_XENOARCH, ACCESS_MINERAL_STOREROOM) + access = list(ACCESS_ROBOTICS, ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_XENOBIOLOGY, ACCESS_XENOARCH, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS) + minimal_access = list(ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_XENOBIOLOGY, ACCESS_XENOARCH, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS) alt_titles = list("Anomalist", "Plasma Researcher", "Xenobiologist", "Chemical Researcher") minimal_player_age = 3 exp_requirements = 600 @@ -149,8 +149,8 @@ supervisors = "the research director" department_head = list(JOB_TITLE_RD) selection_color = "#e6d1f0" - access = list(ACCESS_ROBOTICS, ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_TECH_STORAGE, ACCESS_MORGUE, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM) //As a job that handles so many corpses, it makes sense for them to have morgue access. - minimal_access = list(ACCESS_ROBOTICS, ACCESS_TECH_STORAGE, ACCESS_MORGUE, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM) //As a job that handles so many corpses, it makes sense for them to have morgue access. + access = list(ACCESS_ROBOTICS, ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_TECH_STORAGE, ACCESS_MORGUE, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS) //As a job that handles so many corpses, it makes sense for them to have morgue access. + minimal_access = list(ACCESS_ROBOTICS, ACCESS_TECH_STORAGE, ACCESS_MORGUE, ACCESS_RESEARCH, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS) //As a job that handles so many corpses, it makes sense for them to have morgue access. alt_titles = list("Biomechanical Engineer","Mechatronic Engineer") minimal_player_age = 3 exp_requirements = 900 diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index 7fd0e3ec95f..6ad447c1326 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -36,7 +36,7 @@ uniform = /obj/item/clothing/under/rank/head_of_security suit = /obj/item/clothing/suit/armor/hos - gloves = /obj/item/clothing/gloves/color/black/hos + gloves = /obj/item/clothing/gloves/combat/swat shoes = /obj/item/clothing/shoes/jackboots head = /obj/item/clothing/head/HoS l_ear = /obj/item/radio/headset/heads/hos/alt @@ -71,8 +71,8 @@ supervisors = "the head of security" department_head = list(JOB_TITLE_HOS) selection_color = "#edcdcd" - access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_WEAPONS) - minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_WEAPONS) + access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_PILOT, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_GATEWAY, ACCESS_WEAPONS) + minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_PILOT, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_GATEWAY, ACCESS_WEAPONS) alt_titles = list("Brig Sergeant") minimal_player_age = 21 blocked_race_for_job = list(SPECIES_VOX) diff --git a/code/game/jobs/job/supervisor.dm b/code/game/jobs/job/supervisor.dm index 824b8276251..950f74dd3f0 100644 --- a/code/game/jobs/job/supervisor.dm +++ b/code/game/jobs/job/supervisor.dm @@ -30,7 +30,7 @@ GLOBAL_DATUM_INIT(captain_announcement, /datum/announcement/minor, new(do_newsca /datum/job/captain/announce(mob/living/carbon/human/H) . = ..() - GLOB.captain_announcement.Announce("Экипажу станции, капитан [H.real_name] взошел на борт!") + GLOB.captain_announcement.Announce("Экипажу станции, капитан [H.real_name] взош[genderize_ru(H.gender, "ёл", "ла", "ло", "ли")] на борт!") /datum/outfit/job/captain name = "Captain" @@ -207,7 +207,7 @@ GLOBAL_DATUM_INIT(captain_announcement, /datum/announcement/minor, new(do_newsca jobtype = /datum/job/blueshield uniform = /obj/item/clothing/under/rank/blueshield suit = /obj/item/clothing/suit/armor/vest/blueshield - gloves = /obj/item/clothing/gloves/combat + gloves = /obj/item/clothing/gloves/combat/swat shoes = /obj/item/clothing/shoes/jackboots l_ear = /obj/item/radio/headset/heads/blueshield/alt glasses = /obj/item/clothing/glasses/hud/health/sunglasses diff --git a/code/game/jobs/job/support.dm b/code/game/jobs/job/support.dm index dfcd5916ab5..00bdf0a6cab 100644 --- a/code/game/jobs/job/support.dm +++ b/code/game/jobs/job/support.dm @@ -83,7 +83,7 @@ supervisors = "the quartermaster" department_head = list(JOB_TITLE_QUARTERMASTER) selection_color = "#e2dbc8" - access = list(ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_MINT, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM) + access = list(ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_CARGO_BOT, ACCESS_MINT, ACCESS_MINING, ACCESS_MINING_STATION, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM) minimal_access = list(ACCESS_MINING, ACCESS_MINT, ACCESS_MINING_STATION, ACCESS_MAILSORTING, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM) alt_titles = list("Spelunker") outfit = /datum/outfit/job/mining @@ -151,8 +151,8 @@ supervisors = "the head of personnel" department_head = list(JOB_TITLE_HOP) selection_color = "#d1e8d3" - access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) - minimal_access = list(ACCESS_BAR, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) + access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS) + minimal_access = list(ACCESS_BAR, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS) alt_titles = list("Barman","Barkeeper","Drink Artist") outfit = /datum/outfit/job/bartender @@ -193,8 +193,8 @@ supervisors = "the head of personnel" department_head = list(JOB_TITLE_HOP) selection_color = "#d1e8d3" - access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE) - minimal_access = list(ACCESS_KITCHEN) + access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS) + minimal_access = list(ACCESS_KITCHEN, ACCESS_MAINT_TUNNELS) alt_titles = list("Cook","Culinary Artist","Butcher") outfit = /datum/outfit/job/chef @@ -245,8 +245,8 @@ supervisors = "the head of personnel" department_head = list(JOB_TITLE_HOP) selection_color = "#d1e8d3" - access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE) - minimal_access = list(ACCESS_HYDROPONICS, ACCESS_MORGUE) + access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS) + minimal_access = list(ACCESS_HYDROPONICS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS) alt_titles = list("Hydroponicist", "Botanical Researcher") exp_requirements = 300 exp_type = EXP_TYPE_CREW @@ -284,8 +284,8 @@ supervisors = "the head of personnel" department_head = list(JOB_TITLE_HOP) selection_color = "#d1e8d3" - access = list(ACCESS_CLOWN, ACCESS_THEATRE) - minimal_access = list(ACCESS_CLOWN, ACCESS_THEATRE) + access = list(ACCESS_CLOWN, ACCESS_THEATRE, ACCESS_MAINT_TUNNELS) + minimal_access = list(ACCESS_CLOWN, ACCESS_THEATRE, ACCESS_MAINT_TUNNELS) alt_titles = list("Performance Artist","Comedian","Jester") outfit = /datum/outfit/job/clown @@ -502,8 +502,8 @@ supervisors = "the head of personnel" department_head = list(JOB_TITLE_HOP) selection_color = "#d1e8d3" - access = list(ACCESS_MIME, ACCESS_THEATRE) - minimal_access = list(ACCESS_MIME, ACCESS_THEATRE) + access = list(ACCESS_MIME, ACCESS_THEATRE, ACCESS_MAINT_TUNNELS) + minimal_access = list(ACCESS_MIME, ACCESS_THEATRE, ACCESS_MAINT_TUNNELS) alt_titles = list("Panthomimist") outfit = /datum/outfit/job/mime @@ -590,8 +590,8 @@ supervisors = "the head of personnel" department_head = list(JOB_TITLE_HOP) selection_color = "#d1e8d3" - access = list(ACCESS_LIBRARY) - minimal_access = list(ACCESS_LIBRARY) + access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS) + minimal_access = list(ACCESS_LIBRARY, ACCESS_MAINT_TUNNELS) alt_titles = list("Journalist") outfit = /datum/outfit/job/librarian @@ -624,8 +624,8 @@ department_head = list(JOB_TITLE_HOP) selection_color = "#d1e8d3" alt_titles = list("Hair Stylist","Beautician") - access = list() - minimal_access = list() + access = list(ACCESS_MAINT_TUNNELS) + minimal_access = list(ACCESS_MAINT_TUNNELS) outfit = /datum/outfit/job/barber salary = 100 diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index 49218e2674f..e45b8a0599b 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/HolodeckControl name = "holodeck control computer" - desc = "A computer used to control a nearby holodeck." + desc = "Компьютер, используемый для управления ближайшим голодеком." icon_keyboard = "tech_key" icon_screen = "holocontrol" var/area/linkedholodeck = null @@ -515,54 +515,54 @@ icon_state = "hoop" anchored = TRUE density = TRUE - pass_flags = LETPASSTHROW + pass_flags_self = LETPASSTHROW + damage_deflection = 7 // You can't just break it with da foking glass ashtray. /obj/structure/holohoop/grab_attack(mob/living/grabber, atom/movable/grabbed_thing) . = TRUE + if(!isliving(grabbed_thing)) - return . - var/mob/living/target = grabbed_thing + return + if(grabber.grab_state < GRAB_NECK) to_chat(grabber, span_warning("You need a better grip to do that!")) - return . + return + + var/mob/living/target = grabbed_thing + visible_message(span_warning("[grabber] dunks [target] into [src]!")) - target.forceMove(loc) + target.forceMove(get_turf(src)) target.Weaken(10 SECONDS) /obj/structure/holohoop/attackby(obj/item/I, mob/user, params) - if(user.drop_transfer_item_to_loc(I, src)) - visible_message(span_notice("[user] dunks [I] into [src]!")) - return ATTACK_CHAIN_BLOCKED + if(user.a_intent == INTENT_HARM) // Players may use (DISARM|GRAB) intent for pushing each other. + return ..() + if(user.drop_transfer_item_to_loc(I, get_turf(src))) + visible_message(span_notice("[user] dunks [I] into [src]!")) -/obj/structure/holohoop/has_prints() - return FALSE + return ATTACK_CHAIN_BLOCKED /obj/structure/holohoop/CanAllowThrough(atom/movable/mover, border_dir) - . = ..() - if((isitem(mover) && !isprojectile(mover)) && mover.throwing && mover.pass_flags != PASSEVERYTHING) - if(prob(50)) - mover.forceMove(loc) - visible_message(span_notice("Swish! [mover] lands in [src].")) - else - visible_message(span_alert("[mover] bounces off of [src]'s rim!")) - return FALSE + if(!isitem(mover) || isprojectile(mover)) + return ..() + if((mover.throwing && mover.throwing.thrower && HAS_TRAIT(mover.throwing.thrower, TRAIT_BADASS)) || prob(50)) + mover.forceMove(get_turf(src)) + visible_message(span_notice("Swish! [mover] lands in [src].")) -/obj/structure/holohoop/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) - if(isitem(AM) && !isprojectile(AM)) - if(prob(50) || (throwingdatum && throwingdatum.thrower && HAS_TRAIT(throwingdatum.thrower, TRAIT_BADASS))) - AM.forceMove(get_turf(src)) - visible_message(span_warning("Swish! [AM] lands in [src].")) - return - else - visible_message(span_danger("[AM] bounces off of [src]'s rim!")) - return ..() else - return ..() + visible_message(span_alert("[mover] bounces off of [src]'s rim!")) + + return FALSE + + +/obj/structure/holohoop/has_prints() + return FALSE + /obj/machinery/readybutton name = "Ready Declaration Device" diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 6f4c8f5d247..24952ee61b1 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -49,7 +49,7 @@ /obj/machinery/computer/arcade/battle name = "arcade machine" - desc = "Does not support Pinball." + desc = "Не поддерживает пинбол." icon = 'icons/obj/machines/computer.dmi' icon_state = "arcade" circuit = /obj/item/circuitboard/arcade/battle @@ -277,7 +277,7 @@ /obj/machinery/computer/arcade/orion_trail name = "The Orion Trail" - desc = "Learn how our ancestors got to Orion, and have fun in the process!" + desc = "Узнайте, как наши предки добрались до Ориона, и повеселитесь в процессе!" icon_state = "arcade" circuit = /obj/item/circuitboard/arcade/orion_trail var/busy = 0 //prevent clickspam that allowed people to ~speedrun~ the game. @@ -382,7 +382,7 @@ emagged = 0 //removes the emagged status after you lose playing = 0 //also a new game name = "The Orion Trail" - desc = "Learn how our ancestors got to Orion, and have fun in the process!" + desc = "Узнайте, как наши предки добрались до Ориона, и повеселитесь в процессе!" else if(event) dat = eventdat @@ -955,7 +955,7 @@ prizevend(score) emagged = 0 name = "The Orion Trail" - desc = "Learn how our ancestors got to Orion, and have fun in the process!" + desc = "Узнайте, как наши предки добрались до Ориона, и повеселитесь в процессе!" /obj/machinery/computer/arcade/orion_trail/emag_act(mob/user) if(!emagged) @@ -963,7 +963,7 @@ if(user) to_chat(user, span_notice("You override the cheat code menu and skip to Cheat #[rand(1, 50)]: Realism Mode.")) name = "The Orion Trail: Realism Edition" - desc = "Learn how our ancestors got to Orion, and try not to die in the process!" + desc = "Узнайте, как наши предки добрались до Ориона, и постарайтесь не сдохнуть в процессе!" newgame() emagged = 1 @@ -1015,7 +1015,7 @@ /obj/machinery/computer/arcade/orion_trail/pc_frame name = "special purpose computer" - desc = "It will be difficult to perform calculations on this computer..." + desc = "Выполнять вычисления на этом компьютере будет сложно..." icon = 'icons/obj/machines/computer.dmi' icon_state = "aimainframe" @@ -1026,7 +1026,7 @@ /obj/machinery/computer/arcade/battle/pc_frame name = "special purpose computer" - desc = "It will be difficult to perform calculations on this computer..." + desc = "Выполнять вычисления на этом компьютере будет сложно..." icon = 'icons/obj/machines/computer.dmi' icon_state = "aimainframe" diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm index 1911c9db534..277d4f9f894 100644 --- a/code/game/machinery/computer/atmos_alert.dm +++ b/code/game/machinery/computer/atmos_alert.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/atmos_alert name = "atmospheric alert computer" - desc = "Used to access the station's atmospheric sensors." + desc = "Используется для мониторинга атмосферных датчиков станции." circuit = /obj/item/circuitboard/atmos_alert var/ui_x = 350 var/ui_y = 300 diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm index 8ed0296b968..c9bbf42cf21 100644 --- a/code/game/machinery/computer/atmos_control.dm +++ b/code/game/machinery/computer/atmos_control.dm @@ -14,7 +14,7 @@ /obj/machinery/computer/atmoscontrol/laptop name = "atmospherics laptop" - desc = "Cheap Nanotrasen laptop." + desc = "Дешёвый ноутбук корпорации Nanotrasen." icon_state = "medlaptop" density = FALSE diff --git a/code/game/machinery/computer/brigcells.dm b/code/game/machinery/computer/brigcells.dm index c41c0442916..ace3d9f823e 100644 --- a/code/game/machinery/computer/brigcells.dm +++ b/code/game/machinery/computer/brigcells.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/brigcells name = "cell management computer" - desc = "Used to manage prison cells." + desc = "Используется для управления тюремными камерами." icon_keyboard = "security_key" icon_screen = "cell_monitor" use_power = IDLE_POWER_USE diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index db352e64bfa..97ae55b7816 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -462,12 +462,15 @@ build_path = /obj/machinery/computer/turbine_computer origin_tech = "programming=4;engineering=4;powerstorage=4" + /obj/item/circuitboard/HONKputer board_name = "HONKputer" build_path = /obj/machinery/computer/HONKputer origin_tech = "programming=2" icon = 'icons/obj/machines/HONKputer.dmi' icon_state = "bananium_board" + board_type = "HONKputer" + /obj/item/circuitboard/broken board_name = "Broken curcuit" @@ -549,6 +552,14 @@ var/obj/item/circuitboard/circuit = null +/obj/structure/computerframe/Initialize(mapload, obj/item/circuitboard/circuit) + . = ..() + + if(circuit) + src.circuit = new circuit(src) + state = STATE_GLASS // Spawned during completed computer Init, so it's completed. + + /obj/structure/computerframe/examine(mob/user) . = ..() . += span_notice("It is [anchored ? "bolted to the floor" : "unbolted"].") @@ -569,10 +580,33 @@ /obj/structure/computerframe/deconstruct(disassembled = TRUE) if(!(obj_flags & NODECONSTRUCT)) - drop_computer_parts() + var/location = drop_location() + drop_computer_materials(location) + + if(circuit) + circuit.forceMove(location) + + if(state >= STATE_WIRES) + new /obj/item/stack/cable_coil(location, 5) + + if(state == STATE_GLASS) + new /obj/item/stack/sheet/glass(location, 2) + + state = STATE_EMPTY + circuit = null + return ..() // will qdel the frame +/obj/structure/computerframe/Destroy() + if(istype(circuit)) + qdel(circuit) + + circuit = null + + return ..() + + /obj/structure/computerframe/AltClick(mob/user) if(!Adjacent(user)) return @@ -588,16 +622,9 @@ /obj/structure/computerframe/obj_break(damage_flag) deconstruct() -/obj/structure/computerframe/proc/drop_computer_parts() - var/location = drop_location() + +/obj/structure/computerframe/proc/drop_computer_materials(location) new /obj/item/stack/sheet/metal(location, 5) - if(circuit) - circuit.forceMove(location) - circuit = null - if(state >= STATE_WIRES) - new /obj/item/stack/cable_coil(location, 5) - if(state == STATE_GLASS) - new /obj/item/stack/sheet/glass(location, 2) /obj/structure/computerframe/update_icon_state() @@ -651,27 +678,30 @@ /obj/structure/computerframe/screwdriver_act(mob/living/user, obj/item/I) if(state != STATE_CIRCUIT && state != STATE_NOWIRES && state != STATE_GLASS) return FALSE + . = TRUE + if(!I.use_tool(src, user, volume = I.tool_volume)) - return . + return switch(state) if(STATE_CIRCUIT) to_chat(user, span_notice("You screw the circuit board into place.")) state = STATE_NOWIRES update_icon(UPDATE_ICON_STATE) + if(STATE_NOWIRES) to_chat(user, span_notice("You unfasten the circuit board.")) state = STATE_CIRCUIT update_icon(UPDATE_ICON_STATE) + if(STATE_GLASS) + if(!anchored) + to_chat(user, span_warning("Monitor can't be properly connected to the unfastened frame!")) + return + to_chat(user, span_notice("You connect the monitor.")) - var/B = new circuit.build_path(loc) - if(istype(circuit, /obj/item/circuitboard/supplycomp)) - var/obj/machinery/computer/supplycomp/SC = B - var/obj/item/circuitboard/supplycomp/C = circuit - SC.can_order_contraband = C.contraband_enabled - qdel(src) + new circuit.build_path(get_turf(src), src) /obj/structure/computerframe/wirecutter_act(mob/living/user, obj/item/I) @@ -694,16 +724,17 @@ if(STATE_EMPTY) if(!istype(I, /obj/item/circuitboard)) return ..() + add_fingerprint(user) - if(istype(I, /obj/item/circuitboard/HONKputer) && !istype(src, /obj/structure/computerframe/HONKputer)) - to_chat(user, span_warning("[src] does not accept circuit boards of this type!")) - return ATTACK_CHAIN_PROCEED - var/obj/item/circuitboard/new_circuit = I - if(new_circuit.board_type != "computer") + + if(!circuit_compatibility_check(I)) to_chat(user, span_warning("[src] does not accept circuit boards of this type!")) return ATTACK_CHAIN_PROCEED - if(!user.drop_transfer_item_to_loc(new_circuit, src)) + + if(!user.drop_transfer_item_to_loc(I, src)) return ..() + + var/obj/item/circuitboard/new_circuit = I new_circuit.play_tool_sound(src) to_chat(user, span_notice("You place [new_circuit] inside [src].")) name += " ([new_circuit.board_name])" @@ -755,11 +786,27 @@ return ..() +/obj/structure/computerframe/proc/on_construction(obj/machinery/computer/computer) + forceMove(computer) + + +/obj/structure/computerframe/proc/circuit_compatibility_check(obj/item/circuitboard/circuit) + return circuit.board_type == "computer" + + /obj/structure/computerframe/HONKputer name = "Bananium Computer-frame" icon = 'icons/obj/machines/HONKputer.dmi' +/obj/structure/computerframe/HONKputer/drop_computer_materials(location) + new /obj/item/stack/sheet/mineral/bananium(location, 20) + + +/obj/structure/computerframe/HONKputer/circuit_compatibility_check(obj/item/circuitboard/circuit) + return circuit.board_type == "HONKputer" + + /obj/structure/computerframe/abductor icon_state = "comp_frame_alien1" @@ -768,47 +815,16 @@ icon_state = "comp_frame_alien[state]" -/obj/structure/computerframe/abductor/screwdriver_act(mob/living/user, obj/item/I) - . = TRUE - if(!I.use_tool(src, user)) - return +/obj/structure/computerframe/abductor/on_construction(obj/machinery/computer/computer) + ..() + computer.abductor = TRUE + computer.max_integrity = 400 + computer.obj_integrity = 400 - switch(state) - if(STATE_CIRCUIT) - to_chat(user, span_notice("You screw the circuit board into place.")) - state = STATE_NOWIRES - I.play_tool_sound(src) - update_icon(UPDATE_ICON_STATE) - if(STATE_NOWIRES) - to_chat(user, span_notice("You unfasten the circuit board.")) - state = STATE_CIRCUIT - I.play_tool_sound(src) - update_icon(UPDATE_ICON_STATE) - if(STATE_GLASS) - to_chat(user, span_notice("You connect the monitor.")) - I.play_tool_sound(src) - var/obj/machinery/computer/computer = new circuit.build_path(loc) - computer.abductor = TRUE - computer.update_icon() - computer.max_integrity = 400 - computer.obj_integrity = 400 - computer.update_icon() - if(istype(circuit, /obj/item/circuitboard/supplycomp)) - var/obj/machinery/computer/supplycomp/supply_comp = computer - var/obj/item/circuitboard/supplycomp/supply_circuit = circuit - supply_comp.can_order_contraband = supply_circuit.contraband_enabled - qdel(src) - -/obj/structure/computerframe/abductor/drop_computer_parts() - var/location = drop_location() + +/obj/structure/computerframe/abductor/drop_computer_materials(location) new /obj/item/stack/sheet/mineral/abductor(location, 4) - if(circuit) - circuit.forceMove(location) - circuit = null - if(state >= STATE_WIRES) - new /obj/item/stack/cable_coil(location, 5) - if(state == STATE_GLASS) - new /obj/item/stack/sheet/glass(location, 2) + #undef STATE_EMPTY #undef STATE_CIRCUIT diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 92b68090128..0d3da129c58 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -2,7 +2,7 @@ /obj/machinery/computer/security name = "security camera console" - desc = "Used to access the various cameras networks on the station." + desc = "Используется для доступа к сетям камер на станции." icon_keyboard = "security_key" icon_screen = "cameras" @@ -198,7 +198,7 @@ // Other computer monitors. /obj/machinery/computer/security/telescreen name = "telescreen" - desc = "Used for watching camera networks." + desc = "Используется для просмотра сети камер." icon_state = "telescreen_console" icon_screen = "telescreen" icon_keyboard = null @@ -228,7 +228,7 @@ /obj/machinery/computer/security/telescreen/entertainment name = "entertainment monitor" - desc = "Damn, they better have Paradise TV on these things." + desc = "Чёрт возьми, лучше бы они показывали Paradise TV." icon_state = "entertainment_console" icon_screen = "entertainment_off" light_color = "#FFEEDB" @@ -281,33 +281,33 @@ /obj/machinery/computer/security/telescreen/singularity name = "Singularity Engine Telescreen" - desc = "Used for watching the singularity chamber." + desc = "Используется для наблюдения за зоной содержания сингулярности." network = list("Singularity") circuit = /obj/item/circuitboard/camera/telescreen/singularity /obj/machinery/computer/security/telescreen/toxin_chamber name = "Toxins Telescreen" - desc = "Used for watching the test chamber." + desc = "Используется для наблюдения за полигоном." network = list("Toxins") /obj/machinery/computer/security/telescreen/test_chamber name = "Test Chamber Telescreen" - desc = "Used for watching the test chamber." + desc = "Используется для наблюдения за полигоном." network = list("TestChamber") /obj/machinery/computer/security/telescreen/research name = "Research Monitor" - desc = "Used for watching the RD's goons from the safety of his office." + desc = "С помощью этого монитора Директор Исследований может наблюдать за своими подхалимами из безопасного места." network = list("Research","Research Outpost","RD") /obj/machinery/computer/security/telescreen/prison name = "Prison Monitor" - desc = "Used for watching Prison Wing holding areas." + desc = "Используется для мониторинга помещений тюремного блока." network = list("Prison") /obj/machinery/computer/security/wooden_tv name = "security camera monitor" - desc = "An old TV hooked into the station's camera network." + desc = "Старый телевизор, подключенный к сети камер станции." icon_state = "television" icon_keyboard = null icon_screen = "detective_tv" @@ -318,7 +318,7 @@ /obj/machinery/computer/security/mining name = "outpost camera monitor" - desc = "Used to access the various cameras on the outpost." + desc = "Используется для доступа к различным камерам на аванпосте." icon_keyboard = "mining_key" icon_screen = "mining" light_color = "#F9BBFC" @@ -327,7 +327,7 @@ /obj/machinery/computer/security/engineering name = "engineering camera monitor" - desc = "Used to monitor fires and breaches." + desc = "Используется для отслеживания возникающих пожаров и аварий." icon_keyboard = "power_key" icon_screen = "engie_cams" light_color = "#FAC54B" diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm index 83a743258e6..204c22dee2c 100644 --- a/code/game/machinery/computer/camera_advanced.dm +++ b/code/game/machinery/computer/camera_advanced.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/camera_advanced name = "advanced camera console" - desc = "Used to access the various cameras on the station." + desc = "Используется для доступа к различным камерам, установленным на станции." icon_screen = "cameras" icon_keyboard = "security_key" var/mob/camera/aiEye/remote/eyeobj diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index f3e83ca3077..7bd435a4b05 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -10,7 +10,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) /obj/machinery/computer/card name = "identification computer" - desc = "Terminal for programming Nanotrasen employee ID cards to access parts of the station." + desc = "Терминал, используемый для изменения уровня доступа ID-карт сотрудников Nanotrasen." icon_keyboard = "id_key" icon_screen = "id" req_access = list(ACCESS_CHANGE_IDS) @@ -772,7 +772,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) /obj/machinery/computer/card/minor name = "department management console" target_dept = TARGET_DEPT_GENERIC - desc = "You can use this to change ID's for specific departments." + desc = "Вы можете использовать это, чтобы изменить ID-карту для определенного отдела." icon_screen = "idminor" circuit = /obj/item/circuitboard/card/minor diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index bd3383befe3..fb1a7c90f5e 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -12,7 +12,7 @@ // The communications computer /obj/machinery/computer/communications name = "communications console" - desc = "This allows the Captain to contact Central Command, or change the alert level. It also allows the command staff to call the Escape Shuttle." + desc = "Консоль, с помощью которой Капитан может связаться с Центральным Командованием или изменить уровень угрозы. Она так же позволяет командному составу вызвать эвакуационный шаттл." icon_keyboard = "tech_key" icon_screen = "comm" req_access = list(ACCESS_HEADS) diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index 2625ebbeec0..e03674bd29e 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -11,6 +11,7 @@ integrity_failure = 100 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 40, "acid" = 20) var/obj/item/circuitboard/circuit = null //if circuit==null, computer can't disassembly + var/obj/structure/computerframe/frame = /obj/structure/computerframe var/icon_keyboard = "generic_key" var/icon_screen = "generic" var/light_range_on = 1 @@ -22,11 +23,30 @@ var/force_no_power_icon_state = FALSE -/obj/machinery/computer/Initialize(mapload) +/obj/machinery/computer/Initialize(mapload, obj/structure/computerframe/frame) . = ..() + + if(frame) + src.frame = frame + + else + var/frame_type = abductor ? /obj/structure/computerframe/abductor : src.frame + src.frame = new frame_type(src, circuit) + + src.frame.on_construction(src) power_change() update_icon() + +/obj/machinery/computer/Destroy() + if(istype(frame)) + qdel(frame) + + frame = null + + return ..() + + /obj/machinery/computer/process() if(stat & (NOPOWER|BROKEN)) return FALSE @@ -140,37 +160,35 @@ if(prob(10)) obj_break("energy") + /obj/machinery/computer/deconstruct(disassembled = TRUE, mob/user) on_deconstruction() if(!(obj_flags & NODECONSTRUCT)) if(circuit) //no circuit, no computer frame - var/obj/structure/computerframe/A - if(abductor) - A = new /obj/structure/computerframe/abductor(loc) - else - A = new /obj/structure/computerframe(loc) - var/obj/item/circuitboard/M = new circuit(A) - A.name += " ([M.board_name])" - A.setDir(dir) - A.circuit = M - A.set_anchored(TRUE) if(stat & BROKEN) if(user) to_chat(user, span_notice("The broken glass falls out.")) + else playsound(src, 'sound/effects/hit_on_shattered_glass.ogg', 70, TRUE) + new /obj/item/shard(drop_location()) new /obj/item/shard(drop_location()) - A.state = 4 + frame.state = 4 + else if(user) to_chat(user, span_notice("You disconnect the monitor.")) - A.state = 5 - A.update_icon() + + frame.update_icon() + for(var/obj/C in src) - C.forceMove(loc) + C.forceMove(get_turf(src)) + + frame = null qdel(src) + /obj/machinery/computer/proc/set_broken() if(!(resistance_flags & INDESTRUCTIBLE)) stat |= BROKEN diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 07bf9e541f2..d90f389afea 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/crew name = "crew monitoring computer" - desc = "Used to monitor active health sensors built into most of the crew's uniforms." + desc = "Используется для контроля активных датчиков состояния здоровья, встроенных в униформу большинства членов экипажа." icon_keyboard = "med_key" icon_screen = "crew" use_power = IDLE_POWER_USE diff --git a/code/game/machinery/computer/depot.dm b/code/game/machinery/computer/depot.dm index ce7c86f2d74..374c77b8621 100644 --- a/code/game/machinery/computer/depot.dm +++ b/code/game/machinery/computer/depot.dm @@ -390,7 +390,7 @@ /obj/machinery/computer/syndicate_depot/teleporter name = "Syndicate Redspace Teleporter Console" - desc = "This suspicious high-tech machine creates a Bi-Directional teleporter that is capable to ignore any bluespace interference!" + desc = "Эта подозрительная высокотехнологичная машина создает двунаправленный телепорт, способный игнорировать любые BlueSpace-помехи!" icon_screen = "telesci" icon_keyboard = "teleport_key" window_height = 320 diff --git a/code/game/machinery/computer/honkputer.dm b/code/game/machinery/computer/honkputer.dm index fea3bf0964a..a4c90924d49 100644 --- a/code/game/machinery/computer/honkputer.dm +++ b/code/game/machinery/computer/honkputer.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/HONKputer name = "\improper HONKputer Mark I" - desc = "A yellow computer used in case of critically low levels of HONK." + desc = "Яркий жёлтый компьютер. Воспользуйтесь им, если уровень ХОНКА упал до критически низкого уровня!" icon = 'icons/obj/machines/HONKputer.dmi' icon_state = "honkputer" icon_keyboard = "key_honk" @@ -8,6 +8,7 @@ light_color = LIGHT_COLOR_PINK req_access = list(ACCESS_CLOWN) circuit = /obj/item/circuitboard/HONKputer + frame = /obj/structure/computerframe/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 6c778767f61..3e03f4f2118 100644 --- a/code/game/machinery/computer/law.dm +++ b/code/game/machinery/computer/law.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/aiupload name = "\improper AI upload console" - desc = "Used to upload laws to the AI." + desc = "Используется для манипуляций с законами ИИ." icon_screen = "command" icon_keyboard = "med_key" circuit = /obj/item/circuitboard/aiupload @@ -59,7 +59,7 @@ // Why is this not a subtype /obj/machinery/computer/borgupload name = "cyborg upload console" - desc = "Used to upload laws to Cyborgs." + desc = "Используется для манипуляций с законами киборгов." icon_screen = "command" icon_keyboard = "med_key" circuit = /obj/item/circuitboard/borgupload diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 34d300c2b78..a04d1cacb97 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -9,7 +9,7 @@ /obj/machinery/computer/med_data //TODO:SANITY name = "medical records console" - desc = "This can be used to check medical records." + desc = "Используется для проверки медицинских записей." icon_keyboard = "med_key" icon_screen = "medcomp" req_access = list(ACCESS_MEDICAL, ACCESS_FORENSICS_LOCKERS) @@ -461,7 +461,7 @@ /obj/machinery/computer/med_data/laptop name = "medical laptop" - desc = "Cheap Nanotrasen laptop." + desc = "Дешёвый ноутбук корпорации Nanotrasen." icon_state = "laptop" icon_keyboard = "laptop_key" icon_screen = "medlaptop" diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm index e4e7e098f7f..d2e1e9958f6 100644 --- a/code/game/machinery/computer/message.dm +++ b/code/game/machinery/computer/message.dm @@ -1,7 +1,7 @@ // Allows you to monitor messages that passes the server. /obj/machinery/computer/message_monitor name = "message monitoring console" - desc = "Used to monitor the crew's messages that are sent via PDA. It can also be used to view Request Console messages." + desc = "Используется для отслеживания сообщений экипажа, отправляемых через КПК. Его также можно использовать для просмотра сообщений Консоли Запросов." icon_screen = "comm_logs" light_color = LIGHT_COLOR_GREEN var/hack_icon = "tcboss" diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index 0a788efdae5..5cb46086fbd 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/pod name = "mass drivers and pod doors control" - desc = "A control for launching pods. Some people prefer firing Mechas." + desc = "Элемент управления для запуска капсул. Некоторые предпочитают запускать из них мехов." icon_screen = "mass_driver" light_color = "#555555" circuit = /obj/item/circuitboard/pod @@ -279,7 +279,7 @@ /obj/machinery/computer/pod/old/syndicate name = "external airlock controls" - desc = "The Syndicate operate on a tight budget. Operates external airlocks." + desc = "Синдикат работает в условиях ограниченного бюджета. Управляет внешними шлюзами." req_access = list(ACCESS_SYNDICATE) circuit = /obj/item/circuitboard/syndicatedoor light_color = "#00FFFF" @@ -294,7 +294,7 @@ /obj/machinery/computer/pod/old/swf name = "\improper Magix System IV" - desc = "An arcane artifact that holds much magic. Running E-Knock 2.2: Sorceror's Edition" + desc = "Таинственный артефакт, в котором сконцентрировано огромное количество магической энергии." circuit = /obj/item/circuitboard/swfdoor diff --git a/code/game/machinery/computer/power.dm b/code/game/machinery/computer/power.dm index ca4faf48060..10a05df63fa 100644 --- a/code/game/machinery/computer/power.dm +++ b/code/game/machinery/computer/power.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/monitor name = "power monitoring console" - desc = "Used to monitor power levels across the station." + desc = "Используется для мониторинга уровня энергопотребления на всей станции." icon_screen = "power" icon_keyboard = "power_key" use_power = ACTIVE_POWER_USE @@ -23,7 +23,7 @@ /obj/machinery/computer/monitor/secret //Hides the power monitor (such as ones on ruins & CentCom) from PDA's to prevent metagaming. name = "outdated power monitoring console" - desc = "It monitors power levels across the local powernet." + desc = "Используется для отслеживания уровня энергопотребления в локальной сети." circuit = /obj/item/circuitboard/powermonitor/secret is_secret_monitor = TRUE diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index 23faf723eb7..e0deb7d3cf5 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/robotics name = "robotics control console" - desc = "Used to remotely lockdown or detonate linked Cyborgs." + desc = "Используется для дистанционной блокировки или подрыва привязанных киборгов." icon = 'icons/obj/machines/computer.dmi' icon_keyboard = "tech_key" icon_screen = "robot" diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index bbc04412ee3..6e032928fa6 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -6,7 +6,7 @@ /obj/machinery/computer/secure_data name = "security records" - desc = "Used to view and edit personnel's security records." + desc = "Используется для просмотра и редактирования записей службы безопасности о персонале." icon_keyboard = "security_key" icon_screen = "security" circuit = /obj/item/circuitboard/secure_data @@ -518,7 +518,7 @@ /obj/machinery/computer/secure_data/laptop name = "security laptop" - desc = "Nanotrasen Security laptop. Bringing modern compact computing to this century!" + desc = "Ноутбук службы безопасности Nanotrasen. Привносим современные компактные компьютеры в наше столетие!" icon_state = "laptop" icon_keyboard = "seclaptop_key" icon_screen = "seclaptop" diff --git a/code/game/machinery/computer/sm_monitor.dm b/code/game/machinery/computer/sm_monitor.dm index f0c3f13959b..b1538fee04b 100644 --- a/code/game/machinery/computer/sm_monitor.dm +++ b/code/game/machinery/computer/sm_monitor.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/sm_monitor name = "supermatter monitoring console" - desc = "Used to monitor supermatter shards." + desc = "Используется для мониторинга состояния осколка суперматерии." icon_keyboard = "power_key" icon_screen = "smmon_0" circuit = /obj/item/circuitboard/sm_monitor diff --git a/code/game/machinery/computer/station_alert.dm b/code/game/machinery/computer/station_alert.dm index cb9fd66aeea..a7d321d724a 100644 --- a/code/game/machinery/computer/station_alert.dm +++ b/code/game/machinery/computer/station_alert.dm @@ -1,7 +1,7 @@ /obj/machinery/computer/station_alert name = "station alert console" - desc = "Used to access the station's automated alert system." + desc = "Используется для доступа к автоматизированной системе тревог станции." icon_keyboard = "tech_key" icon_screen = "alert:0" light_color = LIGHT_COLOR_CYAN diff --git a/code/game/machinery/computer/syndie_cargo.dm b/code/game/machinery/computer/syndie_cargo.dm index 9e841c403a3..fff047fe5bc 100644 --- a/code/game/machinery/computer/syndie_cargo.dm +++ b/code/game/machinery/computer/syndie_cargo.dm @@ -254,7 +254,7 @@ GLOBAL_LIST_INIT(data_storages, list()) //list of all cargo console data storage **************************/ /obj/machinery/computer/syndie_supplycomp name = "Supply Pad Console" - desc = "Used to order supplies by using syndiepads!" + desc = "Необходим для оформления заказов используя SyndiePads!" icon_screen = "syndinavigation" icon_keyboard = "syndie_key" req_access = list(ACCESS_SYNDICATE_CARGO) @@ -494,7 +494,7 @@ GLOBAL_LIST_INIT(data_storages, list()) //list of all cargo console data storage /obj/machinery/computer/syndie_supplycomp/public name = "Supply Ordering Console" - desc = "Used to order supplies from cargo staff." + desc = "Используется для оформления заказов у отдела снабжения" circuit = /obj/item/circuitboard/syndicatesupplycomp/public req_access = list() is_public = TRUE diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 50381c2f467..833eee399e6 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -15,7 +15,7 @@ /obj/machinery/computer/cryopod name = "cryogenic oversight console" - desc = "An interface between crew and the cryogenic storage oversight systems." + desc = "Интерфейс управления системой контроля за криогенным хранилищем." icon = 'icons/obj/machines/cryogenic2.dmi' icon_state = "cellconsole" circuit = /obj/item/circuitboard/cryopodcontrol @@ -703,7 +703,7 @@ /obj/machinery/computer/cryopod/robot name = "robotic storage console" - desc = "An interface between crew and the robotic storage systems" + desc = "Интерфейс управления системой контроля за робо-хранилищем." icon = 'icons/obj/machines/robot_storage.dmi' icon_state = "console" circuit = /obj/item/circuitboard/robotstoragecontrol diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 71f36293a8f..d502d816560 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -4,7 +4,7 @@ /obj/machinery/computer/teleporter name = "teleporter control console" - desc = "Used to control a linked teleportation Hub and Station." + desc = "Используется для управления привязанными телепортационными узлами и станциями." icon_screen = "teleport" icon_keyboard = "teleport_key" circuit = /obj/item/circuitboard/teleporter @@ -27,7 +27,7 @@ var/cc_beacon = FALSE /obj/machinery/computer/teleporter/robotics //to do: limit targets to station only - desc = "Used to control a linked teleportation Hub and Station. Only Research Director can change destination target." + desc = "Используется для управления привязанными телепортационными узлами и станциями. Только Директор Исследований может изменить точку назначения." circuit = /obj/item/circuitboard/teleporter/robotics req_access = list(ACCESS_RD) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index e5d81dc2777..f8d9f076909 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -1825,10 +1825,10 @@ req_access = list(ACCESS_SECURITY) products = list(/obj/item/restraints/handcuffs = 8,/obj/item/restraints/handcuffs/cable/zipties = 8,/obj/item/grenade/flashbang = 4,/obj/item/flash = 5, /obj/item/reagent_containers/food/snacks/donut = 12,/obj/item/storage/box/evidence = 6,/obj/item/flashlight/seclite = 4,/obj/item/restraints/legcuffs/bola/energy = 7, - /obj/item/clothing/mask/muzzle/safety = 4, /obj/item/storage/box/swabs = 6, /obj/item/storage/box/fingerprints = 6, /obj/item/eftpos/sec = 4, /obj/item/storage/belt/security/webbing = 2, /obj/item/grenade/smokebomb = 8, + /obj/item/clothing/mask/muzzle/safety = 4, /obj/item/storage/box/swabs = 6, /obj/item/storage/box/fingerprints = 6, /obj/item/eftpos/sec = 4, /obj/item/storage/belt/security/webbing = 2, /obj/item/flashlight/sectaclight = 2, /obj/item/grenade/smokebomb = 8, ) contraband = list(/obj/item/clothing/glasses/sunglasses = 2,/obj/item/storage/fancy/donut_box = 2,/obj/item/hailer = 5) - prices = list(/obj/item/storage/belt/security/webbing = 2000,/obj/item/grenade/smokebomb = 250) + prices = list(/obj/item/storage/belt/security/webbing = 2000, /obj/item/flashlight/sectaclight = 300, /obj/item/grenade/smokebomb = 250) refill_canister = /obj/item/vending_refill/security /obj/machinery/vending/security/training @@ -2133,6 +2133,8 @@ /obj/item/clothing/head/rockso = 1, /obj/item/clothing/mask/gas/clown_hat/rockso = 1, /obj/item/clothing/under/rockso = 1, + /obj/item/clothing/mask/gas/clown_hat/sweettooth = 1, + /obj/item/clothing/under/sweettooth = 1, /obj/item/clothing/under/pants/camo = 1, /obj/item/clothing/mask/bandana = 1, /obj/item/clothing/mask/bandana/black = 1, @@ -2419,7 +2421,8 @@ /obj/item/clothing/head/fedora = 10, /obj/item/clothing/head/fez = 10, /obj/item/clothing/head/beret = 10) - contraband = list(/obj/item/clothing/head/bearpelt = 5) + contraband = list(/obj/item/clothing/head/bearpelt = 5, + /obj/item/clothing/head/helmet/biker = 3) premium = list(/obj/item/clothing/head/soft/rainbow = 1) refill_canister = /obj/item/vending_refill/hatdispenser diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 39d2e954db0..080ac73019f 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -135,6 +135,7 @@ /obj/item/stack/tape_roll = 10, /obj/item/storage/bag/plasticbag = 20, /obj/item/caution = 10, + /obj/item/clothing/head/helmet/biker = 2, ////////////////CONTRABAND STUFF////////////////// /obj/item/grenade/clown_grenade = 3, /obj/item/seeds/ambrosia/cruciatus = 3, diff --git a/code/game/objects/items/devices/camera_bug.dm b/code/game/objects/items/devices/camera_bug.dm index 4fb4454d9fe..16791d10f87 100644 --- a/code/game/objects/items/devices/camera_bug.dm +++ b/code/game/objects/items/devices/camera_bug.dm @@ -1,7 +1,7 @@ // This item just has an integrated camera console, which the data is "proxied" to /obj/item/camera_bug name = "camera bug" - desc = "For illicit snooping through the camera network." + desc = "Для незаконного слежения через сеть камер наблюдения." icon = 'icons/obj/device.dmi' icon_state = "camera_bug" w_class = WEIGHT_CLASS_TINY @@ -14,7 +14,7 @@ /obj/machinery/computer/security/camera_bug name = "invasive camera utility" - desc = "How did this get here?! Please report this as a bug to github" + desc = "Как это сюда попало?! Пожалуйста, сообщите об этом как об ошибке на github." use_power = NO_POWER_USE /obj/item/camera_bug/Initialize(mapload) @@ -38,7 +38,7 @@ /obj/item/camera_bug/ert name = "ERT Camera Monitor" - desc = "A small handheld device used by ERT commanders to view camera feeds remotely." + desc = "Небольшое портативное устройство, используемое командирами ОБР для удаленного наблюдения." /obj/item/camera_bug/ert/Initialize(mapload) . = ..() diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 5df30b280e3..caa2e3e215a 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -132,6 +132,13 @@ light_range = 5 // A little better than the standard flashlight. hitsound = 'sound/weapons/genhit1.ogg' +/obj/item/flashlight/sectaclight + name = "security tactical flashlight" + desc = "Прочный тактический фонарь, оборудованный для комфортного ношения на голове. Используется представителями службы безопасности." + icon_state = "sectaclight" + item_state = "" + slot_flags = ITEM_SLOT_EARS + /obj/item/flashlight/drone name = "low-power flashlight" desc = "A miniature lamp, that might be used by small robots." diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index a248a8cad79..9085b6dbe40 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -264,6 +264,48 @@ icon_state = "blueshieldpack" item_state = "blueshieldpack" +/obj/item/storage/backpack/justice + name = "backpack of justice" + desc = "Крепкий рюкзак выданный специально для самых крепких офицеров." + icon_state = "backpack_justice0" + item_state = "backpack_justice0" + actions_types = list(/datum/action/item_action/toggle_backpack_light) + var/on = FALSE + var/datum/looping_sound/ambulance_alarm/justice/soundloop + +/obj/item/storage/backpack/justice/attack_self() + toggle_backpack_light() + +/obj/item/storage/backpack/justice/Initialize(mapload) + . = ..() + soundloop = new(list(src)) + +/obj/item/storage/backpack/justice/Destroy(force) + QDEL_NULL(soundloop) + return ..() + +/obj/item/storage/backpack/justice/proc/toggle_backpack_light() + on = !on + + if(on) + turn_on() + else + turn_off() + + update_icon(UPDATE_ICON_STATE) + +/obj/item/storage/backpack/justice/update_icon_state() + icon_state = "backpack_justice[on]" + item_state = "backpack_justice[on]" + update_equipped_item(update_speedmods = FALSE) + +/obj/item/storage/backpack/justice/proc/turn_on() + soundloop.start() + +/obj/item/storage/backpack/justice/proc/turn_off() + soundloop.stop() + + /* * Syndicate backpacks. Sprites by ElGood */ diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index d9c36e05b3d..f67520c13a8 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -174,6 +174,7 @@ new /obj/item/sensor_device/advanced/command(src) new /obj/item/storage/garmentbag/blueshield(src) new /obj/item/storage/belt/security/webbing(src) + new /obj/item/reagent_containers/spray/cleaner/tactical(src) /obj/structure/closet/secure_closet/ntrep name = "\improper Nanotrasen Representative's locker" diff --git a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm index f3836a1beb4..e39c59128bf 100644 --- a/code/game/objects/structures/signs.dm +++ b/code/game/objects/structures/signs.dm @@ -222,6 +222,11 @@ desc = "A dead and stuffed Diona nymph, mounted on a board." icon_state = "kidanplaque" +/obj/structure/sign/tajarplaque + name = "Tajaran wall plaque" + desc = "A nice tajaran photo, mounted on a board." + icon_state = "tajarplaque" + /obj/structure/sign/mech name = "\improper mech painting" desc = "A painting of a mech" diff --git a/code/game/verbs/suicide.dm b/code/game/verbs/suicide.dm index a7b16651fef..d721c488e8f 100644 --- a/code/game/verbs/suicide.dm +++ b/code/game/verbs/suicide.dm @@ -9,15 +9,15 @@ /mob/living/proc/be_suicidal(forced = FALSE) if(stat == DEAD) - to_chat(src, "You're already dead!") + to_chat(src, "Вы уже мертвы!") return if(!SSticker) - to_chat(src, "You can't commit suicide before the game starts!") + to_chat(src, "Вы не можете покончить с собой до начала игры!") return if(suiciding) - to_chat(src, "You're already committing suicide! Be patient!") + to_chat(src, "Вы уже совершаете самоубийство! Наберитесь терпения!") return @@ -26,18 +26,18 @@ if(ischangeling(src)) // the alternative is to allow clings to commit suicide, but then you'd probably have them // killing themselves as soon as they're in cuffs - to_chat(src, span_warning("We refuse to take the coward's way out.")) + to_chat(src, span_warning("Мы не пойдем по лёгкому пути.")) return - confirm = tgui_alert(src, "Are you sure you want to commit suicide?", "Confirm Suicide", list("Yes", "No")) + confirm = tgui_alert(src, "Вы уверены, что хотите покончить с собой?", "Подтвердить самоубийство", list("Да", "Нет")) if(stat == DEAD || suiciding) //We check again, because alerts sleep until a choice is made - to_chat(src, "You're already dead!") + to_chat(src, "Вы уже мертвы!") return - if(forced || (confirm == "Yes")) + if(forced || (confirm == "Да")) if(!forced && isAntag(src)) - confirm = tgui_alert(src, "Are you absolutely sure? If you do this after you got converted/joined as an antagonist, you could face a jobban!", "Confirm Suicide", list("Yes", "No")) - if(confirm == "Yes") + confirm = tgui_alert(src, "Вы абсолютно уверены в этом? Беспричинные самоубийства, а так же самоубийства после задержания или получения роли антагониста могут караться баном!", "Подтвердить самоубийство", list("Да", "Нет")) + if(confirm == "Да") suiciding = TRUE do_suicide() add_attack_logs(src, src, "Attempted suicide as special role") @@ -58,7 +58,7 @@ /mob/living/simple_animal/mouse/do_suicide() - visible_message(span_danger("[src] is playing dead permanently! It looks like [p_theyre()] trying to commit suicide.")) + visible_message(span_danger("[src] бешено мечется! Уровень сыра упал до критической отметки, и [genderize_ru(gender, "он", "она", "оно", "они")] покинул[genderize_ru(gender, "", "а", "о", "и")] наш мир.")) adjustOxyLoss(max(100 - getBruteLoss(100), 0)) @@ -73,7 +73,7 @@ /mob/living/silicon/do_suicide() - to_chat(viewers(src), span_danger("[src] is powering down. It looks like [p_theyre()] trying to commit suicide.")) + to_chat(viewers(src), span_danger("[src] отключа[pluralize_ru(gender, "ет", "ют")] питание. Это похоже на попытку суицида.")) //put em at -175 adjustOxyLoss(max(maxHealth * 2 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) @@ -99,14 +99,14 @@ /mob/living/carbon/brain/do_suicide() - to_chat(viewers(loc), span_danger("[src]'s brain is growing dull and lifeless. It looks like it's lost the will to live.")) + to_chat(viewers(loc), span_danger("Мозг [src] становится тусклым и безжизненным. Похоже, [genderize_ru(gender, "он", "она", "оно", "они")] потерял[genderize_ru(gender, "", "а", "о", "и")] волю к жизни.")) spawn(5 SECONDS) death(gibbed = FALSE) suiciding = FALSE /mob/living/carbon/alien/humanoid/do_suicide() - to_chat(viewers(src), span_danger("[src] is thrashing wildly! It looks like [p_theyre()] trying to commit suicide.")) + to_chat(viewers(src), span_danger("[src] [pluralize_ru(gender, "бьётся", "бьются")] в конвульсиях! Это похоже на попытку суицида.")) //put em at -175 adjustOxyLoss(max(175 - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) @@ -139,7 +139,7 @@ human_suicide(damagetype, O) return - to_chat(viewers(src), span_danger("[src] [replacetext(pick(dna.species.suicide_messages), "their", p_their())] It looks like [p_theyre()] trying to commit suicide.")) + to_chat(viewers(src), span_danger("[src] [replacetext(pick(dna.species.suicide_messages), "their", p_their())] Это похоже на попытку суицида.")) human_suicide(0) diff --git a/code/modules/antagonists/borer/borer_spell.dm b/code/modules/antagonists/borer/borer_spell.dm index c987e70370c..d5f8ca41088 100644 --- a/code/modules/antagonists/borer/borer_spell.dm +++ b/code/modules/antagonists/borer/borer_spell.dm @@ -112,8 +112,6 @@ action_icon_state = "god_transmit" need_active_overlay = TRUE - var/evo_cost = 0.3 - /obj/effect/proc_holder/spell/borer_force_say/create_new_targeting() return new /datum/spell_targeting/self @@ -121,10 +119,6 @@ if (user.stat || user.host?.stat) return FALSE - if(user.antag_datum.evo_points < evo_cost) - to_chat(user, "Вам требуется еще [evo_cost - user.antag_datum.evo_points] очков эволюции для подчинения голосовых связок хозяина.") - return FALSE - . = ..() /obj/effect/proc_holder/spell/borer_force_say/cast(list/targets, mob/living/simple_animal/borer/user) @@ -133,10 +127,8 @@ if(!force_say_content) return - if(user.controlling || user.stat || user.host?.stat || user.antag_datum.evo_points < evo_cost) // we really need that double check + if(user.controlling || user.stat || user.host?.stat) // we really need that double check return user.host.say(force_say_content) - user.antag_datum.evo_points -= evo_cost - add_attack_logs(user, user.host, "Forcesaid: [force_say_content]") diff --git a/code/modules/antagonists/malf_ai/malf_ai_datum.dm b/code/modules/antagonists/malf_ai/malf_ai_datum.dm index 80e25b3bd84..f16ed32201f 100644 --- a/code/modules/antagonists/malf_ai/malf_ai_datum.dm +++ b/code/modules/antagonists/malf_ai/malf_ai_datum.dm @@ -2,7 +2,7 @@ name = "Malfunctioning AI" roundend_category = "traitors" job_rank = ROLE_MALF_AI - special_role = SPECIAL_ROLE_TRAITOR + special_role = SPECIAL_ROLE_MALFAI antag_hud_name = "hudsyndicate" antag_hud_type = ANTAG_HUD_TRAITOR /// Should the AI get codewords? diff --git a/code/modules/antagonists/space_ninja/ninja_shuttle.dm b/code/modules/antagonists/space_ninja/ninja_shuttle.dm index 32a38a7411b..a50e3e763cf 100644 --- a/code/modules/antagonists/space_ninja/ninja_shuttle.dm +++ b/code/modules/antagonists/space_ninja/ninja_shuttle.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/shuttle/ninja name = "Spider Clan \"Ombra\" shuttle console" - desc = "Used to call and send the \"Ombra\" shuttle." + desc = "Используется для вызова и отправки шаттла \"Ombra\"." icon_keyboard = "generic_key" icon_screen = "ninja_shuttle" req_access = list() @@ -13,7 +13,7 @@ /obj/machinery/computer/camera_advanced/shuttle_docker/ninja name = "Spider Clan \"Ombra\" shuttle navigation computer" - desc = "Used to designate a precise transit location for the \"Ombra\" shuttle." + desc = "Используется, чтобы указать точное местоположение для отправки шаттла \"Ombra\"." icon_screen = "ninja_navigation" icon_keyboard = "generic_key" shuttleId = "ombra" diff --git a/code/modules/antagonists/space_ninja/suit/gloves.dm b/code/modules/antagonists/space_ninja/suit/gloves.dm index 5bcba84e211..3665e1ddfe4 100644 --- a/code/modules/antagonists/space_ninja/suit/gloves.dm +++ b/code/modules/antagonists/space_ninja/suit/gloves.dm @@ -22,6 +22,7 @@ heat_protection = HANDS max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT strip_delay = 120 + permeability_coefficient = 1 resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF armor = list("melee" = 40, "bullet" = 30, "laser" = 20,"energy" = 15, "bomb" = 30, "bio" = 30, "rad" = 100, "fire" = 100, "acid" = 100) ///Ниндзя украл ваше бельё ( ͡° ͜ʖ ͡°) diff --git a/code/modules/antagonists/space_ninja/suit/head.dm b/code/modules/antagonists/space_ninja/suit/head.dm index 54a949b3417..38f6e5850d9 100644 --- a/code/modules/antagonists/space_ninja/suit/head.dm +++ b/code/modules/antagonists/space_ninja/suit/head.dm @@ -19,6 +19,7 @@ armor = list("melee" = 40, "bullet" = 30, "laser" = 20,"energy" = 15, "bomb" = 30, "bio" = 30, "rad" = 100, "fire" = 100, "acid" = 100) blockTracking = TRUE //Roughly the only unique thing about this helmet. strip_delay = 12 + permeability_coefficient = 1 resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF /** diff --git a/code/modules/antagonists/space_ninja/suit/mask.dm b/code/modules/antagonists/space_ninja/suit/mask.dm index 968b86ec024..3631dfd312f 100644 --- a/code/modules/antagonists/space_ninja/suit/mask.dm +++ b/code/modules/antagonists/space_ninja/suit/mask.dm @@ -15,6 +15,7 @@ icon_state = "ninja_mask_classic_thermals" item_state = "ninja_mask_classic_thermals" strip_delay = 120 + permeability_coefficient = 1 flags_inv = HIDEHEADSETS|HIDEGLASSES|HIDENAME flags_cover = MASKCOVERSEYES //We don't need to cover mouth clothing_flags = BLOCK_GAS_SMOKE_EFFECT|AIRTIGHT|BLOCK_CAPSAICIN diff --git a/code/modules/antagonists/space_ninja/suit/shoes.dm b/code/modules/antagonists/space_ninja/suit/shoes.dm index 75d1aeda567..fd4b0e55a1a 100644 --- a/code/modules/antagonists/space_ninja/suit/shoes.dm +++ b/code/modules/antagonists/space_ninja/suit/shoes.dm @@ -21,7 +21,7 @@ min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT heat_protection = FEET max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT - permeability_coefficient = 0.01 + permeability_coefficient = 1 strip_delay = 120 slowdown = 0 clothing_traits = list(TRAIT_NEGATES_GRAVITY, TRAIT_NO_SLIP_WATER) diff --git a/code/modules/antagonists/space_ninja/suit/suit.dm b/code/modules/antagonists/space_ninja/suit/suit.dm index bef1639f685..5511f7813ee 100644 --- a/code/modules/antagonists/space_ninja/suit/suit.dm +++ b/code/modules/antagonists/space_ninja/suit/suit.dm @@ -21,6 +21,7 @@ resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF armor = list("melee" = 40, "bullet" = 30, "laser" = 20,"energy" = 30, "bomb" = 30, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) strip_delay = 12 + permeability_coefficient = 1 min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL flags_inv_transparent = HIDEGLOVES|HIDEJUMPSUIT diff --git a/code/modules/antagonists/space_ninja/suit/uniform.dm b/code/modules/antagonists/space_ninja/suit/uniform.dm index 208f1bf6f71..5926b74af21 100644 --- a/code/modules/antagonists/space_ninja/suit/uniform.dm +++ b/code/modules/antagonists/space_ninja/suit/uniform.dm @@ -7,6 +7,7 @@ icon_state = "ninja_under" item_state = "ninja_under" item_color = "ninja_under" + permeability_coefficient = 1 resistance_flags = NONE sensor_mode = SENSOR_OFF //Hey who's this guy on the Spider Clan Shuttle?? random_sensor = FALSE diff --git a/code/modules/atmospherics/machinery/other/area_atmos_computer.dm b/code/modules/atmospherics/machinery/other/area_atmos_computer.dm index 87e31ffda70..ff0e4002acc 100644 --- a/code/modules/atmospherics/machinery/other/area_atmos_computer.dm +++ b/code/modules/atmospherics/machinery/other/area_atmos_computer.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/area_atmos name = "area air control" - desc = "A computer used to control the stationary scrubbers and pumps in the area." + desc = "Консоль управления стационарными скрубберами и насосами в этой зоне." icon_screen = "area_atmos" icon_keyboard = "atmos_key" circuit = /obj/item/circuitboard/area_atmos diff --git a/code/modules/awaymissions/mission_code/ruins/graveyard.dm b/code/modules/awaymissions/mission_code/ruins/graveyard.dm index 22d2fb7fb32..a33dc6dda2e 100644 --- a/code/modules/awaymissions/mission_code/ruins/graveyard.dm +++ b/code/modules/awaymissions/mission_code/ruins/graveyard.dm @@ -23,7 +23,7 @@ /obj/machinery/computer/shuttle/funeral name = "Funeral \"The Undertaker\" Shuttle Console" - desc = "Used to call and send the funeral \"The Undertaker\" shuttle." + desc = "Используется для вызова и отправки похоронного шаттла \"The Undertaker\"." shuttleId = "funeral" possible_destinations = "graveyard_church;graveyard_dock" diff --git a/code/modules/client/preference/loadout/loadout_donor.dm b/code/modules/client/preference/loadout/loadout_donor.dm index b21fb3aa18b..a5d99260b3a 100644 --- a/code/modules/client/preference/loadout/loadout_donor.dm +++ b/code/modules/client/preference/loadout/loadout_donor.dm @@ -265,6 +265,70 @@ ..() gear_tweaks += new /datum/gear_tweak/color(parent = src) +/datum/gear/donor/heart_meson + display_name = "Heart Meson Glasses" + path = /obj/item/clothing/glasses/meson/heart + donator_tier = 4 + cost = 2 + slot = ITEM_SLOT_EYES + allowed_roles = list(JOB_TITLE_CHIEF, JOB_TITLE_ENGINEER, JOB_TITLE_ATMOSTECH, JOB_TITLE_MECHANIC, JOB_TITLE_QUARTERMASTER, JOB_TITLE_MINER, JOB_TITLE_CAPTAIN, JOB_TITLE_ENGINEER_TRAINEE) + +/datum/gear/donor/heart_science + display_name = "Heart Science Glasses" + path = /obj/item/clothing/glasses/science/heart + donator_tier = 4 + cost = 2 + slot = ITEM_SLOT_EYES + allowed_roles = list(JOB_TITLE_CAPTAIN, JOB_TITLE_SCIENTIST, JOB_TITLE_ROBOTICIST, JOB_TITLE_RD, JOB_TITLE_GENETICIST, JOB_TITLE_CHEMIST, JOB_TITLE_SCIENTIST_STUDENT) + +/datum/gear/donor/heart_health + display_name = "Heart Medical Glasses" + path = /obj/item/clothing/glasses/hud/health/heart + donator_tier = 4 + cost = 2 + slot = ITEM_SLOT_EYES + allowed_roles = list(JOB_TITLE_CAPTAIN, JOB_TITLE_CMO, JOB_TITLE_INTERN, JOB_TITLE_PARAMEDIC, JOB_TITLE_VIROLOGIST, JOB_TITLE_BLUESHIELD, JOB_TITLE_PSYCHIATRIST, JOB_TITLE_DOCTOR, JOB_TITLE_CORONER) + +/datum/gear/donor/heart_diagnostic + display_name = "Heart Diagnostic Glasses" + path = /obj/item/clothing/glasses/hud/diagnostic/heart + donator_tier = 4 + cost = 2 + slot = ITEM_SLOT_EYES + allowed_roles = list(JOB_TITLE_CAPTAIN, JOB_TITLE_RD, JOB_TITLE_ROBOTICIST) + +/datum/gear/donor/heart_security + display_name = "Heart Security Glasses" + path = /obj/item/clothing/glasses/hud/security/sunglasses/heart + donator_tier = 4 + cost = 2 + slot = ITEM_SLOT_EYES + allowed_roles = list(JOB_TITLE_CAPTAIN, JOB_TITLE_DETECTIVE, JOB_TITLE_PILOT, JOB_TITLE_HOS, JOB_TITLE_WARDEN, JOB_TITLE_BLUESHIELD, JOB_TITLE_JUDGE, JOB_TITLE_OFFICER) + +/datum/gear/donor/heartsec_read + display_name = "Heart Security Glasses" + path = /obj/item/clothing/glasses/hud/security/sunglasses/heart/read_only + donator_tier = 4 + cost = 2 + slot = ITEM_SLOT_EYES + allowed_roles = list(JOB_TITLE_LAWYER) + +/datum/gear/donor/heart_hydroponic + display_name = "Heart Hydroponic Glasses" + path = /obj/item/clothing/glasses/hud/heart + donator_tier = 4 + cost = 2 + slot = ITEM_SLOT_EYES + allowed_roles = list(JOB_TITLE_CAPTAIN, JOB_TITLE_BOTANIST) + +/datum/gear/donor/heart_skills + display_name = "Heart Skills Glasses" + path = /obj/item/clothing/glasses/hud/skills/heart + donator_tier = 4 + cost = 2 + slot = ITEM_SLOT_EYES + allowed_roles = list(JOB_TITLE_CAPTAIN, JOB_TITLE_REPRESENTATIVE, JOB_TITLE_BLUESHIELD, JOB_TITLE_HOP) + /datum/gear/donor/night_dress display_name = "night dress, select" description = "A classic night dress." @@ -428,4 +492,9 @@ display_name = "GSBussy doll" path = /obj/item/toy/plushie/gsbplushie - +/datum/gear/donor/backpack_shitsec + donator_tier = 3 + cost = 1 + display_name = "backpack of justice" + path = /obj/item/storage/backpack/justice + allowed_roles = list(JOB_TITLE_HOS, JOB_TITLE_WARDEN, JOB_TITLE_OFFICER, JOB_TITLE_PILOT) diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm index ad4bfba80bc..7a371b75989 100644 --- a/code/modules/client/preference/preferences.dm +++ b/code/modules/client/preference/preferences.dm @@ -1761,7 +1761,7 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts b_type = new_b_type if("hair") - if(species in list(SPECIES_HUMAN, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_SKRELL, SPECIES_MACNINEPERSON, SPECIES_VULPKANIN, SPECIES_VOX)) //Species that have hair. (No HAS_HAIR flag) + if(species in list(SPECIES_HUMAN, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_SKRELL, SPECIES_MACNINEPERSON, SPECIES_VULPKANIN, SPECIES_VOX, SPECIES_WRYN)) //Species that have hair. (No HAS_HAIR flag) var/input = "Choose your character's hair colour:" var/new_hair = input(user, input, "Character Preference", h_colour) as color|null if(new_hair) diff --git a/code/modules/clothing/chameleon/generic_chameleon_clothing.dm b/code/modules/clothing/chameleon/generic_chameleon_clothing.dm index 135b23f2eb5..d30e5ea5321 100644 --- a/code/modules/clothing/chameleon/generic_chameleon_clothing.dm +++ b/code/modules/clothing/chameleon/generic_chameleon_clothing.dm @@ -220,6 +220,7 @@ do { \ SPECIES_WOLPIN = 'icons/mob/clothing/species/monkey/mask.dmi', SPECIES_NEARA = 'icons/mob/clothing/species/monkey/mask.dmi', SPECIES_STOK = 'icons/mob/clothing/species/monkey/mask.dmi', + SPECIES_WRYN = 'icons/mob/clothing/species/wryn/mask.dmi' ) var/obj/item/voice_changer/voice_changer diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 4aa7b0db32f..a1567ef30b7 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -113,6 +113,12 @@ flash_protect = FLASH_PROTECTION_FLASH tint = 1 +/obj/item/clothing/glasses/meson/heart + name = "\improper Heart Meson Glasses" + desc = "Модные очки в форме сердечек с встроенным ИЛС под рабочие нужды." + icon_state = "heart_meson" + item_state = "heart_meson" + /obj/item/clothing/glasses/meson/night name = "Night Vision Optical Meson Scanner" desc = "An Optical Meson Scanner fitted with an amplified visible light spectrum overlay, providing greater visual clarity in darkness." @@ -186,6 +192,12 @@ see_in_dark = 8 lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE //don't render darkness while wearing these +/obj/item/clothing/glasses/science/heart + name = "\improper Heart Science Glasses" + desc = "Модные очки в форме сердечек с встроенным ИЛС под рабочие нужды." + icon_state = "heart_science" + item_state = "heart_science" + /obj/item/clothing/glasses/janitor name = "Janitorial Goggles" desc = "These'll keep the soap out of your eyes." diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 921b8684f85..de7194f995e 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -82,6 +82,12 @@ MEDICAL lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE prescription_upgradable = FALSE +/obj/item/clothing/glasses/hud/health/heart + name = "\improper Heart Medical Glasses" + desc = "Модные очки в форме сердечек с встроенным ИЛС под рабочие нужды." + icon_state = "heart_med" + item_state = "heart_med" + /obj/item/clothing/glasses/hud/health/patch name = "\improper Medical HUD Eyepatch" desc = "A heads-up eyepatch that scans the humans in view and provides accurate data about their health status." @@ -161,6 +167,12 @@ DIAGNOSTIC item_state = "diaghudpatch" prescription_upgradable = FALSE +/obj/item/clothing/glasses/hud/diagnostic/heart + name = "\improper Heart Diagnostic Glasses" + desc = "Модные очки в форме сердечек с встроенным ИЛС под рабочие нужды." + icon_state = "heart_diagnostic" + item_state = "heart_diagnostic" + /obj/item/clothing/glasses/hud/diagnostic/night name = "\improper Night Vision Diagnostic HUD" desc = "A robotics diagnostic HUD fitted with a light amplifier." @@ -262,6 +274,15 @@ SECURITY SPECIES_STOK = 'icons/mob/clothing/species/monkey/eyes.dmi' ) +/obj/item/clothing/glasses/hud/security/sunglasses/heart + name = "\improper Heart Security Glasses" + desc = "Модные очки в форме сердечек с встроенным ИЛС под рабочие нужды." + icon_state = "heart_sec" + item_state = "heart_sec" + +/obj/item/clothing/glasses/hud/security/sunglasses/heart/read_only + examine_extensions = EXAMINE_HUD_SECURITY_READ + /obj/item/clothing/glasses/hud/security/sunglasses/tacticool name = "security tactical glasses" desc = "Ballistic glasses with a security HUD. Gives you tacticool protection and selfish increase. The elastic band allows it to be worn over a helmet." @@ -358,6 +379,12 @@ HYDROPONIC item_state = "hydrohudpatch" prescription_upgradable = FALSE +/obj/item/clothing/glasses/hud/heart + name = "\improper Heart Hydroponic Glasses" + desc = "Модные очки в форме сердечек с встроенным ИЛС под рабочие нужды." + icon_state = "heart_hydro" + item_state = "heart_hydro" + /obj/item/clothing/glasses/hud/hydroponic/night name = "\improper Night Vision Hydroponic HUD" desc = "A hydroponic HUD fitted with a light amplifier." @@ -421,6 +448,12 @@ SKILLS item_state = "skillhudpatch" prescription_upgradable = FALSE +/obj/item/clothing/glasses/hud/skills/heart + name = "\improper Heart Skills Glasses" + desc = "Модные очки в форме сердечек с встроенным ИЛС под рабочие нужды." + icon_state = "heart_skill" + item_state = "heart_skill" + /obj/item/clothing/glasses/hud/skills/sunglasses name = "skills sunglasses" desc = "Sunglasses with a build-in skills HUD, showing the employment history of nearby NT crew members." diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index cc5bd1bacea..0e7ac2bcb7f 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -471,3 +471,30 @@ SPECIES_NEARA = 'icons/mob/clothing/species/monkey/head.dmi', SPECIES_STOK = 'icons/mob/clothing/species/monkey/head.dmi' ) + +/obj/item/clothing/head/helmet/biker + name = "Motorcycle helmet" + desc = "Самый обычный мотоциклетный шлем." + armor = list("melee" = 25, "bullet" = 10, "laser" = 30, "energy" = 30, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 0) + icon_state = "biker" + item_state = "biker" + flags_inv = HIDEMASK|HIDEHEADSETS|HIDEGLASSES|HIDEHAIR + flags_cover = HEADCOVERSEYES|HEADCOVERSMOUTH + color = "#161515" + sprite_sheets = list( + SPECIES_MONKEY = 'icons/mob/clothing/species/monkey/head.dmi' + ) + species_restricted = list(SPECIES_HUMAN, SPECIES_SLIMEPERSON, SPECIES_SKELETON, SPECIES_NUCLEATION, SPECIES_MACNINEPERSON, SPECIES_DIONA, SPECIES_SHADOW_BASIC, SPECIES_MONKEY) + +/obj/item/clothing/head/helmet/biker/Initialize(mapload) + . = ..() + update_icon(UPDATE_OVERLAYS) + +/obj/item/clothing/head/helmet/biker/ComponentInitialize() + . = ..() + AddComponent(/datum/component/spraycan_paintable) + +/obj/item/clothing/head/helmet/biker/update_overlays() + . = ..() + var/mutable_appearance/biker_overlay = mutable_appearance(icon='icons/obj/clothing/hats.dmi', icon_state = "biker_overlay") + . += biker_overlay diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm index 251bebffc06..2b9de438487 100644 --- a/code/modules/clothing/masks/boxing.dm +++ b/code/modules/clothing/masks/boxing.dm @@ -24,7 +24,8 @@ SPECIES_FARWA = 'icons/mob/clothing/species/monkey/mask.dmi', SPECIES_WOLPIN = 'icons/mob/clothing/species/monkey/mask.dmi', SPECIES_NEARA = 'icons/mob/clothing/species/monkey/mask.dmi', - SPECIES_STOK = 'icons/mob/clothing/species/monkey/mask.dmi' + SPECIES_STOK = 'icons/mob/clothing/species/monkey/mask.dmi', + SPECIES_WRYN = 'icons/mob/clothing/species/wryn/mask.dmi' ) @@ -54,7 +55,8 @@ SPECIES_FARWA = 'icons/mob/clothing/species/monkey/mask.dmi', SPECIES_WOLPIN = 'icons/mob/clothing/species/monkey/mask.dmi', SPECIES_NEARA = 'icons/mob/clothing/species/monkey/mask.dmi', - SPECIES_STOK = 'icons/mob/clothing/species/monkey/mask.dmi' + SPECIES_STOK = 'icons/mob/clothing/species/monkey/mask.dmi', + SPECIES_WRYN = 'icons/mob/clothing/species/wryn/mask.dmi' ) /obj/item/clothing/mask/luchador/tecnicos diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm index 60740bcd960..7b7cf4c8306 100644 --- a/code/modules/clothing/masks/breath.dm +++ b/code/modules/clothing/masks/breath.dm @@ -27,7 +27,8 @@ SPECIES_FARWA = 'icons/mob/clothing/species/monkey/mask.dmi', SPECIES_WOLPIN = 'icons/mob/clothing/species/monkey/mask.dmi', SPECIES_NEARA = 'icons/mob/clothing/species/monkey/mask.dmi', - SPECIES_STOK = 'icons/mob/clothing/species/monkey/mask.dmi' + SPECIES_STOK = 'icons/mob/clothing/species/monkey/mask.dmi', + SPECIES_WRYN = 'icons/mob/clothing/species/wryn/mask.dmi' ) /obj/item/clothing/mask/breath/attack_self(mob/user) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 0e729aa7815..b1dcdf8c4fd 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -26,7 +26,8 @@ SPECIES_FARWA = 'icons/mob/clothing/species/monkey/mask.dmi', SPECIES_WOLPIN = 'icons/mob/clothing/species/monkey/mask.dmi', SPECIES_NEARA = 'icons/mob/clothing/species/monkey/mask.dmi', - SPECIES_STOK = 'icons/mob/clothing/species/monkey/mask.dmi' + SPECIES_STOK = 'icons/mob/clothing/species/monkey/mask.dmi', + SPECIES_WRYN = 'icons/mob/clothing/species/wryn/mask.dmi' ) // **** Welding gas mask **** @@ -79,7 +80,8 @@ SPECIES_FARWA = 'icons/mob/clothing/species/monkey/mask.dmi', SPECIES_WOLPIN = 'icons/mob/clothing/species/monkey/mask.dmi', SPECIES_NEARA = 'icons/mob/clothing/species/monkey/mask.dmi', - SPECIES_STOK = 'icons/mob/clothing/species/monkey/mask.dmi' + SPECIES_STOK = 'icons/mob/clothing/species/monkey/mask.dmi', + SPECIES_WRYN = 'icons/mob/clothing/species/wryn/mask.dmi' ) @@ -187,7 +189,8 @@ icon_state = "rainbow" item_state = "rainbow" sprite_sheets = list( - SPECIES_VULPKANIN = 'icons/mob/clothing/species/vulpkanin/head.dmi' + SPECIES_VULPKANIN = 'icons/mob/clothing/species/vulpkanin/head.dmi', + SPECIES_WRYN = 'icons/mob/clothing/species/wryn/mask.dmi' ) /obj/item/clothing/mask/gas/clownwiz diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 62aa93110ad..3993acea1cc 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -19,7 +19,8 @@ SPECIES_FARWA = 'icons/mob/clothing/species/monkey/mask.dmi', SPECIES_WOLPIN = 'icons/mob/clothing/species/monkey/mask.dmi', SPECIES_NEARA = 'icons/mob/clothing/species/monkey/mask.dmi', - SPECIES_STOK = 'icons/mob/clothing/species/monkey/mask.dmi' + SPECIES_STOK = 'icons/mob/clothing/species/monkey/mask.dmi', + SPECIES_WRYN = 'icons/mob/clothing/species/wryn/mask.dmi' ) // Clumsy folks can't take the mask off themselves. @@ -249,7 +250,8 @@ SPECIES_FARWA = 'icons/mob/clothing/species/monkey/mask.dmi', SPECIES_WOLPIN = 'icons/mob/clothing/species/monkey/mask.dmi', SPECIES_NEARA = 'icons/mob/clothing/species/monkey/mask.dmi', - SPECIES_STOK = 'icons/mob/clothing/species/monkey/mask.dmi' + SPECIES_STOK = 'icons/mob/clothing/species/monkey/mask.dmi', + SPECIES_WRYN = 'icons/mob/clothing/species/wryn/mask.dmi' ) @@ -474,9 +476,34 @@ icon_state = "pennywise_mask" item_state = "pennywise_mask" sprite_sheets = list( - SPECIES_VULPKANIN = 'icons/mob/clothing/species/vulpkanin/head.dmi' + SPECIES_VULPKANIN = 'icons/mob/clothing/species/vulpkanin/head.dmi', + SPECIES_WRYN = 'icons/mob/clothing/species/wryn/mask.dmi' ) +/obj/item/clothing/mask/gas/clown_hat/sweettooth + name = "Sweet Tooth Mask" + desc = "Брутальная маска клоуна. Она до сих пор пахнет цирком. И керосином." + icon_state = "sweettooth_mask" + item_state = "sweettooth_mask" + ru_names = list( + NOMINATIVE = "Маска Сладкоежки", + GENITIVE = "Маски Сладкоежки", + DATIVE = "Маске Сладкоежки", + ACCUSATIVE = "Маску Сладкоежки", + INSTRUMENTAL = "Маской Сладкоежки", + PREPOSITIONAL = "Маске Сладкоежки" + ) + sprite_sheets = list( + SPECIES_UNATHI = 'icons/mob/clothing/species/unathi/mask.dmi', + SPECIES_TAJARAN = 'icons/mob/clothing/species/tajaran/mask.dmi', + SPECIES_VULPKANIN = 'icons/mob/clothing/species/vulpkanin/mask.dmi', + SPECIES_VOX = 'icons/mob/clothing/species/vox/mask.dmi', + SPECIES_MONKEY = 'icons/mob/clothing/species/monkey/mask.dmi', + SPECIES_DRASK = 'icons/mob/clothing/species/drask/mask.dmi', + SPECIES_GREY = 'icons/mob/clothing/species/grey/mask.dmi', + SPECIES_KIDAN = 'icons/mob/clothing/species/kidan/mask.dmi', + SPECIES_WRYN = 'icons/mob/clothing/species/wryn/mask.dmi' + ) /obj/item/clothing/mask/gas/clown_hat/rockso name = "Rockso Mask" diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index ecdbe936684..e84df73a48c 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -795,6 +795,30 @@ item_color = "pennywise" body_parts_covered = UPPER_TORSO|LOWER_TORSO +/obj/item/clothing/under/sweettooth + name = "Sweet Tooth Costume" + desc = "Брутально выглядящий костюм, отдалённо смахивающий на клоунский. Такой отлично подошёл бы какому-нибудь серийному убийце." + icon_state = "sweettooth_uniform" + item_color = "sweettooth_uniform" + ru_names = list( + NOMINATIVE = "Костюм Сладкоежки", + GENITIVE = "Костюма Сладкоежки", + DATIVE = "Костюму Сладкоежки", + ACCUSATIVE = "Костюм Сладкоежки", + INSTRUMENTAL = "Костюмом Сладкоежки", + PREPOSITIONAL = "Костюме Сладкоежки" + ) + body_parts_covered = UPPER_TORSO | LOWER_TORSO + sprite_sheets = list( + SPECIES_VOX = 'icons/mob/clothing/species/vox/uniform.dmi', + SPECIES_MONKEY = 'icons/mob/clothing/species/monkey/uniform.dmi', + SPECIES_DRASK = 'icons/mob/clothing/species/drask/uniform.dmi', + SPECIES_GREY = 'icons/mob/clothing/species/grey/uniform.dmi', + SPECIES_KIDAN = 'icons/mob/clothing/species/kidan/uniform.dmi', + SPECIES_WRYN = 'icons/mob/clothing/species/wryn/uniform.dmi', + SPECIES_GREY = 'icons/mob/clothing/species/grey/uniform.dmi' + ) + /obj/item/clothing/under/rockso name = "Rockso Costume" desc = "I DO COCAINE!" diff --git a/code/modules/economy/Accounts_DB.dm b/code/modules/economy/Accounts_DB.dm index 0972e9e0239..a6a748078e4 100644 --- a/code/modules/economy/Accounts_DB.dm +++ b/code/modules/economy/Accounts_DB.dm @@ -6,7 +6,7 @@ GLOBAL_VAR(current_date_string) /obj/machinery/computer/account_database name = "Accounts Uplink Terminal" - desc = "Access transaction logs, account data and all kinds of other financial records." + desc = "Получите доступ к журналам транзакций, данным учетной записи и всем видам других финансовых записей." icon_screen = "accounts" req_access = list(ACCESS_HOP, ACCESS_CAPTAIN, ACCESS_CENT_COMMANDER) light_color = LIGHT_COLOR_GREEN @@ -25,7 +25,7 @@ GLOBAL_VAR(current_date_string) // If someone ever makes a map without one of these consoles, the entire eco AND date system breaks // This upsets me a lot // AA Todo: SSeconomy - + if(!GLOB.current_date_string) GLOB.current_date_string = "[time2text(world.timeofday, "DD Month")], [GLOB.game_year]" diff --git a/code/modules/economy/quests/quest_console.dm b/code/modules/economy/quests/quest_console.dm index ed42cd70c5d..2070bfb0f27 100644 --- a/code/modules/economy/quests/quest_console.dm +++ b/code/modules/economy/quests/quest_console.dm @@ -6,7 +6,7 @@ /obj/machinery/computer/supplyquest name = "Supply Request Console" - desc = "Essential for supply requests. Your bread and butter." + desc = "Незаменим при оформлении заказов на поставку. Ваш хлеб с маслом." icon_keyboard = "cargo_quest_key" icon_screen = "cargo_quest" req_access = list(ACCESS_CARGO) @@ -221,7 +221,7 @@ /obj/machinery/computer/supplyquest/workers name = "Supply Request Monitor" - desc = "From this monitor, you can view active requests, and you can take a printed version of the request to make it easier to collect supplies. Oh, and so you don't forget." + desc = "На этом мониторе вы можете просматривать активные запросы и распечатывать их, чтобы упростить сбор материалов. Да, и чтобы вы не забыли." icon_state = "quest_console" icon_screen = "quest" icon_keyboard = null @@ -313,7 +313,7 @@ /obj/machinery/computer/supplyquest/iternal name = "invasive quest utility" - desc = "How did this get here?! Please report this as a bug to github" + desc = "Как это сюда попало?! Пожалуйста, сообщите об этом как об ошибке на github" use_power = NO_POWER_USE /obj/item/qm_quest_tablet/Initialize(mapload) diff --git a/code/modules/economy/robotic_quests/robo_quest_console.dm b/code/modules/economy/robotic_quests/robo_quest_console.dm index 87aa793c665..7891ec061a6 100644 --- a/code/modules/economy/robotic_quests/robo_quest_console.dm +++ b/code/modules/economy/robotic_quests/robo_quest_console.dm @@ -21,7 +21,7 @@ /obj/machinery/computer/roboquest name = "Robotics Request Console" - desc = "Console used for receiving requests for construction of exosuits." + desc = "Консоль, используемая для приема запросов на изготовление экзоскелетов." icon_screen = "robo_ntos_roboquest" icon_keyboard = "rd_key" light_color = LIGHT_COLOR_FADEDPURPLE diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index 2cb5b697f5b..415f9c04b43 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -3,6 +3,14 @@ #define NEGATIVE 2 #define MINOR_NEGATIVE 3 +/datum/event/spacevine + announceWhen = 120 + var/obj/structure/spacevine_controller/SC + +/datum/event/spacevine/Destroy(force) + SC = null + return ..() + /datum/event/spacevine/start() var/list/turfs = list() //list of all the empty floor turfs in the hallway areas @@ -17,7 +25,7 @@ if(turfs.len) //Pick a turf to spawn at if we can var/turf/T = pick(turfs) - var/obj/structure/spacevine_controller/SC = new /obj/structure/spacevine_controller(T, , rand(30,70),rand(5,2)) //spawn a controller at turf + SC = new /obj/structure/spacevine_controller(T, null, rand(30, 70), rand(5, 2)) // spawn a controller at turf // Make the event start fun - give the vine a random hostile mutation if(SC.vines.len) @@ -31,6 +39,9 @@ mutations.Cut() mutations = null +/datum/event/spacevine/announce(false_alarm) + if((false_alarm || LAZYLEN(SC?.vines)) && (LAZYLEN(GLOB.player_list) < 20)) + GLOB.event_announcement.Announce("Биосканеры фиксируют рост космической лозы в [get_area(SC.loc)]. Избавьтесь от неё, прежде чем она нанесёт ущерб станции.", "ВНИМАНИЕ: БИОЛОГИЧЕСКАЯ УГРОЗА.") /datum/spacevine_mutation var/name = "" @@ -366,7 +377,7 @@ hue = "#444444" quality = POSITIVE severity = 3 - var/drop_rate = 20 + var/drop_rate = 40 var/list/mineral_results = list( /obj/item/stack/sheet/metal = 1 ) @@ -381,7 +392,7 @@ /datum/spacevine_mutation/mineral/valuables name = "glimmering" hue = "#888800" - drop_rate = 10 + drop_rate = 20 mineral_results = list( /obj/item/stack/sheet/mineral/silver = 4, /obj/item/stack/sheet/mineral/gold = 2, @@ -577,17 +588,18 @@ var/spread_multiplier = 5 var/spread_cap = 30 var/list/mutations_list = list() - var/mutativeness = 1 + var/mutativeness = 0 /obj/structure/spacevine_controller/New(loc, list/muts, potency, production) color = "#ffffff" spawn_spacevine_piece(loc, null, muts) START_PROCESSING(SSobj, src) init_subtypes(/datum/spacevine_mutation/, mutations_list) - if(potency != null && potency > 0) - // 1 mutativeness at 10 potency - // 4 mutativeness at 100 potency + // 1 mutativeness at 10 potency + // 4 mutativeness at 100 potency + if(potency) mutativeness = log(10, potency) ** 2 + if(production != null) // 1 production is crazy powerful var/spread_value = max(10 - production, 1) @@ -597,6 +609,7 @@ // 6 vines/spread at 6 production // ~2.5 vines/spread at 1 production spread_multiplier /= spread_value / 5 + ..() diff --git a/code/modules/hydroponics/grown/kudzu.dm b/code/modules/hydroponics/grown/kudzu.dm index 9fefc140507..15b8157362e 100644 --- a/code/modules/hydroponics/grown/kudzu.dm +++ b/code/modules/hydroponics/grown/kudzu.dm @@ -37,6 +37,17 @@ qdel(src) return TRUE +/obj/item/seeds/kudzu/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/seeds/kudzu)) + var/obj/item/seeds/kudzu/AttackerSeed = I + mutations |= AttackerSeed.mutations + + add_fingerprint(user) + qdel(I) + return ATTACK_CHAIN_BLOCKED_ALL + + return ..() + /obj/item/seeds/kudzu/attack_self(mob/user) if(plant(user)) to_chat(user, "You plant the kudzu. You monster.") diff --git a/code/modules/map_fluff/nova.dm b/code/modules/map_fluff/nova.dm index d015b53c620..d1086be98a8 100644 --- a/code/modules/map_fluff/nova.dm +++ b/code/modules/map_fluff/nova.dm @@ -15,5 +15,4 @@ company_name = "Nanotrasen" company_short = "NT" starsys_name = "Epsilon Eridani" - admin_only = TRUE - webmap_url = null //Nanomap and webmap will be added later. + webmap_url = "https://webmap.affectedarc07.co.uk/maps/ss1984/nova/" diff --git a/code/modules/mining/laborcamp/laborshuttle.dm b/code/modules/mining/laborcamp/laborshuttle.dm index 88b0a6601dc..baf25e99d26 100644 --- a/code/modules/mining/laborcamp/laborshuttle.dm +++ b/code/modules/mining/laborcamp/laborshuttle.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/shuttle/labor name = "labor shuttle console" - desc = "Used to call and send the labor camp shuttle." + desc = "Используется для вызова и отправки шаттла каторги." circuit = /obj/item/circuitboard/labor_shuttle shuttleId = "laborcamp" possible_destinations = "laborcamp_home;laborcamp_away" @@ -9,7 +9,7 @@ /obj/machinery/computer/shuttle/labor/one_way name = "prisoner shuttle console" - desc = "A one-way shuttle console, used to summon the shuttle to the labor camp." + desc = "Консоль управления шаттлом в одну сторону, используемый для вызова шаттла на каторгу." possible_destinations = "laborcamp_away" circuit = /obj/item/circuitboard/labor_shuttle/one_way req_access = list( ) diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 40e76bac740..56f0ba5e765 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -60,7 +60,7 @@ /obj/machinery/computer/shuttle/mining name = "Mining Shuttle Console" - desc = "Used to call and send the mining shuttle." + desc = "Используется для вызова и отправки шахтёрского шаттла." circuit = /obj/item/circuitboard/mining_shuttle shuttleId = "mining" possible_destinations = "mining_home;mining_away" diff --git a/code/modules/mob/living/carbon/human/human_organs.dm b/code/modules/mob/living/carbon/human/human_organs.dm index 02f8414ee42..40f0c30dce2 100644 --- a/code/modules/mob/living/carbon/human/human_organs.dm +++ b/code/modules/mob/living/carbon/human/human_organs.dm @@ -129,7 +129,7 @@ if(bodypart.is_robotic()) total_dmg += bodypart.brute_dam total_dmg += bodypart.burn_dam - return (health < (100 - total_dmg)) + return (health < (maxHealth - total_dmg)) /mob/living/carbon/human/proc/count_infected_organs() 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 8b6428aadf0..fd3080ddd35 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_console.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_console.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/drone_control name = "maintenance drone control console" - desc = "Used to monitor the station's drone population and the assembler that services them." + desc = "Используется для наблюдения за популяцией дронов на станции и сборщиком, который их обслуживает." icon_screen = "power" icon_keyboard = "power_key" req_access = list(ACCESS_ENGINE_EQUIP) diff --git a/code/modules/mob/living/simple_animal/friendly/animals_named.dm b/code/modules/mob/living/simple_animal/friendly/animals_named.dm index 67c95e0edfa..a8b8f873064 100644 --- a/code/modules/mob/living/simple_animal/friendly/animals_named.dm +++ b/code/modules/mob/living/simple_animal/friendly/animals_named.dm @@ -55,6 +55,7 @@ /mob/living/simple_animal/pet/cat/white/Penny name = "Копейка" desc = "Любит таскать монетки и мелкие предметы. Успевайте прятать их!" + icon_state = "penny" unique_pet = TRUE gold_core_spawnable = NO_SPAWN resting = TRUE @@ -62,6 +63,7 @@ /mob/living/simple_animal/pet/cat/birman/Crusher name = "Бедокур" //Не цель для воров desc = "Любит крушить всё что не прикручено. Нужно вовремя прибираться." + icon_state = "crusher" unique_pet = TRUE gold_core_spawnable = NO_SPAWN resting = TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm index 51e1eb36e97..67d6e7c574c 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/drone.dm @@ -261,9 +261,9 @@ desc = "Большой дрон. Кажется, неактивен." w_class = WEIGHT_CLASS_GIGANTIC item_flags = NOPICKUP - icon_state = "unactive_drone" + icon_state = "inactive_drone" -/obj/item/unactive_drone/attackby(obj/item/I, mob/user, params) +/obj/item/inactive_drone/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/drone_modules/drone_BCM)) to_chat(user, span_notice("Вы установили модуль в слот.")) new /mob/living/simple_animal/bot/ed209/combat_drone(get_turf(src)) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 42713971a0a..075c44d9ffd 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -58,7 +58,8 @@ SPECIAL_ROLE_TRAITOR, SPECIAL_ROLE_VAMPIRE, SPECIAL_ROLE_VAMPIRE_THRALL, - SPECIAL_ROLE_THIEF + SPECIAL_ROLE_THIEF, + SPECIAL_ROLE_MALFAI ) if(special_role in crew_roles) return 0 diff --git a/code/modules/mob/new_player/sprite_accessories/human/human_hair.dm b/code/modules/mob/new_player/sprite_accessories/human/human_hair.dm index 57e0f7a3e71..0a049d1c53f 100644 --- a/code/modules/mob/new_player/sprite_accessories/human/human_hair.dm +++ b/code/modules/mob/new_player/sprite_accessories/human/human_hair.dm @@ -963,3 +963,43 @@ /datum/sprite_accessory/hair/undercutfem name = "Female undercut" icon_state = "undercut_fem" + +/datum/sprite_accessory/hair/ponytail8 + name = "Ponytail 8" + icon_state = "ponytail8" + +/datum/sprite_accessory/hair/tribalbraid + name = "Tribal Braid" + icon_state = "tribalbraid" + +/datum/sprite_accessory/hair/jill + name = "Jill" + icon_state = "jill" + +/datum/sprite_accessory/hair/sabitsuki + name = "Sabitsuki" + icon_state = "sabitsuki" + +/datum/sprite_accessory/hair/kobeni + name = "Kobeni" + icon_state = "kobeni_l" + +/datum/sprite_accessory/hair/gloomy + name = "Gloomy" + icon_state = "gloomylong" + +/datum/sprite_accessory/hair/elize + name = "Elize" + icon_state = "elize" + +/datum/sprite_accessory/hair/bunstick + name = "Asian Bun" + icon_state = "bunstick" + +/datum/sprite_accessory/hair/kitty + name = "Kitty" + icon_state = "kitty" + +/datum/sprite_accessory/hair/dolly + name = "Dolly" + icon_state = "dolly" diff --git a/code/modules/mob/new_player/sprite_accessories/ipc/ipc_face.dm b/code/modules/mob/new_player/sprite_accessories/ipc/ipc_face.dm index 6b6963cfa98..37da87aca6b 100644 --- a/code/modules/mob/new_player/sprite_accessories/ipc/ipc_face.dm +++ b/code/modules/mob/new_player/sprite_accessories/ipc/ipc_face.dm @@ -104,32 +104,32 @@ /datum/sprite_accessory/hair/ipc/hesphiastos_alt_pink name = "Pink Hesphiastos Screen" icon_state = "pink_hesp_alt" - models_allowed = list("Industrial Revolution") + models_allowed = list("Titan Enforcer") /datum/sprite_accessory/hair/ipc/hesphiastos_alt_orange name = "Orange Hesphiastos Screen" icon_state = "orange_hesp_alt" - models_allowed = list("Industrial Revolution") + models_allowed = list("Titan Enforcer") /datum/sprite_accessory/hair/ipc/hesphiastos_alt_goggle name = "Goggles Hesphiastos Screen" icon_state = "goggles_hesp_alt" - models_allowed = list("Industrial Revolution") + models_allowed = list("Titan Enforcer") /datum/sprite_accessory/hair/ipc/hesphiastos_alt_scroll name = "Scrolling Hesphiastos Screen" icon_state = "scroll_hesp_alt" - models_allowed = list("Industrial Revolution") + models_allowed = list("Titan Enforcer") /datum/sprite_accessory/hair/ipc/hesphiastos_alt_rgb name = "RGB Hesphiastos Screen" icon_state = "rgb_hesp_alt" - models_allowed = list("Industrial Revolution") + models_allowed = list("Titan Enforcer") /datum/sprite_accessory/hair/ipc/hesphiastos_alt_rainbow name = "Rainbow Hesphiastos Screen" icon_state = "rainbow_hesp_alt" - models_allowed = list("Industrial Revolution") + models_allowed = list("Titan Enforcer") //Fluff /datum/sprite_accessory/hair/ipc/fluff diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index cda28a116c5..8617697874b 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -413,3 +413,8 @@ name = "emitter gun power cell" maxcharge = 2200 chargerate = 100 + +/obj/item/stock_parts/cell/degraded + name = "degraded power cell" + maxcharge = 750 + chargerate = 25 diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm index bc9c412f1a8..22cc44d667f 100644 --- a/code/modules/power/turbine.dm +++ b/code/modules/power/turbine.dm @@ -65,7 +65,7 @@ /obj/machinery/computer/turbine_computer name = "gas turbine control computer" - desc = "A computer to remotely control a gas turbine" + desc = "Компьютер для дистанционного управления газовой турбиной." icon_screen = "turbinecomp" icon_keyboard = "tech_key" circuit = /obj/item/circuitboard/turbine_computer diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm index ad228160606..c013870a107 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/ammunition/boxes.dm @@ -153,7 +153,7 @@ icon_state = "10mmbox" origin_tech = "combat=2" ammo_type = /obj/item/ammo_casing/c10mm - max_ammo = 20 + max_ammo = 30 /obj/item/ammo_box/fortynr name = "ammo box 40N&R" diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 8860e9ccd22..1e1cb7e47c7 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -68,9 +68,18 @@ ammo_x_offset = 1 can_charge = FALSE selfcharge = TRUE + var/emagged = FALSE /obj/item/gun/energy/floragun/emag_act(mob/user) . = ..() + + if(emagged) + return + + if(user) + balloon_alert(user, "протоколы защиты сняты!") + + emagged = TRUE ammo_type = list(/obj/item/ammo_casing/energy/flora/alpha/emag, /obj/item/ammo_casing/energy/flora/beta, /obj/item/ammo_casing/energy/flora/gamma) update_ammo_types() diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index 04e95abae32..e6c201a8d56 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/pandemic name = "PanD.E.M.I.C 2200" - desc = "Used to work with viruses." + desc = "Используется для работы с вирусами." density = TRUE anchored = TRUE icon = 'icons/obj/chemical.dmi' diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 9f70f5374ee..127c1c113ec 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -135,6 +135,12 @@ /obj/item/reagent_containers/spray/cleaner/medical/empty list_reagents = list() +/obj/item/reagent_containers/spray/cleaner/tactical + name = "Tactical cleaner" + desc = "Бутылочка из прочнейшего тёмно-синего пластика, распылитель чёрного цвета украшен тактическим снаряжением, разработана уборочно-силовыми структурами Нанотрейзен для ЗАЧИСТКИ и контроля грязи в помещениях." + icon_state = "cleaner_tactical" + item_state = "cleaner_tactical" + /obj/item/reagent_containers/spray/blue_cleaner name = "bluespace cleaner" desc = "A spray with an increased storage of reagents, or it's not that simple...." diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index f3e556d0bfc..cc2c646014a 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -50,6 +50,7 @@ /obj/machinery/disposal/Initialize(mapload, obj/structure/disposalconstruct/made_from) // this will get a copy of the air turf and take a SEND PRESSURE amount of air from it . = ..() + air_contents = new if(made_from) setDir(made_from.dir) return INITIALIZE_HINT_LATELOAD @@ -60,7 +61,6 @@ var/datum/gas_mixture/env = new env.copy_from(loc.return_air()) var/datum/gas_mixture/removed = env.remove(SEND_PRESSURE + 1) - air_contents = new air_contents.merge(removed) trunk_check() update() diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index 38cdb253772..ee47d5e60bd 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -941,7 +941,7 @@ name = "Ammo Box (10mm)" id = "c10mm" build_type = AUTOLATHE - materials = list(MAT_METAL = 30500) + materials = list(MAT_METAL = 45750) build_path = /obj/item/ammo_box/c10mm category = list("hacked", "Security") diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 6517421ddda..a14e5fac182 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -978,7 +978,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, /obj/machinery/computer/rdconsole/core name = "core R&D console" - desc = "A console used to interface with R&D tools." + desc = "Консоль, используемая для взаимодействия с инструментами НИО." id = 1 /obj/machinery/computer/rdconsole/core/old_frame @@ -989,21 +989,21 @@ won't update every console in existence) but it's more of a hassle to do. Also, /obj/machinery/computer/rdconsole/robotics name = "robotics R&D console" - desc = "A console used to interface with R&D tools." + desc = "Консоль, используемая для взаимодействия с инструментами НИО." id = 2 req_access = list(ACCESS_ROBOTICS) circuit = /obj/item/circuitboard/rdconsole/robotics /obj/machinery/computer/rdconsole/experiment name = "\improper E.X.P.E.R.I-MENTOR R&D console" - desc = "A console used to interface with R&D tools." + desc = "Консоль, используемая для взаимодействия с инструментами НИО." id = 3 range = 5 circuit = /obj/item/circuitboard/rdconsole/experiment /obj/machinery/computer/rdconsole/mechanics name = "mechanics R&D console" - desc = "A console used to interface with R&D tools." + desc = "Консоль, используемая для взаимодействия с инструментами НИО." id = 4 req_access = list(ACCESS_MECHANIC) circuit = /obj/item/circuitboard/rdconsole/mechanics @@ -1015,7 +1015,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, /obj/machinery/computer/rdconsole/public name = "public R&D console" - desc = "A console used to interface with R&D tools." + desc = "Консоль, используемая для взаимодействия с инструментами НИО." id = 5 req_access = list() circuit = /obj/item/circuitboard/rdconsole/public diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index 7ff9b22e299..4ba73ee4d92 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -36,7 +36,7 @@ /obj/machinery/computer/camera_advanced/xenobio name = "slime management console" - desc = "A computer used for remotely handling slimes." + desc = "Компьютер, используемый для удаленного взаимодействия со слаймами." networks = list("SS13") circuit = /obj/item/circuitboard/xenobiology icon_screen = "slime_comp" diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 513132c4e0b..234355a33fd 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/emergency_shuttle name = "emergency shuttle console" - desc = "For shuttle control." + desc = "Для управления шаттлом." icon_screen = "shuttle" icon_keyboard = "tech_key" var/auth_need = 3 diff --git a/code/modules/shuttle/ert.dm b/code/modules/shuttle/ert.dm index e6eea6337da..67777b81968 100644 --- a/code/modules/shuttle/ert.dm +++ b/code/modules/shuttle/ert.dm @@ -15,7 +15,7 @@ /obj/machinery/computer/camera_advanced/shuttle_docker/ert name = "specops navigation computer" - desc = "Used to designate a precise transit location for the specops shuttle." + desc = "Используется, чтобы указать точное местоположение для отправки ОБР." icon_screen = "navigation" icon_keyboard = "med_key" shuttleId = "specops" diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm index 9b4f49d0a4d..9870eb2df92 100644 --- a/code/modules/shuttle/navigation_computer.dm +++ b/code/modules/shuttle/navigation_computer.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/camera_advanced/shuttle_docker name = "navigation computer" - desc = "Used to designate a precise transit location for a spacecraft." + desc = "Используется, чтобы указать точное местоположение для отправки шаттла." icon_screen = "navigation" icon_keyboard = "med_key" jump_action = null diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index f61515183e2..756b2100a86 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -914,7 +914,7 @@ /obj/machinery/computer/shuttle/ruins_transport_shuttle // this shuttle made for station and listening post of ussp since they have lore connection between eachother, btw the shuttle existed before the change but was deleted for some reason. name = "Transport Shuttle Console" - desc = "Used to control the Transport Shuttle." + desc = "Используется для управления Транспортным шаттлом." circuit = /obj/item/circuitboard/ruins_transport_shuttle shuttleId = "ruins_transport_shuttle" possible_destinations = "ussp_dock;dj_post;sindiecake_dock;ussp_gorky17" @@ -926,7 +926,7 @@ /obj/machinery/computer/shuttle/ruins_civil_shuttle // made another shuttle, this one will fly between spacebar and twin nexus hotel. just another way to get to it. name = "Regular Civilian Shuttle Console" - desc = "Used to control the Regular Civilian Shuttle." + desc = "Используется для управления обычным гражданским шаттлом." circuit = /obj/item/circuitboard/ruins_civil_shuttle shuttleId = "ruins_civil_shuttle" possible_destinations = "spacebar;spacehotelv1;ntstation" @@ -934,20 +934,20 @@ /obj/machinery/computer/shuttle/white_ship name = "White Ship Console" - desc = "Used to control the White Ship." + desc = "Используется для управления Белым кораблём." circuit = /obj/item/circuitboard/white_ship shuttleId = "whiteship" possible_destinations = null // Set at runtime /obj/machinery/computer/shuttle/engineering name = "Engineering Shuttle Console" - desc = "Used to call and send the engineering shuttle." + desc = "Используется для вызова и отправки инженерного шаттла." shuttleId = "engineering" possible_destinations = "engineering_home;engineering_away" /obj/machinery/computer/shuttle/science name = "Science Shuttle Console" - desc = "Used to call and send the science shuttle." + desc = "Используется для вызова и отправки научного шаттла." shuttleId = "science" possible_destinations = "science_home;science_away" @@ -960,7 +960,7 @@ /obj/machinery/computer/camera_advanced/shuttle_docker/admin name = "Admin shuttle navigation computer" - desc = "Used to designate a precise transit location for the admin shuttle." + desc = "Используется, чтобы указать точное местоположение для отправки админского шаттла." icon_screen = "navigation" icon_keyboard = "med_key" shuttleId = "admin" @@ -987,7 +987,7 @@ /obj/machinery/computer/shuttle/golem_ship name = "Golem Ship Console" - desc = "Used to control the Golem Ship." + desc = "Используется для управления шаттлом големов." circuit = /obj/item/circuitboard/shuttle/golem_ship shuttleId = "freegolem" possible_destinations = "freegolem_lavaland;freegolem_space;freegolem_ussp" @@ -1000,7 +1000,7 @@ /obj/machinery/computer/shuttle/golem_ship/recall name = "golem ship recall terminal" - desc = "Used to recall the Golem Ship." + desc = "Используется для отзыва шаттла големов." possible_destinations = "freegolem_lavaland" resistance_flags = INDESTRUCTIBLE diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index 8d4c3a52db3..c0a515b3646 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -375,7 +375,7 @@ **************************/ /obj/machinery/computer/supplycomp name = "Supply Shuttle Console" - desc = "Used to order supplies." + desc = "Используется для оформления заказов." icon_screen = "supply" req_access = list(ACCESS_CARGO) circuit = /obj/item/circuitboard/supplycomp @@ -388,13 +388,24 @@ /obj/machinery/computer/supplycomp/public name = "Supply Ordering Console" - desc = "Used to order supplies from cargo staff." + desc = "Используется для оформления заказов. Предназначено для общего пользования." icon = 'icons/obj/machines/computer.dmi' icon_screen = "request" circuit = /obj/item/circuitboard/ordercomp req_access = list() is_public = TRUE + +/obj/machinery/computer/supplycomp/Initialize(mapload, obj/structure/computerframe/frame) + . = ..() + + var/obj/item/circuitboard/supplycomp/my_circuit = src.frame.circuit + if(!istype(my_circuit)) + return + + can_order_contraband = my_circuit.contraband_enabled + + /obj/machinery/computer/supplycomp/attack_ai(var/mob/user as mob) return attack_hand(user) diff --git a/code/modules/shuttle/syndicate.dm b/code/modules/shuttle/syndicate.dm index 340438298a2..45084907cf7 100644 --- a/code/modules/shuttle/syndicate.dm +++ b/code/modules/shuttle/syndicate.dm @@ -65,7 +65,7 @@ /obj/machinery/computer/shuttle/sst name = "Syndicate Strike Team Shuttle Console" - desc = "Used to call and send the SST shuttle." + desc = "Используется для вызова и отправки шаттла Ударного Отряда Синдиката." icon_keyboard = "syndie_key" icon_screen = "syndishuttle" req_access = list(ACCESS_SYNDICATE) @@ -76,7 +76,7 @@ /obj/machinery/computer/shuttle/sit name = "Syndicate Infiltration Team Shuttle Console" - desc = "Used to call and send the SIT shuttle." + desc = "Используется для вызова и отправки шаттла Диверсионного Отряда Синдиката." icon_keyboard = "syndie_key" icon_screen = "syndishuttle" req_access = list(ACCESS_SYNDICATE) @@ -87,7 +87,7 @@ /obj/machinery/computer/camera_advanced/shuttle_docker/syndicate name = "syndicate shuttle navigation computer" - desc = "Used to designate a precise transit location for the syndicate shuttle." + desc = "Используется, чтобы указать точное местоположение для отправки шаттла синдиката." icon_screen = "syndinavigation" icon_keyboard = "syndie_key" shuttleId = "syndicate" @@ -107,7 +107,7 @@ /obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/sst name = "SST shuttle navigation computer" - desc = "Used to designate a precise transit location for the SST shuttle." + desc = "Используется, чтобы указать точное местоположение для отправки шаттла Ударного Отряда Синдиката." shuttleId = "sst" shuttlePortId = "sst_custom" bubble_icon = "syndibot" @@ -118,7 +118,7 @@ /obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/sit name = "SIT shuttle navigation computer" - desc = "Used to designate a precise transit location for the SIT shuttle." + desc = "Используется, чтобы указать точное местоположение для отправки шаттла Диверсионного Отряда Синдиката." shuttleId = "sit" shuttlePortId = "sit_custom" bubble_icon = "syndibot" diff --git a/code/modules/shuttle/vox.dm b/code/modules/shuttle/vox.dm index 7540725fcdb..031e1988ca4 100644 --- a/code/modules/shuttle/vox.dm +++ b/code/modules/shuttle/vox.dm @@ -8,7 +8,7 @@ /obj/machinery/computer/camera_advanced/shuttle_docker/vox name = "skipjack navigation computer" - desc = "Used to designate a precise transit location for the skipjack." + desc = "Используется, чтобы указать точное местоположение для отправки Скипджека." icon_screen = "navigation" icon_keyboard = "med_key" shuttleId = "skipjack" diff --git a/code/modules/spacepods/spacepod.dm b/code/modules/spacepods/spacepod.dm index 2419f889047..9e5855e8de9 100644 --- a/code/modules/spacepods/spacepod.dm +++ b/code/modules/spacepods/spacepod.dm @@ -601,7 +601,7 @@ equipment_system.vars[slot] = null -/obj/spacepod/hear_talk/hear_talk(mob/M, list/message_pieces) +/obj/spacepod/hear_talk(mob/M, list/message_pieces) cargo_hold.hear_talk(M, message_pieces) ..() diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm index 4c0b4316b59..e2def8c06ab 100644 --- a/code/modules/telesci/telesci_computer.dm +++ b/code/modules/telesci/telesci_computer.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/telescience name = "telepad control console" - desc = "Used to teleport objects to and from the telescience telepad." + desc = "Используется для телепортации объектов на телепад и обратно." icon_keyboard = "telesci_key" icon_screen = "telesci" circuit = /obj/item/circuitboard/telesci_console diff --git a/code/modules/w_examine/descriptions/medical.dm b/code/modules/w_examine/descriptions/medical.dm index 728a5f72c61..a85f73ef6bb 100644 --- a/code/modules/w_examine/descriptions/medical.dm +++ b/code/modules/w_examine/descriptions/medical.dm @@ -27,7 +27,7 @@ description_info = "Click your target with Grab intent, then click on the table with an empty hand, to place them on it." /obj/machinery/computer/operating - description_info = "This console gives information on the status of the patient on the adjacent operating table, notably their consciousness." + description_info = "Эта консоль выдает информацию о состоянии пациента, лежащего на соседнем операционном столе, в частности о его сознании." /obj/machinery/sleeper description_info = "The sleeper allows you to clean the blood by means of dialysis, and to administer medication in a controlled environment.
\ diff --git a/config/example/config.txt b/config/example/config.txt index e40ed4fc4a9..3c2fab540af 100644 --- a/config/example/config.txt +++ b/config/example/config.txt @@ -388,9 +388,6 @@ SOCKET_TALK 0 ## How long the delay is before the Away Mission gate opens. Default is half an hour. GATEWAY_DELAY 6000 -## Remove the # to give assistants maint access. -ASSISTANT_MAINT - ## Remove the # to enable assistant limiting. ASSISTANT_LIMIT @@ -473,18 +470,6 @@ PLAYER_REROUTE_CAP 0 ## Server to reroute to #TUTORIAL_SERVER_URL byond://example.org:1111 -## Disable the loading of away missions -#DISABLE_AWAY_MISSIONS - -## Disable the loading of space ruins -#DISABLE_SPACE_RUINS - -## Minimum number of space ruins levels to generate -EXTRA_SPACE_RUIN_LEVELS_MIN 4 - -## Maximum number of space ruins levels to generate -EXTRA_SPACE_RUIN_LEVELS_MAX 8 - ## Uncomment to disable the OOC/LOOC channel by default. #DISABLE_OOC @@ -648,7 +633,6 @@ TOPIC_FILTERING_WHITELIST 127.0.0.1 # Number of players required for automatic gamemode change to extended. Doesn't work if set to zero or commented #AUTO_EXTENDED_PLAYERS_NUM 10 - ## CPU Affinity for FFmpeg. Check out taskset man page. ## Example valid values: "0-3" or "1,4-7" #FFMPEG_CPUAFFINITY 0-3 @@ -666,21 +650,9 @@ MAP_ROTATE none ## notriples - current map can't be selected as next if played twice in a row MAP_VOTE_MODE all -## Default server map -DEFAULT_MAP /datum/map/cyberiad - -## Override server map by specified, uncomment to apply -# OVERRIDE_MAP /datum/map/delta - ## Enable animations on item pickup and drop down # ITEM_ANIMATIONS_ENABLED -## Disable the loading of "Taipan" -# DISABLE_TAIPAN - -## Disable the loading of Lavaland -# DISABLE_LAVALAND - ## If the number of players is more or same than this, then we apply the highpop jobs config. JOBS_HIGH_POP_MODE_AMOUNT 80 @@ -733,3 +705,38 @@ CACHE_ASSETS 0 ## Enable the replay demo recording subsystem #DEMOS_ENABLED + +### INITIALIZATION SETTINGS ### +## This section contains settings directly affecting initializing progress. Uncomment these to make your world load faster. + +## Loads only space without anything in station sector. Still makes landmarks for spawnpoints, though. +#LOAD_NO_STATION + +## Enables loading titlescreen only after master has been loaded. Recommended to be used on local server for faster loading. +#ENABLE_TITLESCREEN_LATELOAD + +## Disable the loading of "Taipan" +#DISABLE_TAIPAN + +## Disable the loading of Lavaland +#DISABLE_LAVALAND + +## Disable the loading of away missions +#DISABLE_AWAY_MISSIONS + +## Disable the loading of space ruins +#DISABLE_SPACE_RUINS + +## Default server map +DEFAULT_MAP /datum/map/cyberiad + +## Override server map by specified, uncomment to apply +# OVERRIDE_MAP /datum/map/delta + +## Minimum number of space ruins levels to generate +EXTRA_SPACE_RUIN_LEVELS_MIN 4 + +## Maximum number of space ruins levels to generate +EXTRA_SPACE_RUIN_LEVELS_MAX 8 + +### INITIALIZATION SETTINGS END ### diff --git a/html/changelogs/archive/2024-11.yml b/html/changelogs/archive/2024-11.yml index 399b2d34c37..f51cc549c9e 100644 --- a/html/changelogs/archive/2024-11.yml +++ b/html/changelogs/archive/2024-11.yml @@ -66,6 +66,7 @@ '2024-11-06': Antoonij: - bugfix: ash walker rituals fix (#6138) + - bugfix: some rituals fix (#6140) LiquidPotroh: - bugfix: Xeno cant evolve to queen (#6136) PlayerUnknown14: @@ -73,5 +74,32 @@ - bugfix: RD doll now works properly (#6106) Vladisvell: - bugfix: Fixed headphones not unable to play songs (#6139) + - bugfix: Wooden wall creation fix (#6141) + - bugfix: Syndicate turrets are now dense (#6142) userbaza: - add: cloth footwraps now paintable, craftable and edible (#6042) +'2024-11-07': + Anorak2020: + - add: vampire sucking effects (#6029) + KefirTT: + - bugfix: singularity hammer no longer pulling ghosts (#6143) +'2024-11-09': + Vitalya: + - bugfix: Wryn hair color change (#6152) + Vladisvell: + - bugfix: Removes density on syndicate turret upon destruction (#6146) + - add: Titlescreen optimization for dreamseeker debug mode (#6148) + - bugfix: Setups Malfunctioning AI as a special role to prevent double antaging + (#6151) +'2024-11-11': + Den109G: + - bugfix: Now clock-structure can disguise (#6156) + Mahimka42: + - add: New robust security backpack (#6135) + - tweak: 30 bullets instead 20 in 10mm ammo box. (#6163) + PlayerUnknown14: + - add: warden got more access (#6157) + - add: Security tactical flashlight (#5948) + - balance: maintenance tunnels access for everyone (#6158) + Vitalya: + - imageadd: New sprites for some Wryn masks (#6144) diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi index af13248a790..90f04c72f47 100644 Binary files a/icons/mob/clothing/back.dmi and b/icons/mob/clothing/back.dmi differ diff --git a/icons/mob/clothing/ears.dmi b/icons/mob/clothing/ears.dmi index 3e55861f85f..9ca38ef1ffc 100644 Binary files a/icons/mob/clothing/ears.dmi and b/icons/mob/clothing/ears.dmi differ diff --git a/icons/mob/clothing/eyes.dmi b/icons/mob/clothing/eyes.dmi index a81bb67f4cc..51663306455 100644 Binary files a/icons/mob/clothing/eyes.dmi and b/icons/mob/clothing/eyes.dmi differ diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index a4ce834cfae..f23e7b7b571 100644 Binary files a/icons/mob/clothing/head.dmi and b/icons/mob/clothing/head.dmi differ diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi index 01610a5ad16..6b9d1561c55 100644 Binary files a/icons/mob/clothing/mask.dmi and b/icons/mob/clothing/mask.dmi differ diff --git a/icons/mob/clothing/species/drask/eyes.dmi b/icons/mob/clothing/species/drask/eyes.dmi index 60a461bc9f1..be1c5fb2feb 100644 Binary files a/icons/mob/clothing/species/drask/eyes.dmi and b/icons/mob/clothing/species/drask/eyes.dmi differ diff --git a/icons/mob/clothing/species/drask/mask.dmi b/icons/mob/clothing/species/drask/mask.dmi index db26ee4b53f..660fb46bf32 100644 Binary files a/icons/mob/clothing/species/drask/mask.dmi and b/icons/mob/clothing/species/drask/mask.dmi differ diff --git a/icons/mob/clothing/species/drask/uniform.dmi b/icons/mob/clothing/species/drask/uniform.dmi index 0587606747c..1f6fdff6a7d 100644 Binary files a/icons/mob/clothing/species/drask/uniform.dmi and b/icons/mob/clothing/species/drask/uniform.dmi differ diff --git a/icons/mob/clothing/species/grey/back.dmi b/icons/mob/clothing/species/grey/back.dmi index 1ad5b9b9dcd..d20e8ac2174 100644 Binary files a/icons/mob/clothing/species/grey/back.dmi and b/icons/mob/clothing/species/grey/back.dmi differ diff --git a/icons/mob/clothing/species/grey/eyes.dmi b/icons/mob/clothing/species/grey/eyes.dmi index 06aff6f9fc6..f11289d5700 100644 Binary files a/icons/mob/clothing/species/grey/eyes.dmi and b/icons/mob/clothing/species/grey/eyes.dmi differ diff --git a/icons/mob/clothing/species/grey/mask.dmi b/icons/mob/clothing/species/grey/mask.dmi index 82c9d36ff3b..d37f75a4188 100644 Binary files a/icons/mob/clothing/species/grey/mask.dmi and b/icons/mob/clothing/species/grey/mask.dmi differ diff --git a/icons/mob/clothing/species/grey/uniform.dmi b/icons/mob/clothing/species/grey/uniform.dmi index 11d5f99cc0c..658469a9729 100644 Binary files a/icons/mob/clothing/species/grey/uniform.dmi and b/icons/mob/clothing/species/grey/uniform.dmi differ diff --git a/icons/mob/clothing/species/kidan/mask.dmi b/icons/mob/clothing/species/kidan/mask.dmi index 84a66775738..7033701c293 100644 Binary files a/icons/mob/clothing/species/kidan/mask.dmi and b/icons/mob/clothing/species/kidan/mask.dmi differ diff --git a/icons/mob/clothing/species/kidan/uniform.dmi b/icons/mob/clothing/species/kidan/uniform.dmi index 72b43ba157c..097f2317a1f 100644 Binary files a/icons/mob/clothing/species/kidan/uniform.dmi and b/icons/mob/clothing/species/kidan/uniform.dmi differ diff --git a/icons/mob/clothing/species/monkey/ears.dmi b/icons/mob/clothing/species/monkey/ears.dmi index b55a433dfb3..fe201b6c978 100644 Binary files a/icons/mob/clothing/species/monkey/ears.dmi and b/icons/mob/clothing/species/monkey/ears.dmi differ diff --git a/icons/mob/clothing/species/monkey/eyes.dmi b/icons/mob/clothing/species/monkey/eyes.dmi index e93142f8d2d..c9fcd0ea96b 100644 Binary files a/icons/mob/clothing/species/monkey/eyes.dmi and b/icons/mob/clothing/species/monkey/eyes.dmi differ diff --git a/icons/mob/clothing/species/monkey/head.dmi b/icons/mob/clothing/species/monkey/head.dmi index e8c793b66d4..2e8e4278b5c 100644 Binary files a/icons/mob/clothing/species/monkey/head.dmi and b/icons/mob/clothing/species/monkey/head.dmi differ diff --git a/icons/mob/clothing/species/monkey/mask.dmi b/icons/mob/clothing/species/monkey/mask.dmi index c37c41b35a1..86a0dfe6782 100644 Binary files a/icons/mob/clothing/species/monkey/mask.dmi and b/icons/mob/clothing/species/monkey/mask.dmi differ diff --git a/icons/mob/clothing/species/monkey/uniform.dmi b/icons/mob/clothing/species/monkey/uniform.dmi index 8a5662bdb82..92b316f6b58 100644 Binary files a/icons/mob/clothing/species/monkey/uniform.dmi and b/icons/mob/clothing/species/monkey/uniform.dmi differ diff --git a/icons/mob/clothing/species/tajaran/mask.dmi b/icons/mob/clothing/species/tajaran/mask.dmi index 90b55d2fb79..c49c4cad2e2 100644 Binary files a/icons/mob/clothing/species/tajaran/mask.dmi and b/icons/mob/clothing/species/tajaran/mask.dmi differ diff --git a/icons/mob/clothing/species/unathi/mask.dmi b/icons/mob/clothing/species/unathi/mask.dmi index 9802caa3ac1..30603327337 100644 Binary files a/icons/mob/clothing/species/unathi/mask.dmi and b/icons/mob/clothing/species/unathi/mask.dmi differ diff --git a/icons/mob/clothing/species/unathi/uniform.dmi b/icons/mob/clothing/species/unathi/uniform.dmi index 517883bb747..1025d3ad9b4 100644 Binary files a/icons/mob/clothing/species/unathi/uniform.dmi and b/icons/mob/clothing/species/unathi/uniform.dmi differ diff --git a/icons/mob/clothing/species/vox/back.dmi b/icons/mob/clothing/species/vox/back.dmi index 8274c45cb9c..8d1f48dd247 100644 Binary files a/icons/mob/clothing/species/vox/back.dmi and b/icons/mob/clothing/species/vox/back.dmi differ diff --git a/icons/mob/clothing/species/vox/ears.dmi b/icons/mob/clothing/species/vox/ears.dmi index 5168e567419..b19672c81b2 100644 Binary files a/icons/mob/clothing/species/vox/ears.dmi and b/icons/mob/clothing/species/vox/ears.dmi differ diff --git a/icons/mob/clothing/species/vox/mask.dmi b/icons/mob/clothing/species/vox/mask.dmi index 173b80e41df..c9b3313b256 100644 Binary files a/icons/mob/clothing/species/vox/mask.dmi and b/icons/mob/clothing/species/vox/mask.dmi differ diff --git a/icons/mob/clothing/species/vox/uniform.dmi b/icons/mob/clothing/species/vox/uniform.dmi index 80fa00c2d0b..b14c90995d9 100644 Binary files a/icons/mob/clothing/species/vox/uniform.dmi and b/icons/mob/clothing/species/vox/uniform.dmi differ diff --git a/icons/mob/clothing/species/vulpkanin/mask.dmi b/icons/mob/clothing/species/vulpkanin/mask.dmi index 802d3b337a5..47d16389a72 100644 Binary files a/icons/mob/clothing/species/vulpkanin/mask.dmi and b/icons/mob/clothing/species/vulpkanin/mask.dmi differ diff --git a/icons/mob/clothing/species/wryn/mask.dmi b/icons/mob/clothing/species/wryn/mask.dmi index 5e72a8730da..bfd77b02ea5 100644 Binary files a/icons/mob/clothing/species/wryn/mask.dmi and b/icons/mob/clothing/species/wryn/mask.dmi differ diff --git a/icons/mob/clothing/species/wryn/uniform.dmi b/icons/mob/clothing/species/wryn/uniform.dmi index f676a5dbee3..2434e25e4ba 100644 Binary files a/icons/mob/clothing/species/wryn/uniform.dmi and b/icons/mob/clothing/species/wryn/uniform.dmi differ diff --git a/icons/mob/clothing/uniform.dmi b/icons/mob/clothing/uniform.dmi index 10209a3ca4f..541ef5f85e6 100644 Binary files a/icons/mob/clothing/uniform.dmi and b/icons/mob/clothing/uniform.dmi differ diff --git a/icons/mob/inhands/clothing_lefthand.dmi b/icons/mob/inhands/clothing_lefthand.dmi index f9f9153edb0..b7af09ade06 100644 Binary files a/icons/mob/inhands/clothing_lefthand.dmi and b/icons/mob/inhands/clothing_lefthand.dmi differ diff --git a/icons/mob/inhands/clothing_righthand.dmi b/icons/mob/inhands/clothing_righthand.dmi index 11b0fac7bfa..10fc756e2aa 100644 Binary files a/icons/mob/inhands/clothing_righthand.dmi and b/icons/mob/inhands/clothing_righthand.dmi differ diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index 52633664fcb..5f35327a3f3 100755 Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi index f5d66841c1d..004891ea390 100755 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ diff --git a/icons/mob/inhands/mobs_lefthand.dmi b/icons/mob/inhands/mobs_lefthand.dmi index d3703b56297..efc6a7c8aaf 100644 Binary files a/icons/mob/inhands/mobs_lefthand.dmi and b/icons/mob/inhands/mobs_lefthand.dmi differ diff --git a/icons/mob/inhands/mobs_righthand.dmi b/icons/mob/inhands/mobs_righthand.dmi index be4a567b689..16df4461689 100644 Binary files a/icons/mob/inhands/mobs_righthand.dmi and b/icons/mob/inhands/mobs_righthand.dmi differ diff --git a/icons/mob/sprite_accessories/human/human_hair.dmi b/icons/mob/sprite_accessories/human/human_hair.dmi index 176ea1ab05e..682ec55eca8 100644 Binary files a/icons/mob/sprite_accessories/human/human_hair.dmi and b/icons/mob/sprite_accessories/human/human_hair.dmi differ diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi index 174e2a4ad1c..8c295e91da4 100644 Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 93a943f6ca5..eea75185ce8 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index 2d41b6601c4..c7a07b5ee80 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index ba6ae22135e..5b7418245a6 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/decals.dmi b/icons/obj/decals.dmi index a6072426b39..2552e6f9aae 100644 Binary files a/icons/obj/decals.dmi and b/icons/obj/decals.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index c0a9462559a..0d3952efe29 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/janitor.dmi b/icons/obj/janitor.dmi index f97f776b592..b9cee7e6acf 100644 Binary files a/icons/obj/janitor.dmi and b/icons/obj/janitor.dmi differ diff --git a/icons/obj/lighting.dmi b/icons/obj/lighting.dmi index 8b853ba2bc8..ceb86c0667b 100644 Binary files a/icons/obj/lighting.dmi and b/icons/obj/lighting.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index f26aa801de5..f928128df10 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/icons/obj/weapons/energy.dmi b/icons/obj/weapons/energy.dmi index 459a68a74cc..76045167bac 100644 Binary files a/icons/obj/weapons/energy.dmi and b/icons/obj/weapons/energy.dmi differ diff --git a/paradise.dme b/paradise.dme index 85c7ad843a5..d07486cf3fa 100644 --- a/paradise.dme +++ b/paradise.dme @@ -39,7 +39,6 @@ #include "code\__DEFINES\blob.dm" #include "code\__DEFINES\borer.dm" #include "code\__DEFINES\bots.dm" -#include "code\__DEFINES\rituals.dm" #include "code\__DEFINES\byond_tracy.dm" #include "code\__DEFINES\callbacks.dm" #include "code\__DEFINES\cargo_quests.dm" @@ -115,6 +114,7 @@ #include "code\__DEFINES\RCD.dm" #include "code\__DEFINES\reagents.dm" #include "code\__DEFINES\request.dm" +#include "code\__DEFINES\rituals.dm" #include "code\__DEFINES\role_preferences.dm" #include "code\__DEFINES\rolebans.dm" #include "code\__DEFINES\rust_g.dm" @@ -368,7 +368,6 @@ #include "code\controllers\subsystem\tickets\mentor_tickets.dm" #include "code\controllers\subsystem\tickets\tickets.dm" #include "code\datums\action.dm" -#include "code\datums\rituals.dm" #include "code\datums\ai_law_sets.dm" #include "code\datums\ai_laws.dm" #include "code\datums\armor.dm" @@ -404,6 +403,7 @@ #include "code\datums\radio.dm" #include "code\datums\recipe.dm" #include "code\datums\revision.dm" +#include "code\datums\rituals.dm" #include "code\datums\ruins.dm" #include "code\datums\shuttles.dm" #include "code\datums\snake_fashion.dm" @@ -424,12 +424,12 @@ #include "code\datums\cache\powermonitor.dm" #include "code\datums\changelog\changelog.dm" #include "code\datums\cinematics\cinematic_datum.dm" +#include "code\datums\cinematics\kharin_summon.dm" #include "code\datums\cinematics\malf_doomsday.dm" #include "code\datums\cinematics\narsie_summon.dm" -#include "code\datums\cinematics\kharin_summon.dm" +#include "code\datums\cinematics\nuke_cinematics.dm" #include "code\datums\cinematics\ratvar_summon.dm" #include "code\datums\cinematics\reaper_summon.dm" -#include "code\datums\cinematics\nuke_cinematics.dm" #include "code\datums\components\_component.dm" #include "code\datums\components\after_attacks_hub.dm" #include "code\datums\components\animal_temperature.dm" @@ -446,7 +446,6 @@ #include "code\datums\components\conveyor_movement.dm" #include "code\datums\components\cross_shock.dm" #include "code\datums\components\decal.dm" -#include "code\datums\components\ritual_object.dm" #include "code\datums\components\defibrillator.dm" #include "code\datums\components\drift.dm" #include "code\datums\components\ducttape.dm" @@ -465,6 +464,7 @@ #include "code\datums\components\persistent_overlay.dm" #include "code\datums\components\proximity_monitor.dm" #include "code\datums\components\radioactivity.dm" +#include "code\datums\components\ritual_object.dm" #include "code\datums\components\shielded.dm" #include "code\datums\components\slippery.dm" #include "code\datums\components\spawner.dm" @@ -3140,7 +3140,6 @@ #include "code\modules\tgui\plugins\modal.dm" #include "code\modules\tgui\states\admin.dm" #include "code\modules\tgui\states\always.dm" -#include "code\modules\tgui\states\range.dm" #include "code\modules\tgui\states\conscious.dm" #include "code\modules\tgui\states\contained.dm" #include "code\modules\tgui\states\deep_inventory.dm" @@ -3152,6 +3151,7 @@ #include "code\modules\tgui\states\notcontained.dm" #include "code\modules\tgui\states\observer.dm" #include "code\modules\tgui\states\physical.dm" +#include "code\modules\tgui\states\range.dm" #include "code\modules\tgui\states\self.dm" #include "code\modules\tgui\states\strippable_state.dm" #include "code\modules\tgui\states\zlevel.dm" diff --git a/tools/ttsServer/requirements.txt b/tools/ttsServer/requirements.txt index 7f866871aa7..a1b5f9126a3 100644 --- a/tools/ttsServer/requirements.txt +++ b/tools/ttsServer/requirements.txt @@ -1,6 +1,7 @@ -torch -torchaudio -torchvision -soundfile -pydub -flask \ No newline at end of file +torch==2.0.1 +torchaudio==2.0.2 +torchvision==0.15.2 +soundfile==0.12.1 +pydub==0.25.1 +Flask==2.2.5 +numpy==1.26.4 \ No newline at end of file