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