diff --git a/_maps/map_files/Deltastation/DeltaStation2_bubber.dmm b/_maps/map_files/Deltastation/DeltaStation2_bubber.dmm
index bf7a52a08f2..763be344b09 100644
--- a/_maps/map_files/Deltastation/DeltaStation2_bubber.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2_bubber.dmm
@@ -82188,6 +82188,15 @@
/obj/effect/turf_decal/siding/wood{
dir = 4
},
+/mob/living/simple_animal/pet/cat{
+ desc = "Their name is pancake! They're very social, snuggly, and a bit dumb... But nonetheless, a good cat!";
+ icon = 'modular_zubbers/icons/mob/simple/pets.dmi';
+ icon_dead = "pancake_dead";
+ icon_living = "pancake";
+ icon_state = "pancake";
+ minbodytemp = 0;
+ name = "Pancake"
+ },
/turf/open/floor/wood/large,
/area/station/medical/psychology)
"tUR" = (
diff --git a/_maps/map_files/IceBoxStation/IceBoxStation_bubber.dmm b/_maps/map_files/IceBoxStation/IceBoxStation_bubber.dmm
index 9fb6142d140..d88d22b36f0 100644
--- a/_maps/map_files/IceBoxStation/IceBoxStation_bubber.dmm
+++ b/_maps/map_files/IceBoxStation/IceBoxStation_bubber.dmm
@@ -58181,6 +58181,14 @@
"ryu" = (
/turf/open/floor/iron/dark/textured,
/area/station/security/execution/transfer)
+"ryv" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/vending/dorms,
+/turf/open/floor/iron,
+/area/station/commons/dorms)
"ryC" = (
/obj/structure/cable,
/obj/structure/fence/door/opened,
@@ -64282,7 +64290,7 @@
/area/station/medical/chemistry)
"ttk" = (
/obj/effect/spawner/random/structure/girder{
- loot = list(/obj/structure/falsewall = 50, /turf/closed/wall = 50);
+ loot = list(/obj/structure/falsewall=50,/turf/closed/wall=50);
name = "falsewall or wall spawner"
},
/obj/machinery/duct,
@@ -66795,6 +66803,18 @@
/obj/structure/sign/warning/docking/directional/south,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"uen" = (
+/mob/living/simple_animal/pet/cat{
+ desc = "Their name is pancake! They're very social, snuggly, and a bit dumb... But nonetheless, a good cat!";
+ icon = 'modular_zubbers/icons/mob/simple/pets.dmi';
+ icon_dead = "pancake_dead";
+ icon_living = "pancake";
+ icon_state = "pancake";
+ minbodytemp = 0;
+ name = "Pancake"
+ },
+/turf/open/floor/carpet/blue,
+/area/station/medical/psychology)
"ueo" = (
/obj/machinery/light/warm/directional/south,
/obj/structure/cable,
@@ -73989,7 +74009,7 @@
/area/station/security/prison/workout)
"wlY" = (
/obj/effect/spawner/random/structure/girder{
- loot = list(/obj/structure/falsewall = 50, /turf/closed/wall = 50);
+ loot = list(/obj/structure/falsewall=50,/turf/closed/wall=50);
name = "falsewall or wall spawner"
},
/turf/open/floor/plating,
@@ -75978,7 +75998,7 @@
desc = "A well-stocked supply point full of robust tools to protect one's virginity whilst incarcerated.";
extra_price = 40;
name = "\improper Prison Tabletop Society";
- premium = list(/obj/item/pen/fourcolor = 5, /obj/item/rcl = 2, /obj/item/toy/crayon/spraycan = 2, /obj/item/clothing/shoes/wheelys/rollerskates = 3, /obj/item/melee/skateboard = 1);
+ premium = list(/obj/item/pen/fourcolor=5,/obj/item/rcl=2,/obj/item/toy/crayon/spraycan=2,/obj/item/clothing/shoes/wheelys/rollerskates=3,/obj/item/melee/skateboard=1);
product_ads = "Protect your virginity today!;You're already in security's dungeon, now all you need are dragons, and dice!;Either come play some Space Catan, or Chad is going to show you who's the boss of the prison gym again!;Want to be a powergaming fuck AND not get banned? Try TTRPGs today!"
},
/turf/open/floor/iron/dark/textured,
@@ -80536,7 +80556,7 @@
/area/station/medical/medbay/central)
"yiL" = (
/obj/effect/spawner/random/structure/girder{
- loot = list(/obj/structure/falsewall = 50, /turf/closed/wall = 50);
+ loot = list(/obj/structure/falsewall=50,/turf/closed/wall=50);
name = "falsewall or wall spawner"
},
/turf/open/floor/plating,
@@ -244030,7 +244050,7 @@ jsX
lLf
asa
kCu
-iXK
+ryv
uja
ewd
ehm
@@ -251283,7 +251303,7 @@ iML
nHX
hRA
qAO
-rkL
+uen
uFz
kJC
sZF
diff --git a/_maps/map_files/MetaStation/MetaStation_bubber.dmm b/_maps/map_files/MetaStation/MetaStation_bubber.dmm
index 2abbe1b900e..4889ce58390 100644
--- a/_maps/map_files/MetaStation/MetaStation_bubber.dmm
+++ b/_maps/map_files/MetaStation/MetaStation_bubber.dmm
@@ -21043,7 +21043,7 @@
/area/station/science/research)
"hCZ" = (
/obj/effect/spawner/random/structure/girder{
- loot = list(/obj/structure/falsewall = 50, /turf/closed/wall = 50);
+ loot = list(/obj/structure/falsewall=50,/turf/closed/wall=50);
name = "falsewall or wall spawner"
},
/turf/open/floor/plating,
@@ -35272,7 +35272,7 @@
/area/station/service/hydroponics/garden)
"mou" = (
/obj/effect/spawner/random/structure/girder{
- loot = list(/obj/structure/falsewall = 50, /turf/closed/wall = 50);
+ loot = list(/obj/structure/falsewall=50,/turf/closed/wall=50);
name = "falsewall or wall spawner"
},
/turf/open/floor/plating,
@@ -36437,6 +36437,18 @@
/obj/effect/spawner/random/engineering/atmospherics_portable,
/turf/open/floor/plating,
/area/station/maintenance/aft/lesser)
+"mGK" = (
+/obj/effect/turf_decal/tile/blue/anticorner/contrasted{
+ dir = 8
+ },
+/obj/structure/table/glass,
+/obj/machinery/fax{
+ fax_name = "Bridge";
+ name = "Bridge Fax Machine";
+ pixel_y = 3
+ },
+/turf/open/floor/iron/dark,
+/area/station/command/bridge)
"mGX" = (
/obj/structure/cable,
/obj/structure/disposalpipe/segment{
@@ -43901,7 +43913,7 @@
extra_price = 10;
fair_market_price = 10;
name = "\improper Warden's Hot Drinks";
- premium = list(/obj/item/seeds/coffee = 2, /obj/item/seeds/coffee/robusta = 2, /obj/item/seeds/tea = 2)
+ premium = list(/obj/item/seeds/coffee=2,/obj/item/seeds/coffee/robusta=2,/obj/item/seeds/tea=2)
},
/turf/open/floor/iron/dark,
/area/station/security/prison/rec)
@@ -45807,7 +45819,7 @@
desc = "A well-stocked supply point full of robust tools to protect one's virginity whilst incarcerated.";
extra_price = 40;
name = "\improper Prison Tabletop Society";
- premium = list(/obj/item/pen/fourcolor = 5, /obj/item/rcl = 2, /obj/item/toy/crayon/spraycan = 2, /obj/item/clothing/shoes/wheelys/rollerskates = 3, /obj/item/melee/skateboard = 1);
+ premium = list(/obj/item/pen/fourcolor=5,/obj/item/rcl=2,/obj/item/toy/crayon/spraycan=2,/obj/item/clothing/shoes/wheelys/rollerskates=3,/obj/item/melee/skateboard=1);
product_ads = "Protect your virginity today!;You're already in security's dungeon, now all you need are dragons, and dice!;Either come play some Space Catan, or Chad is going to show you who's the boss of the prison gym again!;Want to be a powergaming fuck AND not get banned? Try TTRPGs today!"
},
/obj/structure/cable,
@@ -58183,7 +58195,7 @@
/area/station/security/prison/safe)
"tYo" = (
/obj/effect/spawner/random/structure/girder{
- loot = list(/obj/structure/falsewall = 50, /turf/closed/wall = 50);
+ loot = list(/obj/structure/falsewall=50,/turf/closed/wall=50);
name = "falsewall or wall spawner"
},
/turf/open/floor/plating,
@@ -62072,6 +62084,15 @@
/obj/effect/turf_decal/siding/wood{
dir = 8
},
+/mob/living/simple_animal/pet/cat{
+ desc = "Their name is pancake! They're very social, snuggly, and a bit dumb... But nonetheless, a good cat!";
+ icon = 'modular_zubbers/icons/mob/simple/pets.dmi';
+ icon_dead = "pancake_dead";
+ icon_living = "pancake";
+ icon_state = "pancake";
+ minbodytemp = 0;
+ name = "Pancake"
+ },
/turf/open/floor/wood/parquet,
/area/station/medical/psychology)
"vnZ" = (
@@ -65875,7 +65896,7 @@
/area/station/maintenance/starboard/lesser)
"wFY" = (
/obj/effect/spawner/random/structure/girder{
- loot = list(/obj/structure/falsewall = 50, /turf/closed/wall = 50);
+ loot = list(/obj/structure/falsewall=50,/turf/closed/wall=50);
name = "falsewall or wall spawner"
},
/turf/open/floor/plating,
@@ -98728,7 +98749,7 @@ qkA
dUj
qVc
wNh
-veO
+mGK
hXK
duI
duI
diff --git a/_maps/map_files/VoidRaptor/VoidRaptor_bubber.dmm b/_maps/map_files/VoidRaptor/VoidRaptor_bubber.dmm
index 072af941363..c4e97076447 100644
--- a/_maps/map_files/VoidRaptor/VoidRaptor_bubber.dmm
+++ b/_maps/map_files/VoidRaptor/VoidRaptor_bubber.dmm
@@ -76317,8 +76317,16 @@
dir = 9
},
/obj/structure/bed/dogbed{
- anchored = 1;
- name = "Tom's bed"
+ name = "Pancake's bed"
+ },
+/mob/living/simple_animal/pet/cat{
+ desc = "Their name is pancake! They're very social, snuggly, and a bit dumb... But nonetheless, a good cat!";
+ icon = 'modular_zubbers/icons/mob/simple/pets.dmi';
+ icon_dead = "pancake_dead";
+ icon_living = "pancake";
+ icon_state = "pancake";
+ minbodytemp = 0;
+ name = "Pancake"
},
/turf/open/floor/carpet,
/area/station/medical/psychology)
diff --git a/_maps/map_files/tramstation/maintenance_modules/dormenginelower_1.dmm b/_maps/map_files/tramstation/maintenance_modules/dormenginelower_1.dmm
index da87acb2980..518d91104db 100644
--- a/_maps/map_files/tramstation/maintenance_modules/dormenginelower_1.dmm
+++ b/_maps/map_files/tramstation/maintenance_modules/dormenginelower_1.dmm
@@ -303,12 +303,6 @@
/obj/modular_map_connector,
/turf/template_noop,
/area/template_noop)
-"rK" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/rack,
-/obj/effect/spawner/random/food_or_drink/cups,
-/turf/open/floor/iron/smooth,
-/area/station/maintenance/department/crew_quarters/dorms)
"rO" = (
/obj/machinery/light/small/directional/east,
/obj/effect/decal/cleanable/dirt,
@@ -402,11 +396,6 @@
/obj/effect/spawner/random/engineering/tool,
/turf/open/floor/iron/smooth,
/area/station/maintenance/central/lesser)
-"xp" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable,
-/turf/open/floor/catwalk_floor,
-/area/station/maintenance/department/crew_quarters/dorms)
"xW" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/disposalpipe/segment{
@@ -432,12 +421,6 @@
/obj/effect/spawner/random/trash/janitor_supplies,
/turf/open/floor/iron/smooth,
/area/station/maintenance/department/crew_quarters/dorms)
-"yN" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/table,
-/obj/effect/spawner/random/food_or_drink/booze,
-/turf/open/floor/iron/smooth,
-/area/station/maintenance/department/crew_quarters/dorms)
"zt" = (
/obj/machinery/door/airlock/maintenance_hatch{
name = "Maintenance Hatch"
@@ -637,14 +620,6 @@
/obj/item/stack/cable_coil/five,
/turf/open/misc/asteroid,
/area/station/maintenance/central/lesser)
-"Ml" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/button/door/directional/south{
- id = "maintprivacyurdumb";
- name = "Privacy Shutters"
- },
-/turf/open/floor/iron/smooth,
-/area/station/maintenance/department/crew_quarters/dorms)
"Mq" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/railing,
@@ -752,12 +727,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/catwalk_floor,
/area/station/maintenance/central/lesser)
-"RS" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/table,
-/obj/effect/spawner/random/engineering/flashlight,
-/turf/open/floor/iron/smooth,
-/area/station/maintenance/department/crew_quarters/dorms)
"Sa" = (
/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
/obj/effect/decal/cleanable/dirt,
@@ -1904,10 +1873,10 @@ AN
AN
AN
AN
-DP
-Mr
-RS
-NT
+AN
+AN
+AN
+AN
"}
(30,1,1) = {"
AN
@@ -1940,10 +1909,10 @@ AN
AN
AN
AN
-DP
-Mr
-yN
-NT
+AN
+AN
+AN
+AN
"}
(31,1,1) = {"
AN
@@ -1976,10 +1945,10 @@ AN
AN
AN
AN
-DP
-Mr
-rK
-NT
+AN
+AN
+AN
+AN
"}
(32,1,1) = {"
AN
@@ -2012,10 +1981,10 @@ AN
AN
AN
AN
-xp
-Mr
-Ml
-NT
+AN
+AN
+AN
+AN
"}
(33,1,1) = {"
AN
@@ -2048,10 +2017,10 @@ AN
AN
AN
AN
-DP
-Mr
-DP
-NT
+AN
+AN
+AN
+AN
"}
(34,1,1) = {"
AN
@@ -2084,10 +2053,10 @@ AN
AN
AN
AN
-DP
-Mr
-DP
-NT
+AN
+AN
+AN
+AN
"}
(35,1,1) = {"
AN
@@ -2120,10 +2089,10 @@ AN
AN
AN
AN
-DP
-Mr
-DP
-NT
+AN
+AN
+AN
+AN
"}
(36,1,1) = {"
AN
diff --git a/_maps/map_files/tramstation/maintenance_modules/dormenginelower_2.dmm b/_maps/map_files/tramstation/maintenance_modules/dormenginelower_2.dmm
index e2845b4169b..be285161ff3 100644
--- a/_maps/map_files/tramstation/maintenance_modules/dormenginelower_2.dmm
+++ b/_maps/map_files/tramstation/maintenance_modules/dormenginelower_2.dmm
@@ -187,13 +187,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/catwalk_floor,
/area/station/maintenance/central/lesser)
-"id" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sink/directional/south,
-/obj/structure/mirror/directional/north,
-/obj/item/soap/nanotrasen,
-/turf/open/floor/iron/smooth,
-/area/station/maintenance/department/crew_quarters/dorms)
"jG" = (
/obj/effect/turf_decal/sand/plating,
/obj/effect/mapping_helpers/broken_floor,
@@ -372,11 +365,6 @@
/obj/structure/holosign/barrier/engineering,
/turf/open/floor/iron/freezer,
/area/template_noop)
-"qW" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable,
-/turf/open/floor/catwalk_floor,
-/area/station/maintenance/department/crew_quarters/dorms)
"ro" = (
/obj/item/stack/ore/iron,
/turf/open/misc/asteroid/airless,
@@ -612,11 +600,6 @@
/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
/turf/open/floor/iron/smooth,
/area/station/maintenance/department/crew_quarters/dorms)
-"Dz" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/random/engineering/canister,
-/turf/open/floor/iron/smooth,
-/area/station/maintenance/department/crew_quarters/dorms)
"DP" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/smooth,
@@ -2078,10 +2061,10 @@ AN
AN
AN
AN
-MR
-NT
-DP
-NT
+AN
+AN
+AN
+AN
"}
(30,1,1) = {"
AN
@@ -2114,10 +2097,10 @@ AN
AN
AN
AN
-MR
-NT
-id
-NT
+AN
+AN
+AN
+AN
"}
(31,1,1) = {"
AN
@@ -2150,10 +2133,10 @@ AN
AN
AN
AN
-MR
-NT
-NT
-NT
+AN
+AN
+AN
+AN
"}
(32,1,1) = {"
AN
@@ -2186,10 +2169,10 @@ AN
AN
AN
AN
-MR
-qW
-NT
-gs
+AN
+AN
+AN
+AN
"}
(33,1,1) = {"
AN
@@ -2222,10 +2205,10 @@ AN
AN
AN
AN
-MR
-DP
-NT
-gs
+AN
+AN
+AN
+AN
"}
(34,1,1) = {"
AN
@@ -2258,10 +2241,10 @@ AN
AN
AN
AN
-MR
-Go
-NT
-gs
+AN
+AN
+AN
+AN
"}
(35,1,1) = {"
AN
@@ -2294,10 +2277,10 @@ AN
AN
AN
AN
-MR
-Dz
-NT
-gs
+AN
+AN
+AN
+AN
"}
(36,1,1) = {"
AN
diff --git a/_maps/map_files/tramstation/maintenance_modules/dormenginelower_3.dmm b/_maps/map_files/tramstation/maintenance_modules/dormenginelower_3.dmm
index a354f77eefb..0df10648007 100644
--- a/_maps/map_files/tramstation/maintenance_modules/dormenginelower_3.dmm
+++ b/_maps/map_files/tramstation/maintenance_modules/dormenginelower_3.dmm
@@ -164,11 +164,6 @@
/obj/effect/spawner/random/trash/janitor_supplies,
/turf/open/floor/iron/smooth,
/area/station/maintenance/department/crew_quarters/dorms)
-"nf" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable,
-/turf/open/floor/catwalk_floor,
-/area/station/maintenance/department/crew_quarters/dorms)
"ny" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -1807,10 +1802,10 @@ AN
AN
AN
AN
-IN
-DP
-NT
-gs
+AN
+AN
+AN
+AN
"}
(30,1,1) = {"
AN
@@ -1843,10 +1838,10 @@ AN
AN
AN
AN
-IN
-DP
-NT
-gs
+AN
+AN
+AN
+AN
"}
(31,1,1) = {"
AN
@@ -1879,10 +1874,10 @@ AN
AN
AN
AN
-IN
-DP
-NT
-gs
+AN
+AN
+AN
+AN
"}
(32,1,1) = {"
AN
@@ -1915,10 +1910,10 @@ AN
AN
AN
AN
-IN
-nf
-NT
-gs
+AN
+AN
+AN
+AN
"}
(33,1,1) = {"
AN
@@ -1951,10 +1946,10 @@ AN
AN
AN
AN
-IN
-DP
-NT
-gs
+AN
+AN
+AN
+AN
"}
(34,1,1) = {"
AN
@@ -1987,10 +1982,10 @@ AN
AN
AN
AN
-IN
-DP
-NT
-gs
+AN
+AN
+AN
+AN
"}
(35,1,1) = {"
AN
@@ -2023,10 +2018,10 @@ AN
AN
AN
AN
-IN
-DP
-NT
-gs
+AN
+AN
+AN
+AN
"}
(36,1,1) = {"
AN
diff --git a/_maps/map_files/tramstation/tramstation_bubber.dmm b/_maps/map_files/tramstation/tramstation_bubber.dmm
index 49ea0413d8a..679edc35084 100644
--- a/_maps/map_files/tramstation/tramstation_bubber.dmm
+++ b/_maps/map_files/tramstation/tramstation_bubber.dmm
@@ -2136,14 +2136,24 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/railing,
/turf/open/openspace,
/area/station/asteroid)
"afB" = (
-/obj/structure/lattice/catwalk,
/obj/structure/railing/corner,
+/obj/structure/lattice/catwalk,
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/railing/corner{
+ dir = 8
+ },
/turf/open/openspace,
/area/station/asteroid)
"afC" = (
@@ -2152,6 +2162,12 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/obj/structure/railing/corner{
+ dir = 4
+ },
/turf/open/openspace,
/area/station/asteroid)
"afD" = (
@@ -2162,6 +2178,10 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/railing/corner,
/turf/open/openspace,
/area/station/asteroid)
"afE" = (
@@ -2333,6 +2353,7 @@
/area/station/asteroid)
"age" = (
/obj/structure/lattice/catwalk,
+/obj/structure/railing,
/turf/open/openspace,
/area/station/asteroid)
"agf" = (
@@ -2354,6 +2375,10 @@
/obj/structure/railing/corner{
dir = 1
},
+/obj/structure/railing,
+/obj/structure/railing/corner{
+ dir = 4
+ },
/turf/open/openspace,
/area/station/asteroid)
"agi" = (
@@ -2965,6 +2990,7 @@
/obj/machinery/door/poddoor/massdriver_trash{
id = "fortnitedoor"
},
+/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/station/maintenance/disposal)
"ajc" = (
@@ -4023,9 +4049,17 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/engineering/main)
+"aqS" = (
+/obj/structure/railing,
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/grass,
+/area/station/asteroid)
"aqX" = (
/obj/effect/turf_decal/trimline/neutral/filled/line,
/obj/item/radio/intercom/directional/south,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/commons/fitness)
"aqY" = (
@@ -6259,6 +6293,14 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/exit)
+"aHx" = (
+/obj/item/reagent_containers/cup/glass/bottle/juice/tomatojuice,
+/obj/item/flashlight/lantern{
+ pixel_x = 16;
+ pixel_y = 16
+ },
+/turf/open/floor/carpet/red,
+/area/station/asteroid)
"aHA" = (
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 4
@@ -7548,6 +7590,17 @@
/obj/effect/landmark/start/chaplain,
/turf/open/floor/iron/dark,
/area/station/service/chapel)
+"aQz" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/railing/corner,
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/turf/open/openspace,
+/area/station/asteroid)
"aQB" = (
/obj/effect/turf_decal/tile/neutral{
dir = 4
@@ -7937,6 +7990,7 @@
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 4
},
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/commons/fitness)
"aTw" = (
@@ -8090,6 +8144,17 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"aWa" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/obj/structure/railing,
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/turf/open/openspace,
+/area/station/asteroid)
"aWm" = (
/turf/open/floor/engine/vacuum,
/area/station/science/ordnance/burnchamber)
@@ -8254,6 +8319,7 @@
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
"bck" = (
@@ -8356,18 +8422,21 @@
name = "Secure Medical Storage";
req_access = list("medical")
},
-/obj/item/storage/medkit/regular{
- pixel_x = -3;
- pixel_y = -3
- },
-/obj/item/storage/medkit/regular,
-/obj/item/storage/medkit/regular{
- pixel_x = 3;
- pixel_y = 3
- },
/obj/effect/turf_decal/siding/white{
dir = 4
},
+/obj/item/storage/box/syringes{
+ pixel_y = 4
+ },
+/obj/item/storage/box/syringes{
+ pixel_y = 4
+ },
+/obj/item/mod/module/plasma_stabilizer,
+/obj/item/mod/module/thermal_regulator,
+/obj/item/gun/syringe,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
/turf/open/floor/iron/dark,
/area/station/medical/storage)
"bdJ" = (
@@ -9672,6 +9741,18 @@
/obj/machinery/light/blacklight/directional/north,
/turf/open/floor/eighties/red,
/area/station/commons/fitness/recreation/entertainment)
+"bCs" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Mix to Gas"
+ },
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"bCu" = (
/obj/structure/mirror/directional/north,
/obj/structure/sink{
@@ -9830,7 +9911,7 @@
name = "barcargoupper"
},
/turf/open/floor/catwalk_floor,
-/area/station/maintenance/department/cargo)
+/area/station/service/theater)
"bGr" = (
/obj/structure/closet/secure_closet/cytology,
/obj/effect/turf_decal/trimline/purple/filled/line{
@@ -11436,6 +11517,12 @@
},
/turf/open/floor/iron,
/area/station/cargo/sorting)
+"cfT" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/turf_decal/stripes/asteroid/box,
+/obj/structure/railing/corner,
+/turf/open/floor/plating,
+/area/station/asteroid)
"cfY" = (
/obj/structure/table/wood,
/obj/machinery/light/dim/directional/north,
@@ -13234,7 +13321,7 @@
/area/station/maintenance/port/central)
"cOo" = (
/obj/effect/spawner/random/structure/girder{
- loot = list(/obj/structure/falsewall = 50, /turf/closed/wall = 50);
+ loot = list(/obj/structure/falsewall=50,/turf/closed/wall=50);
name = "falsewall or wall spawner"
},
/turf/open/floor/plating,
@@ -14036,6 +14123,10 @@
},
/turf/open/floor/iron/white,
/area/station/science/ordnance/freezerchamber)
+"dcF" = (
+/obj/structure/railing,
+/turf/open/openspace,
+/area/station/asteroid)
"ddh" = (
/obj/structure/railing/corner,
/turf/open/floor/glass,
@@ -14402,6 +14493,11 @@
"dkO" = (
/turf/open/floor/iron,
/area/station/security/brig)
+"dkY" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron,
+/area/station/commons/fitness)
"dlg" = (
/obj/machinery/flasher/portable,
/obj/machinery/power/apc/auto_name/directional/west,
@@ -14435,6 +14531,14 @@
},
/turf/open/floor/iron/dark,
/area/station/medical/treatment_center)
+"dlV" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Cryopods"
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/iron/white/smooth_large,
+/area/station/common/cryopods)
"dlZ" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/lattice/catwalk,
@@ -14528,6 +14632,10 @@
/obj/effect/mapping_helpers/airlock/locked,
/turf/open/floor/plating,
/area/station/hallway/primary/tram/center)
+"dnr" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/purple/visible,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"dnD" = (
/obj/effect/turf_decal/trimline/yellow/filled/line{
dir = 4
@@ -14638,6 +14746,13 @@
/obj/effect/turf_decal/trimline/red/filled/line,
/turf/open/floor/iron/dark,
/area/station/security/courtroom/holding)
+"dpm" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/duct,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/turf/open/floor/iron/white/smooth_large,
+/area/station/common/cryopods)
"dpE" = (
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 4
@@ -14725,25 +14840,14 @@
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
"drn" = (
+/obj/machinery/light/directional/west,
/obj/structure/table/reinforced,
-/obj/structure/window/reinforced,
-/obj/item/storage/medkit/toxin{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/medkit/toxin,
-/obj/item/storage/medkit/toxin{
- pixel_x = -3;
- pixel_y = -3
- },
-/obj/machinery/door/window/right/directional/east{
- name = "Secure Medical Storage";
- req_access = list("medical")
- },
-/obj/machinery/light/small/directional/west,
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
+/obj/item/stack/medical/bone_gel/four,
+/obj/item/stack/medical/bone_gel/four,
+/obj/item/stack/sticky_tape/surgical,
+/obj/item/reagent_containers/spray/cleaner,
+/obj/item/reagent_containers/spray/cleaner,
+/obj/item/reagent_containers/spray/cleaner,
/turf/open/floor/iron/dark,
/area/station/medical/storage)
"drq" = (
@@ -15273,6 +15377,10 @@
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron,
/area/station/commons/fitness)
+"dzJ" = (
+/obj/machinery/vending/drugs,
+/turf/open/floor/iron/dark,
+/area/station/medical/storage)
"dAb" = (
/obj/effect/landmark/event_spawn,
/obj/structure/disposalpipe/segment{
@@ -15865,6 +15973,7 @@
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 5
},
+/obj/machinery/recharge_station,
/turf/open/floor/iron,
/area/station/hallway/secondary/service)
"dNB" = (
@@ -16132,6 +16241,7 @@
dir = 1
},
/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
+/obj/structure/fans/tiny,
/turf/open/floor/plating/airless,
/area/station/engineering/supermatter/room)
"dRz" = (
@@ -16377,6 +16487,15 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/hallway/secondary/service)
+"dWz" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/turf_decal/stripes/asteroid/box,
+/obj/structure/railing/corner,
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/station/asteroid)
"dXc" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/door/airlock/external{
@@ -17202,6 +17321,7 @@
dir = 6
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
"enF" = (
@@ -17209,6 +17329,7 @@
dir = 1
},
/obj/machinery/airalarm/directional/north,
+/obj/machinery/recharge_station,
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
"eol" = (
@@ -17283,6 +17404,10 @@
},
/turf/open/floor/iron/grimy,
/area/station/service/chapel/office)
+"eqh" = (
+/obj/item/food/cheese_sandwich,
+/turf/open/floor/carpet/red,
+/area/station/asteroid)
"eqi" = (
/obj/effect/landmark/navigate_destination/tcomms,
/turf/open/floor/iron,
@@ -17502,6 +17627,13 @@
dir = 4
},
/area/station/service/theater)
+"euV" = (
+/obj/machinery/duct,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/common/cryopods)
"euW" = (
/obj/structure/cable,
/turf/open/floor/plating,
@@ -17721,6 +17853,7 @@
dir = 8
},
/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/commons/fitness)
"eyR" = (
@@ -18520,6 +18653,7 @@
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 4
},
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/commons/fitness)
"eOL" = (
@@ -19007,6 +19141,10 @@
/obj/machinery/light/directional/west,
/turf/open/floor/glass/reinforced,
/area/station/ai_monitored/turret_protected/aisat/hallway)
+"eXe" = (
+/obj/item/food/grown/poppy/geranium,
+/turf/open/floor/grass,
+/area/station/asteroid)
"eXu" = (
/turf/open/floor/plating,
/area/station/science/ordnance/testlab)
@@ -19020,18 +19158,6 @@
"eXL" = (
/turf/open/floor/carpet/donk,
/area/station/command/heads_quarters/qm)
-"eYn" = (
-/obj/docking_port/stationary{
- dir = 8;
- dwidth = 3;
- height = 15;
- name = "arrivals";
- roundstart_template = /datum/map_template/shuttle/arrival/box;
- shuttle_id = "arrival_stationary";
- width = 7
- },
-/turf/open/space/openspace,
-/area/space)
"eYs" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/white/line{
@@ -19067,6 +19193,7 @@
},
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
"eYZ" = (
@@ -19907,6 +20034,7 @@
"foi" = (
/obj/effect/turf_decal/trimline/red/filled/line,
/obj/effect/turf_decal/trimline/yellow/filled/warning,
+/obj/machinery/recharge_station,
/turf/open/floor/iron,
/area/station/engineering/break_room)
"foy" = (
@@ -19958,6 +20086,13 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/cargo/storage)
+"foV" = (
+/obj/structure/cable,
+/obj/machinery/duct,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron,
+/area/station/common/cryopods)
"foY" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -20425,6 +20560,14 @@
},
/turf/open/floor/iron,
/area/station/security/brig)
+"fxN" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/turf_decal/stripes/asteroid/box,
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/station/asteroid)
"fxP" = (
/obj/structure/sign/poster/official/random/directional/north,
/turf/open/floor/wood/large,
@@ -20763,7 +20906,7 @@
/area/station/hallway/primary/tram/center)
"fGo" = (
/obj/effect/spawner/random/structure/girder{
- loot = list(/obj/structure/falsewall = 50, /turf/closed/wall = 50);
+ loot = list(/obj/structure/falsewall=50,/turf/closed/wall=50);
name = "falsewall or wall spawner"
},
/turf/open/floor/plating,
@@ -22278,6 +22421,13 @@
/obj/machinery/power/shieldwallgen,
/turf/open/floor/iron,
/area/station/command/teleporter)
+"gkV" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/duct,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron/white/smooth_large,
+/area/station/common/cryopods)
"gkZ" = (
/obj/machinery/door/airlock/medical/glass{
name = "Treatment Center"
@@ -22848,6 +22998,7 @@
/area/station/hallway/secondary/command)
"gxq" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
"gxw" = (
@@ -23649,13 +23800,19 @@
/turf/open/floor/wood,
/area/station/service/bar/backroom)
"gMT" = (
-/obj/structure/cable,
+/obj/structure/lattice/catwalk,
+/obj/structure/railing/corner,
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron/white,
-/area/station/medical/medbay/central)
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/openspace,
+/area/station/asteroid)
"gNc" = (
/obj/machinery/door/poddoor/shutters/preopen{
dir = 4;
@@ -24365,6 +24522,7 @@
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 1
},
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/commons/fitness)
"haR" = (
@@ -24593,7 +24751,6 @@
/turf/open/floor/circuit/telecomms,
/area/station/science/xenobiology)
"hgX" = (
-/obj/machinery/vending/drugs,
/obj/effect/turf_decal/siding/white{
dir = 1
},
@@ -24603,6 +24760,28 @@
network = list("ss13","medbay")
},
/obj/structure/noticeboard/directional/south,
+/obj/structure/table/reinforced,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/door/window/left/directional/west{
+ dir = 1;
+ name = "Secure Medical Storage";
+ req_access = list("medical")
+ },
+/obj/item/storage/medkit/regular{
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/obj/item/storage/medkit/brute{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/medkit/brute,
+/obj/item/storage/medkit/brute{
+ pixel_x = -3;
+ pixel_y = -3
+ },
/turf/open/floor/iron/dark,
/area/station/medical/storage)
"hhc" = (
@@ -24833,6 +25012,11 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/checker,
/area/station/commons/lounge)
+"hkD" = (
+/obj/item/storage/basket,
+/obj/item/reagent_containers/cup/glass/mug/tea,
+/turf/open/floor/carpet/red,
+/area/station/asteroid)
"hkF" = (
/obj/structure/table,
/obj/item/aicard,
@@ -25556,7 +25740,7 @@
},
/obj/effect/turf_decal/loading_area,
/turf/open/floor/plating,
-/area/station/maintenance/department/cargo)
+/area/station/service/theater)
"hBo" = (
/obj/effect/turf_decal/trimline/purple/filled/line,
/obj/machinery/camera/directional/south{
@@ -25625,6 +25809,7 @@
/obj/effect/turf_decal/trimline/neutral/filled/corner{
dir = 4
},
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/commons/fitness)
"hBY" = (
@@ -26795,6 +26980,13 @@
/obj/effect/turf_decal/stripes/white/line,
/turf/open/floor/iron,
/area/station/hallway/primary/tram/right)
+"hZm" = (
+/obj/machinery/cryopod{
+ dir = 1
+ },
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/iron,
+/area/station/common/cryopods)
"hZr" = (
/turf/closed/wall/r_wall,
/area/station/engineering/atmos)
@@ -27342,10 +27534,10 @@
},
/obj/effect/turf_decal/trimline/red/filled/line,
/obj/machinery/door/firedoor,
-/obj/effect/mapping_helpers/airlock/access/all/security/general,
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/mapping_helpers/airlock/access/all/science/sci_guard,
/turf/open/floor/iron,
/area/station/security/checkpoint/science)
"iiw" = (
@@ -27589,7 +27781,7 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/catwalk_floor,
-/area/station/maintenance/department/medical)
+/area/station/commons/fitness/recreation)
"inN" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/button/door/directional/east{
@@ -27718,6 +27910,16 @@
/obj/machinery/meter,
/turf/open/floor/iron,
/area/station/engineering/atmos/pumproom)
+"iqt" = (
+/obj/machinery/duct,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Maintenance Hatch"
+ },
+/turf/open/floor/iron,
+/area/station/common/cryopods)
"iqH" = (
/obj/effect/turf_decal/sand,
/turf/open/floor/iron,
@@ -27970,6 +28172,13 @@
c_tag = "Security - Prison Main North-West";
network = list("ss13","Security","prison")
},
+/obj/machinery/cryopod{
+ dir = 4
+ },
+/obj/machinery/computer/cryopod{
+ dir = 1;
+ pixel_y = 32
+ },
/turf/open/floor/iron,
/area/station/security/prison)
"iuz" = (
@@ -29170,6 +29379,7 @@
"iST" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
"iSX" = (
@@ -29609,12 +29819,9 @@
/turf/open/floor/iron,
/area/station/service/theater)
"iZo" = (
-/obj/effect/turf_decal/stripes/corner{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron,
-/area/station/hallway/secondary/entry)
+/obj/structure/railing,
+/turf/open/floor/grass,
+/area/station/asteroid)
"iZp" = (
/obj/structure/flora/tree/palm/style_random,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
@@ -30688,6 +30895,10 @@
},
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
+"jtv" = (
+/obj/item/food/grown/poppy,
+/turf/open/floor/grass,
+/area/station/asteroid)
"jtH" = (
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 8
@@ -30926,6 +31137,7 @@
dir = 4
},
/obj/item/storage/medkit/brute,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/commons/fitness)
"jyZ" = (
@@ -31078,26 +31290,11 @@
/turf/open/floor/iron,
/area/station/hallway/primary/tram/left)
"jBd" = (
-/obj/structure/table/reinforced,
-/obj/structure/window/reinforced,
-/obj/item/storage/medkit/fire{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/medkit/fire,
-/obj/item/storage/medkit/fire{
- pixel_x = -3;
- pixel_y = -3
- },
-/obj/machinery/door/window/left/directional/west{
- name = "Secure Medical Storage";
- req_access = list("medical")
- },
-/obj/effect/turf_decal/siding/white{
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 8
},
-/turf/open/floor/iron/dark,
-/area/station/medical/storage)
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"jBk" = (
/obj/effect/turf_decal/trimline/neutral/filled/corner,
/obj/structure/cable,
@@ -32026,7 +32223,7 @@
extra_price = 10;
fair_market_price = 10;
name = "\improper Warden's Hot Drinks";
- premium = list(/obj/item/seeds/coffee = 2, /obj/item/seeds/coffee/robusta = 2, /obj/item/seeds/tea = 2)
+ premium = list(/obj/item/seeds/coffee=2,/obj/item/seeds/coffee/robusta=2,/obj/item/seeds/tea=2)
},
/turf/open/floor/iron,
/area/station/security/prison)
@@ -32196,6 +32393,7 @@
pixel_y = 7
},
/obj/effect/spawner/random/bureaucracy/pen,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/commons/fitness)
"jVY" = (
@@ -32217,10 +32415,29 @@
/turf/open/floor/iron,
/area/station/command/bridge)
"jWe" = (
-/obj/machinery/vending/wardrobe/medi_wardrobe,
/obj/effect/turf_decal/siding/white{
dir = 1
},
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/left/directional/west{
+ dir = 1;
+ name = "Secure Medical Storage";
+ req_access = list("medical")
+ },
+/obj/item/storage/medkit/regular{
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/obj/item/storage/medkit/toxin{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/medkit/toxin,
+/obj/item/storage/medkit/toxin{
+ pixel_x = -3;
+ pixel_y = -3
+ },
+/obj/machinery/light/directional/south,
/turf/open/floor/iron/dark,
/area/station/medical/storage)
"jWs" = (
@@ -33670,7 +33887,7 @@
"kzw" = (
/obj/effect/spawner/random/vending/snackvend,
/obj/effect/turf_decal/stripes/line{
- dir = 9
+ dir = 1
},
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
@@ -34232,6 +34449,18 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"kIp" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "Gas to Mix"
+ },
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"kIE" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/white/line{
@@ -34309,6 +34538,17 @@
},
/turf/open/floor/iron,
/area/station/cargo/storage)
+"kKn" = (
+/obj/machinery/computer/cryopod{
+ dir = 1;
+ pixel_y = 32
+ },
+/obj/machinery/duct,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/turf/open/floor/iron/white/smooth_large,
+/area/station/common/cryopods)
"kKp" = (
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -34893,6 +35133,13 @@
},
/turf/open/floor/iron/white,
/area/station/science/xenobiology)
+"kUI" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 1
+ },
+/obj/machinery/computer/order_console/mining,
+/turf/open/floor/iron,
+/area/station/cargo/miningdock)
"kUN" = (
/obj/machinery/door/airlock/external{
autoclose = 0;
@@ -35202,7 +35449,7 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/catwalk_floor,
-/area/station/maintenance/department/crew_quarters/dorms)
+/area/station/medical/medbay/central)
"kZD" = (
/obj/structure/chair/office/light,
/obj/effect/turf_decal/trimline/yellow/filled/line,
@@ -35596,6 +35843,16 @@
/obj/machinery/meter,
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"lgt" = (
+/obj/machinery/cryopod{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/iron,
+/area/station/common/cryopods)
"lgu" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/smooth,
@@ -36231,6 +36488,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 1
},
+/obj/machinery/modular_computer/console/preset/engineering,
/turf/open/floor/engine,
/area/station/engineering/supermatter/room)
"ltt" = (
@@ -37404,6 +37662,7 @@
/obj/effect/turf_decal/trimline/neutral/filled/warning{
dir = 4
},
+/obj/effect/spawner/random/vending/snackvend,
/turf/open/floor/iron,
/area/station/hallway/primary/tram/center)
"lPU" = (
@@ -38157,23 +38416,8 @@
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/aisat/foyer)
"mdx" = (
-/obj/structure/table/reinforced,
-/obj/structure/window/reinforced,
-/obj/item/storage/box/syringes{
- pixel_y = 4
- },
-/obj/item/storage/box/syringes,
-/obj/item/mod/module/plasma_stabilizer,
-/obj/item/mod/module/thermal_regulator,
-/obj/item/gun/syringe,
-/obj/machinery/door/window/left/directional/west{
- name = "Secure Medical Storage";
- req_access = list("medical")
- },
-/obj/machinery/light/small/directional/east,
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
+/obj/machinery/light/directional/east,
+/obj/machinery/suit_storage_unit/medical,
/turf/open/floor/iron/dark,
/area/station/medical/storage)
"mdD" = (
@@ -38463,6 +38707,11 @@
},
/turf/open/floor/iron/dark,
/area/station/medical/virology)
+"mio" = (
+/obj/structure/flora/bush/sparsegrass/style_random,
+/obj/item/food/grown/poppy/geranium,
+/turf/open/floor/grass,
+/area/station/asteroid)
"miE" = (
/obj/effect/turf_decal/siding/thinplating/dark,
/obj/structure/chair{
@@ -38543,6 +38792,13 @@
"mjM" = (
/turf/closed/wall,
/area/station/security/medical)
+"mjS" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/hallway/secondary/entry)
"mkf" = (
/obj/effect/turf_decal/tile/blue/opposingcorners,
/obj/machinery/power/apc/auto_name/directional/west,
@@ -39499,8 +39755,13 @@
/turf/closed/wall,
/area/station/command/heads_quarters/hos)
"mBq" = (
-/turf/closed/wall/r_wall,
-/area/station/maintenance/department/crew_quarters/dorms)
+/obj/structure/lattice/catwalk,
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/railing,
+/turf/open/openspace,
+/area/station/asteroid)
"mBL" = (
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 5
@@ -40121,6 +40382,12 @@
/obj/machinery/light/dim/directional/east,
/turf/open/floor/iron/dark,
/area/station/service/bar)
+"mMU" = (
+/obj/machinery/cryopod{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/common/cryopods)
"mNp" = (
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
@@ -41030,6 +41297,7 @@
/obj/effect/mapping_helpers/airlock/access/all/medical/general,
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
"nhm" = (
@@ -41738,6 +42006,19 @@
/obj/structure/cable,
/turf/open/floor/iron/white,
/area/station/science/ordnance)
+"nsY" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/openspace,
+/area/station/asteroid)
"nti" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -41866,9 +42147,6 @@
/turf/open/floor/iron,
/area/station/commons/dorms)
"nwg" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 4
},
@@ -42598,6 +42876,16 @@
},
/turf/open/floor/iron,
/area/station/cargo/miningdock)
+"nLY" = (
+/obj/structure/lattice,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/openspace,
+/area/station/asteroid)
"nMb" = (
/obj/structure/lattice/catwalk,
/obj/effect/decal/cleanable/dirt,
@@ -43220,11 +43508,11 @@
/obj/machinery/door/airlock/security/glass{
name = "Security Post - Cargo"
},
-/obj/effect/mapping_helpers/airlock/access/all/security/general,
/obj/machinery/door/firedoor,
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/mapping_helpers/airlock/access/all/supply/customs,
/turf/open/floor/iron/dark,
/area/station/maintenance/radshelter/civil)
"nVl" = (
@@ -43513,6 +43801,13 @@
},
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"oaY" = (
+/obj/structure/flora/bush/sparsegrass/style_random,
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/floor/grass,
+/area/station/asteroid)
"obh" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 8
@@ -43696,10 +43991,31 @@
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/aisat/foyer)
"odH" = (
-/obj/structure/closet/l3closet,
/obj/effect/turf_decal/siding/white{
dir = 1
},
+/obj/structure/table/reinforced,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/door/window/left/directional/west{
+ dir = 1;
+ name = "Secure Medical Storage";
+ req_access = list("medical")
+ },
+/obj/item/storage/medkit/regular{
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/obj/item/storage/medkit/o2{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/medkit/o2,
+/obj/item/storage/medkit/o2{
+ pixel_x = -3;
+ pixel_y = -3
+ },
/turf/open/floor/iron/dark,
/area/station/medical/storage)
"odV" = (
@@ -43714,6 +44030,13 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark,
/area/station/science/xenobiology)
+"oeC" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Cryopods"
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron/white/smooth_large,
+/area/station/common/cryopods)
"oeP" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
@@ -44527,6 +44850,19 @@
/obj/effect/turf_decal/tile/dark_red/fourcorners,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/security/armory)
+"ouN" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/openspace,
+/area/station/asteroid)
"ovi" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/closed/wall/r_wall,
@@ -44856,7 +45192,9 @@
dir = 1
},
/obj/machinery/firealarm/directional/east,
-/obj/machinery/suit_storage_unit/medical,
+/obj/machinery/modular_computer/console/preset/cargochat/medical{
+ dir = 1
+ },
/turf/open/floor/iron/dark,
/area/station/medical/storage)
"oDj" = (
@@ -44889,7 +45227,7 @@
/area/space/nearstation)
"oEv" = (
/obj/effect/spawner/random/structure/girder{
- loot = list(/obj/structure/falsewall = 50, /turf/closed/wall = 50);
+ loot = list(/obj/structure/falsewall=50,/turf/closed/wall=50);
name = "falsewall or wall spawner"
},
/turf/open/floor/plating,
@@ -44958,6 +45296,16 @@
/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/aisat/hallway)
+"oFL" = (
+/obj/machinery/cryopod{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/iron,
+/area/station/common/cryopods)
"oFY" = (
/obj/structure/rack,
/obj/item/storage/box/gloves{
@@ -45375,6 +45723,7 @@
dir = 1
},
/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/commons/fitness)
"oPF" = (
@@ -46214,7 +46563,7 @@
req_access = "kitchen"
},
/turf/open/floor/plating,
-/area/station/maintenance/department/cargo)
+/area/station/service/kitchen)
"pfR" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -46322,6 +46671,10 @@
"phl" = (
/turf/open/floor/carpet,
/area/station/command/heads_quarters/captain)
+"phs" = (
+/obj/machinery/vending/medical,
+/turf/open/floor/iron/dark,
+/area/station/medical/storage)
"phB" = (
/obj/effect/turf_decal/siding/thinplating{
dir = 8
@@ -46678,6 +47031,11 @@
},
/turf/open/floor/iron/white,
/area/station/science/lab)
+"pmL" = (
+/obj/structure/flora/bush/flowers_br/style_random,
+/obj/structure/railing,
+/turf/open/floor/grass,
+/area/station/asteroid)
"pni" = (
/obj/effect/turf_decal/trimline/brown/filled/line{
dir = 9
@@ -46936,7 +47294,7 @@
name = "navigation beacon (Bar Delivery)"
},
/turf/open/floor/plating,
-/area/station/maintenance/department/cargo)
+/area/station/service/theater)
"psE" = (
/obj/structure/filingcabinet/chestdrawer,
/obj/effect/decal/cleanable/cobweb,
@@ -47531,7 +47889,7 @@
desc = "A well-stocked supply point full of robust tools to protect one's virginity whilst incarcerated.";
extra_price = 40;
name = "\improper Prison Tabletop Society";
- premium = list(/obj/item/pen/fourcolor = 5, /obj/item/rcl = 2, /obj/item/toy/crayon/spraycan = 2, /obj/item/clothing/shoes/wheelys/rollerskates = 3, /obj/item/melee/skateboard = 1);
+ premium = list(/obj/item/pen/fourcolor=5,/obj/item/rcl=2,/obj/item/toy/crayon/spraycan=2,/obj/item/clothing/shoes/wheelys/rollerskates=3,/obj/item/melee/skateboard=1);
product_ads = "Protect your virginity today!;You're already in security's dungeon, now all you need are dragons, and dice!;Either come play some Space Catan, or Chad is going to show you who's the boss of the prison gym again!;Want to be a powergaming fuck AND not get banned? Try TTRPGs today!"
},
/turf/open/floor/iron,
@@ -48210,26 +48568,19 @@
/turf/open/floor/iron,
/area/station/hallway/secondary/exit)
"pMh" = (
-/obj/structure/table/reinforced,
-/obj/structure/window/reinforced,
-/obj/item/storage/medkit/brute{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/medkit/brute,
-/obj/item/storage/medkit/brute{
- pixel_x = -3;
- pixel_y = -3
- },
-/obj/machinery/door/window/right/directional/east{
- name = "Secure Medical Storage";
- req_access = list("medical")
- },
-/obj/effect/turf_decal/siding/white{
+/obj/structure/lattice/catwalk,
+/obj/structure/railing,
+/obj/structure/disposalpipe/segment{
dir = 4
},
-/turf/open/floor/iron/dark,
-/area/station/medical/storage)
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/turf/open/openspace,
+/area/station/asteroid)
"pMz" = (
/obj/structure/closet/secure_closet/barber,
/obj/effect/turf_decal/siding/thinplating_new/dark{
@@ -49597,6 +49948,11 @@
/obj/structure/cable,
/turf/open/floor/wood,
/area/station/commons/vacant_room/office)
+"qod" = (
+/obj/structure/flora/bush/grassy,
+/obj/structure/railing,
+/turf/open/floor/grass,
+/area/station/asteroid)
"qoo" = (
/obj/machinery/door/window/left/directional/north{
base_state = "right";
@@ -49662,6 +50018,17 @@
/obj/effect/landmark/start/prisoner,
/turf/open/floor/iron,
/area/station/security/prison)
+"qpn" = (
+/obj/docking_port/stationary{
+ dir = 8;
+ dwidth = 1;
+ height = 13;
+ name = "arrivals";
+ shuttle_id = "arrivals_stationary";
+ width = 5
+ },
+/turf/open/space/openspace,
+/area/space)
"qpu" = (
/obj/effect/turf_decal/trimline/red/filled/corner{
dir = 8
@@ -50444,6 +50811,10 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark,
/area/station/security/courtroom/holding)
+"qEz" = (
+/obj/structure/railing,
+/turf/open/misc/asteroid,
+/area/station/asteroid)
"qEH" = (
/turf/closed/wall,
/area/station/solars/port)
@@ -51497,6 +51868,14 @@
},
/turf/open/floor/circuit,
/area/station/ai_monitored/turret_protected/ai)
+"qYN" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/railing,
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/openspace,
+/area/station/asteroid)
"qYQ" = (
/obj/machinery/computer/message_monitor{
dir = 1
@@ -51536,6 +51915,7 @@
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
"qZq" = (
@@ -52134,6 +52514,7 @@
dir = 8
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
"rjH" = (
@@ -52312,6 +52693,7 @@
dir = 1
},
/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/commons/fitness)
"rnf" = (
@@ -52763,6 +53145,7 @@
/obj/effect/turf_decal/trimline/brown/filled/line{
dir = 8
},
+/obj/machinery/recharge_station,
/turf/open/floor/iron,
/area/station/cargo/storage)
"rwz" = (
@@ -53656,6 +54039,13 @@
/obj/structure/cable,
/turf/open/floor/iron/freezer,
/area/station/commons/toilet)
+"rPD" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 8
+ },
+/obj/machinery/computer/order_console/mining,
+/turf/open/floor/iron,
+/area/station/cargo/storage)
"rPH" = (
/obj/machinery/disposal/bin,
/obj/structure/disposalpipe/trunk{
@@ -53902,6 +54292,14 @@
},
/turf/open/floor/plating,
/area/station/ai_monitored/command/nuke_storage)
+"rTg" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/railing/corner,
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/turf/open/openspace,
+/area/station/asteroid)
"rTk" = (
/obj/structure/closet/secure_closet/research_director,
/obj/structure/cable,
@@ -54423,6 +54821,9 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"sfG" = (
+/turf/closed/wall/r_wall,
+/area/space/nearstation)
"sgf" = (
/obj/structure/lattice/catwalk,
/obj/structure/railing{
@@ -54876,6 +55277,7 @@
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 1
},
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/commons/fitness)
"snK" = (
@@ -55675,21 +56077,7 @@
/turf/open/floor/iron,
/area/station/security/prison)
"sBa" = (
-/obj/structure/table/reinforced,
-/obj/item/storage/medkit/o2{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/medkit/o2,
-/obj/item/storage/medkit/o2{
- pixel_x = -3;
- pixel_y = -3
- },
-/obj/machinery/door/window/left/directional/west{
- dir = 2;
- name = "Secure Medical Storage";
- req_access = list("medical")
- },
+/obj/machinery/vending/wardrobe/medi_wardrobe,
/turf/open/floor/iron/dark,
/area/station/medical/storage)
"sBr" = (
@@ -56182,6 +56570,12 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/smooth,
/area/station/maintenance/starboard/greater)
+"sKw" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/turf/open/floor/iron,
+/area/station/commons/fitness)
"sKx" = (
/obj/effect/turf_decal/trimline/neutral/filled/corner{
dir = 8
@@ -56964,10 +57358,10 @@
dir = 8
},
/obj/machinery/door/firedoor,
-/obj/effect/mapping_helpers/airlock/access/all/security/general,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/cable,
+/obj/effect/mapping_helpers/airlock/access/all/engineering/engie_guard,
/turf/open/floor/iron,
/area/station/security/checkpoint/engineering)
"sXX" = (
@@ -57473,6 +57867,9 @@
/obj/effect/turf_decal/siding/white{
dir = 8
},
+/obj/structure/window/reinforced{
+ dir = 1
+ },
/turf/open/floor/iron/dark,
/area/station/medical/storage)
"tfW" = (
@@ -57618,6 +58015,11 @@
/obj/effect/mapping_helpers/mail_sorting/supply/disposals,
/turf/closed/wall,
/area/station/maintenance/disposal)
+"tiE" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible,
+/turf/closed/wall/r_wall,
+/area/station/engineering/supermatter/room)
"tiG" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -57871,6 +58273,14 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/security/execution/transfer)
+"tnJ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable,
+/obj/structure/extinguisher_cabinet/directional/north,
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"tnV" = (
/obj/effect/landmark/event_spawn,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
@@ -58286,6 +58696,9 @@
/obj/structure/flora/bush/sunny/style_random,
/turf/open/floor/grass,
/area/station/science/genetics)
+"tuz" = (
+/turf/closed/wall,
+/area/station/common/cryopods)
"tuC" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/engineering{
@@ -58398,6 +58811,8 @@
/obj/structure/table/glass,
/obj/item/hand_labeler,
/obj/item/pen,
+/obj/item/storage/box/beakers,
+/obj/item/clothing/neck/stethoscope,
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
"txJ" = (
@@ -58495,6 +58910,7 @@
/area/station/engineering/atmos)
"tAs" = (
/obj/effect/turf_decal/trimline/neutral/filled/corner,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/commons/fitness)
"tAF" = (
@@ -58640,13 +59056,16 @@
/turf/open/floor/plating/airless,
/area/station/science/ordnance/bomb)
"tDP" = (
-/obj/structure/cable,
+/obj/structure/lattice/catwalk,
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron/white,
-/area/station/medical/medbay/central)
+/obj/structure/railing,
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/openspace,
+/area/station/asteroid)
"tDT" = (
/turf/open/openspace,
/area/station/commons/fitness/recreation)
@@ -58899,6 +59318,7 @@
dir = 5
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
"tJg" = (
@@ -59886,13 +60306,10 @@
/turf/open/floor/iron/freezer,
/area/station/commons/toilet)
"uck" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron/white,
-/area/station/medical/medbay/central)
+/obj/structure/flora/bush/sparsegrass/style_random,
+/obj/structure/railing,
+/turf/open/floor/grass,
+/area/station/asteroid)
"ucl" = (
/obj/effect/turf_decal/trimline/purple/filled/line{
dir = 4
@@ -60062,6 +60479,10 @@
/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
/turf/open/floor/engine/co2,
/area/station/engineering/atmos)
+"uff" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/turf/open/floor/iron,
+/area/station/commons/fitness)
"ufh" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -60837,6 +61258,12 @@
/obj/machinery/modular_computer/console/preset/id,
/turf/open/floor/iron/dark,
/area/station/command/heads_quarters/ce)
+"utV" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/station/engineering/supermatter/room)
"utY" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/trimline/neutral/filled/line{
@@ -61175,7 +61602,7 @@
/area/station/commons/dorms)
"uBH" = (
/obj/effect/spawner/random/structure/girder{
- loot = list(/obj/structure/falsewall = 50, /turf/closed/wall = 50);
+ loot = list(/obj/structure/falsewall=50,/turf/closed/wall=50);
name = "falsewall or wall spawner"
},
/turf/open/floor/plating,
@@ -61297,6 +61724,13 @@
/obj/machinery/firealarm/directional/north,
/turf/open/floor/iron/white,
/area/station/science/research)
+"uEv" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/station/hallway/secondary/entry)
"uEw" = (
/obj/machinery/button/door/directional/east{
id = "miningdorm3";
@@ -62098,6 +62532,7 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/machinery/recharge_station,
/turf/open/floor/iron,
/area/station/security/office)
"uTg" = (
@@ -62544,10 +62979,10 @@
/obj/machinery/door/airlock/security/glass{
name = "Security Outpost - Medical"
},
-/obj/effect/mapping_helpers/airlock/access/all/security/general,
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/effect/mapping_helpers/airlock/access/all/medical/orderly,
/turf/open/floor/iron,
/area/station/security/checkpoint/medical)
"vbn" = (
@@ -62955,6 +63390,7 @@
c_tag = "Medical - Cold Storage";
network = list("ss13","medbay")
},
+/obj/structure/closet/l3closet,
/turf/open/floor/iron/freezer,
/area/station/medical/coldroom)
"vjb" = (
@@ -63512,6 +63948,17 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/atmospherics_engine)
+"vsZ" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/railing/corner,
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/openspace,
+/area/station/asteroid)
"vtb" = (
/obj/effect/turf_decal/tile/neutral{
dir = 4
@@ -63786,6 +64233,10 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
/area/station/hallway/primary/tram/right)
+"vyO" = (
+/obj/item/food/grown/poppy/lily,
+/turf/open/floor/grass,
+/area/station/asteroid)
"vyR" = (
/obj/effect/spawner/random/structure/closet_private,
/turf/open/floor/carpet,
@@ -64655,6 +65106,14 @@
"vNH" = (
/turf/closed/wall/r_wall,
/area/station/tcommsat/server)
+"vOz" = (
+/obj/machinery/cryopod{
+ dir = 1
+ },
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/common/cryopods)
"vOB" = (
/obj/effect/landmark/event_spawn,
/obj/structure/chair{
@@ -65704,9 +66163,8 @@
/area/station/maintenance/department/medical)
"whF" = (
/obj/structure/table/glass,
-/obj/item/storage/box/beakers,
-/obj/item/clothing/neck/stethoscope,
/obj/effect/turf_decal/tile/blue/fourcorners,
+/obj/machinery/recharger,
/turf/open/floor/iron/white,
/area/station/medical/treatment_center)
"whI" = (
@@ -65743,6 +66201,16 @@
/obj/effect/turf_decal/trimline/white/warning,
/turf/open/floor/iron,
/area/station/maintenance/tram/right)
+"wis" = (
+/obj/structure/lattice,
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/openspace,
+/area/station/asteroid)
"wiI" = (
/obj/machinery/door/airlock/security/glass{
id_tag = "outerbrigleft";
@@ -66237,12 +66705,12 @@
/obj/machinery/door/airlock/grunge{
name = "Morgue External Access"
},
-/obj/effect/mapping_helpers/airlock/access/all/medical/morgue,
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/effect/mapping_helpers/airlock/access/all/service/kitchen,
-/obj/effect/mapping_helpers/airlock/access/all/science/robotics,
+/obj/effect/mapping_helpers/airlock/access/any/service/kitchen,
+/obj/effect/mapping_helpers/airlock/access/any/science/robotics,
+/obj/effect/mapping_helpers/airlock/access/any/medical/morgue,
/turf/open/floor/iron/dark,
/area/station/medical/morgue)
"wtK" = (
@@ -66591,6 +67059,15 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/station/security/checkpoint/escape)
+"wAl" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/iron,
+/area/station/hallway/secondary/entry)
"wAm" = (
/obj/machinery/pdapainter/security,
/turf/open/floor/carpet,
@@ -66638,11 +67115,6 @@
/obj/structure/reagent_dispensers/foamtank,
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"wAI" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/turf/open/floor/iron/white,
-/area/station/medical/medbay/lobby)
"wAQ" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/chair/stool/directional/north,
@@ -68435,6 +68907,13 @@
},
/turf/open/floor/grass,
/area/station/science/genetics)
+"xpf" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/openspace,
+/area/station/asteroid)
"xpm" = (
/obj/structure/deployable_barricade/wooden,
/obj/effect/spawner/random/food_or_drink/booze,
@@ -68499,6 +68978,7 @@
"xqY" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/white,
/area/station/medical/medbay/lobby)
"xrn" = (
@@ -68891,6 +69371,18 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron,
/area/station/command/teleporter)
+"xzF" = (
+/mob/living/simple_animal/pet/cat{
+ desc = "Their name is pancake! They're very social, snuggly, and a bit dumb... But nonetheless, a good cat!";
+ icon = 'modular_zubbers/icons/mob/simple/pets.dmi';
+ icon_dead = "pancake_dead";
+ icon_living = "pancake";
+ icon_state = "pancake";
+ minbodytemp = 0;
+ name = "Pancake"
+ },
+/turf/open/floor/carpet,
+/area/station/medical/psychology)
"xzI" = (
/obj/machinery/vending/games,
/obj/structure/sign/clock/directional/north,
@@ -69181,6 +69673,10 @@
/obj/effect/mapping_helpers/airlock/access/all/security/brig,
/turf/open/floor/plating,
/area/station/security/processing)
+"xGV" = (
+/obj/item/toy/plush/beeplushie,
+/turf/open/floor/carpet/red,
+/area/station/asteroid)
"xGX" = (
/obj/effect/turf_decal/siding/thinplating/corner{
dir = 8
@@ -69828,10 +70324,28 @@
/turf/open/floor/iron,
/area/station/commons/fitness/recreation)
"xUV" = (
-/obj/machinery/vending/medical,
/obj/effect/turf_decal/siding/white{
dir = 1
},
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/left/directional/west{
+ dir = 1;
+ name = "Secure Medical Storage";
+ req_access = list("medical")
+ },
+/obj/item/storage/medkit/regular{
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/obj/item/storage/medkit/fire{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/medkit/fire,
+/obj/item/storage/medkit/fire{
+ pixel_x = -3;
+ pixel_y = -3
+ },
/turf/open/floor/iron/dark,
/area/station/medical/storage)
"xVp" = (
@@ -70222,9 +70736,6 @@
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/modular_computer/console/preset/cargochat/medical{
- dir = 4
- },
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
"yaS" = (
@@ -88250,8 +88761,8 @@ apC
abM
abM
aaa
-aac
-aac
+aaa
+aaa
aac
aac
aac
@@ -88494,7 +89005,7 @@ dwp
oqT
drw
wbb
-xFx
+uff
tAs
aTt
jyV
@@ -88503,16 +89014,16 @@ jVT
aTt
hBV
eCQ
-apC
-abM
-abM
+tuz
+iqt
+tuz
+tuz
aaa
aaa
aac
aac
aac
aac
-aac
ncE
aac
aac
@@ -88760,10 +89271,10 @@ djT
tdA
snD
pNj
-apC
-abM
-abM
-aaa
+tuz
+euV
+hZm
+tuz
aaa
aaa
aac
@@ -89016,11 +89527,11 @@ tKt
uva
eeJ
haH
-kzQ
-apC
-abM
-abM
-aaa
+dkY
+oeC
+dpm
+lgt
+tuz
aaa
aaa
aac
@@ -89274,10 +89785,10 @@ tKt
eeJ
nXx
kpF
-apC
-abM
-abM
-aaa
+tuz
+kKn
+mMU
+tuz
aaa
aaa
aaa
@@ -89530,11 +90041,11 @@ tKt
tKt
eeJ
nXx
-kzQ
-apC
-abM
-abM
-aaa
+sKw
+dlV
+gkV
+oFL
+tuz
aaa
aaa
aaa
@@ -89788,10 +90299,10 @@ wet
cIW
oPs
aqX
-apC
-abM
-abM
-aaa
+tuz
+foV
+vOz
+tuz
aaa
aaa
aac
@@ -90045,9 +90556,10 @@ fvR
eyQ
rnd
aqY
-apC
-abM
-abM
+tuz
+iqt
+tuz
+tuz
aaa
aaa
aac
@@ -90055,7 +90567,6 @@ aac
aac
aac
aac
-aac
jcT
aez
aac
@@ -90307,7 +90818,7 @@ abM
abM
aaa
aaa
-aac
+aaa
aac
aac
aac
@@ -90819,7 +91330,7 @@ apC
abM
abM
abM
-abM
+aaa
aaa
aaa
aac
@@ -91846,7 +92357,7 @@ elr
elr
gAY
arz
-jnq
+elr
abM
abM
aaa
@@ -92103,7 +92614,7 @@ elr
vyR
fQe
hRK
-jnq
+elr
abM
abM
aaa
@@ -92356,11 +92867,11 @@ elr
qRc
fOs
lLq
-jnq
-jnq
-jnq
-jnq
-jnq
+elr
+elr
+elr
+elr
+elr
abM
abM
aaa
@@ -92611,9 +93122,9 @@ oTA
oTA
oTA
oTA
-jnq
-jnq
-jnq
+oTA
+elr
+elr
abM
abM
abM
@@ -92868,7 +93379,7 @@ fWB
uid
uDs
hcv
-jnq
+oTA
abM
abM
abM
@@ -93125,7 +93636,7 @@ aoV
uid
bYd
hcv
-jnq
+oTA
abM
abM
abM
@@ -93382,7 +93893,7 @@ eUs
uid
uid
dwy
-jnq
+oTA
abM
abM
aaa
@@ -93639,7 +94150,7 @@ aoV
uid
xNP
hcv
-jnq
+oTA
abM
abM
aaa
@@ -93896,7 +94407,7 @@ aoV
uid
xNP
hcv
-jnq
+oTA
abM
abM
aaa
@@ -94150,10 +94661,10 @@ qNA
cRu
cRu
joV
-jnq
-jnq
-jnq
-jnq
+oTA
+oTA
+oTA
+oTA
abM
abM
aaa
@@ -94406,8 +94917,8 @@ xPN
xVQ
ofx
bLR
-jnq
-jnq
+oTA
+oTA
abM
abM
abM
@@ -94663,7 +95174,7 @@ oTA
oTA
oTA
oTA
-jnq
+oTA
abM
abM
abM
@@ -102386,7 +102897,7 @@ sHH
sHH
cjy
qHs
-vqH
+tnJ
fuj
xEy
miU
@@ -102906,10 +103417,10 @@ cmY
sHh
sHh
sHh
+bCs
sHh
sHh
-sHh
-sHh
+kIp
nRV
sHh
poT
@@ -103162,13 +103673,13 @@ qHs
sHj
qHs
qHs
-qHs
-qHs
-qHs
-qHs
-qHs
-qHs
-qHs
+dJM
+dnr
+dnr
+dnr
+dnr
+dJM
+dJM
fWn
qHs
qHs
@@ -103419,14 +103930,14 @@ mRs
woR
laA
hZr
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aeV
+dJM
+jBd
+jBd
+utV
+utV
+dJM
+dJM
+tiE
aeV
prq
aaa
@@ -103679,11 +104190,11 @@ hZr
hZr
hZr
hZr
-aaa
-aaa
-aaa
-aaa
-aac
+qHs
+qHs
+qHs
+qHs
+qHs
aaa
vXM
vXM
@@ -103940,7 +104451,7 @@ fjQ
fjQ
fjQ
fjQ
-aeh
+sfG
aaa
vXM
vXM
@@ -117745,7 +118256,7 @@ unl
unl
unl
unl
-eyR
+kUI
bAa
afw
uGW
@@ -143980,9 +144491,9 @@ jhd
jhd
jhd
jhd
-jhd
-jhd
-tPE
+nmY
+nmY
+nmY
tPE
tPE
tPE
@@ -144237,9 +144748,9 @@ jhd
jhd
jhd
jhd
-nmY
-nmY
-nmY
+iuz
+tCT
+hEb
nwg
vfd
nmY
@@ -144494,10 +145005,10 @@ jhd
jhd
jhd
jhd
-iuz
-tCT
-hEb
-nQG
+nmY
+nmY
+nmY
+mjS
aGd
sXi
qvm
@@ -144752,9 +145263,9 @@ jhd
jhd
jhd
nmY
-nmY
-nmY
-bNA
+wAl
+dFP
+uEv
aGd
gzi
qzd
@@ -145010,8 +145521,8 @@ jhd
jhd
nmY
kzw
-dFP
-iZo
+jEu
+nQG
aGd
nmY
kUu
@@ -146803,9 +147314,9 @@ jhd
jhd
jhd
jhd
-eYn
jhd
jhd
+qpn
jhd
jhd
nmY
@@ -158884,7 +159395,7 @@ aaS
aaS
aaS
afz
-afA
+aQz
afz
afH
afy
@@ -158894,7 +159405,7 @@ afX
afy
afH
afz
-age
+rTg
abM
afg
abW
@@ -159139,9 +159650,9 @@ xEo
aaa
abM
abW
-abM
+qEz
afy
-afA
+tDP
afy
afy
afy
@@ -159151,7 +159662,7 @@ afX
afy
afy
afy
-age
+qYN
afy
afg
abS
@@ -159396,9 +159907,9 @@ abM
abW
abW
abW
-abS
+uck
afy
-afA
+tDP
afy
afy
afy
@@ -159408,7 +159919,7 @@ afX
afy
afy
afy
-age
+qYN
afy
acm
abW
@@ -159649,13 +160160,13 @@ aaa
aaa
agm
abW
-abW
+jtv
abS
afg
afg
+dcF
afy
-afy
-afA
+tDP
afy
afy
afy
@@ -159665,7 +160176,7 @@ afX
afy
afy
afy
-age
+qYN
afy
abW
afo
@@ -159907,12 +160418,12 @@ aaa
abW
abW
abW
-abW
+jtv
afg
afg
-abS
+uck
afy
-afA
+tDP
afy
afy
afy
@@ -159922,7 +160433,7 @@ afX
afy
afy
afy
-age
+qYN
afy
afy
afo
@@ -160162,14 +160673,14 @@ aaa
abW
abW
abW
-abW
+jtv
afg
afo
abS
acm
-abS
+uck
afy
-afA
+tDP
afy
afy
afy
@@ -160179,7 +160690,7 @@ afX
afy
afy
afy
-age
+qYN
afy
afy
abS
@@ -160193,9 +160704,9 @@ dmf
dmf
bDq
fsC
-whz
-whz
-whz
+fsC
+fsC
+fsC
aaa
aaa
aaa
@@ -160417,14 +160928,14 @@ aaa
aaa
aaa
acm
-abS
+mio
abS
abW
-abW
+vyO
afo
abW
-abW
-abW
+eXe
+iZo
afy
afB
afE
@@ -160436,7 +160947,7 @@ afX
afy
agb
afE
-agf
+aWa
afy
afy
abW
@@ -160450,7 +160961,7 @@ kwN
eMY
ufO
rfU
-whz
+fsC
abM
abM
abM
@@ -160681,8 +161192,8 @@ abS
abW
abS
abW
-afv
-afz
+dWz
+nLY
afC
vFt
afK
@@ -160693,7 +161204,7 @@ afX
afy
agc
yiM
-agg
+vsZ
afz
afz
afv
@@ -160931,16 +161442,16 @@ aaa
aaa
abW
abS
-abW
+eXe
abW
afo
-abW
-abW
+hkD
+aHx
afg
acm
-afg
+qod
afy
-afD
+nsY
afG
afM
afy
@@ -160964,7 +161475,7 @@ ejm
ejm
okO
fsC
-whz
+fsC
abM
abM
abM
@@ -161191,11 +161702,11 @@ abW
abW
abS
abW
-abW
+eqh
+xGV
abS
abS
-abS
-afo
+pmL
afy
afA
afy
@@ -161207,7 +161718,7 @@ afX
afy
afy
afy
-age
+qYN
afy
abW
abW
@@ -161452,7 +161963,7 @@ acm
afg
abW
abS
-afo
+pmL
afy
afA
afy
@@ -161464,7 +161975,7 @@ afX
afy
afy
afy
-age
+qYN
afy
afo
abW
@@ -161701,15 +162212,15 @@ aaa
aaa
aaa
acm
-abW
+eXe
abW
abS
abW
-abW
+vyO
abW
acm
acm
-afo
+pmL
afy
afA
afy
@@ -161721,7 +162232,7 @@ afX
afy
afy
afy
-age
+qYN
afy
abS
acm
@@ -161966,7 +162477,7 @@ abS
abS
acm
acm
-abW
+iZo
afy
afA
afy
@@ -161978,7 +162489,7 @@ afX
afy
afy
afy
-age
+qYN
afy
abW
acm
@@ -162218,14 +162729,14 @@ aaa
abS
abW
abW
-abW
+vyO
abS
abS
+jtv
abW
-abW
-afg
+qod
afy
-afB
+gMT
afE
afJ
afy
@@ -162235,7 +162746,7 @@ afX
afy
agb
afE
-agf
+aWa
afy
afg
abW
@@ -162479,10 +162990,10 @@ acm
acm
acm
abW
-afv
-afz
-afz
-afC
+cfT
+wis
+nLY
+pMh
izU
afK
afy
@@ -162492,7 +163003,7 @@ afX
afy
agc
qas
-agg
+vsZ
afz
afv
abW
@@ -162736,7 +163247,7 @@ abW
acm
acm
afg
-abW
+iZo
afy
afy
afD
@@ -162993,8 +163504,8 @@ aaa
abW
abW
abW
-abS
-abW
+oaY
+aqS
afy
afA
afy
@@ -163006,7 +163517,7 @@ afX
afy
afy
afy
-age
+qYN
afy
abW
abS
@@ -163251,7 +163762,7 @@ aaa
abM
abW
afo
-abS
+uck
afy
afA
afy
@@ -163263,7 +163774,7 @@ afX
afy
afy
afy
-age
+qYN
afy
abW
abS
@@ -163508,7 +164019,7 @@ aaa
abM
abM
abW
-abW
+iZo
afy
afA
afy
@@ -163520,7 +164031,7 @@ afX
afy
afy
afy
-age
+qYN
afy
abS
acm
@@ -163540,7 +164051,7 @@ kRL
kRL
kRL
kRL
-apC
+kRL
abM
abM
abM
@@ -163765,7 +164276,7 @@ aaa
abM
aaa
abM
-abM
+qEz
afy
afA
afy
@@ -163777,7 +164288,7 @@ afX
afy
afy
afy
-age
+qYN
afy
abW
abW
@@ -163797,7 +164308,7 @@ xMU
mkf
qif
viZ
-apC
+kRL
abM
abM
abM
@@ -164022,7 +164533,7 @@ aaa
aaa
aaa
aaa
-abM
+qEz
afy
afA
afy
@@ -164034,12 +164545,12 @@ afX
afy
afy
afy
-age
+qYN
afy
abW
afg
aaa
-aaa
+xBk
xBk
xBk
xBk
@@ -164054,7 +164565,7 @@ ayn
qif
qif
aHb
-apC
+kRL
abM
abM
abM
@@ -164279,9 +164790,9 @@ aaa
aaa
aaa
aaa
-afv
-afz
-afA
+fxN
+afG
+ouN
afz
afO
afy
@@ -164291,14 +164802,14 @@ afX
afy
afO
afz
-age
+xpf
afz
afv
aaa
aaa
xBk
-xBk
-pMh
+dzJ
+sKO
drn
bdq
mPr
@@ -164311,7 +164822,7 @@ mnJ
xUb
mnJ
qif
-apC
+kRL
abM
abM
abM
@@ -164568,8 +165079,8 @@ xRx
xRx
lBQ
rJE
-apC
-apC
+lBQ
+lBQ
abM
abM
abM
@@ -164811,8 +165322,8 @@ aaa
aaa
aaa
xBk
-xBk
-jBd
+phs
+sKO
mdx
tfQ
mrf
@@ -164826,13 +165337,13 @@ xRx
xuA
tkj
azU
-apC
+lBQ
abM
-mBq
-mBq
-mBq
-mBq
-mBq
+wdj
+wdj
+wdj
+wdj
+wdj
abM
abM
abM
@@ -165083,13 +165594,13 @@ xRx
rfk
bVt
cpl
-apC
+lBQ
abM
-mBq
+wdj
rbC
sKl
foD
-mBq
+wdj
abM
abM
abM
@@ -165340,9 +165851,9 @@ xRx
neE
qzJ
vaa
-apC
+lBQ
abM
-mBq
+wdj
fYo
bEM
iXw
@@ -165597,9 +166108,9 @@ xRx
dCF
hou
aNr
-apC
+lBQ
abM
-mBq
+wdj
aOE
ojQ
iTS
@@ -165854,9 +166365,9 @@ xRx
oYs
hsh
uER
-apC
+lBQ
abM
-mBq
+wdj
tgw
kHy
iGc
@@ -166111,9 +166622,9 @@ xRx
lBQ
sqQ
lBQ
-apC
+lBQ
kZC
-mBq
+wdj
dPS
aOJ
aPm
@@ -167384,7 +167895,7 @@ rks
wyd
qNI
dyI
-tDP
+eIb
dRM
jtr
jtr
@@ -167641,7 +168152,7 @@ cen
twW
iZh
dyI
-tDP
+eIb
txD
jtr
rNl
@@ -167893,12 +168404,12 @@ iVr
rks
pwx
lNF
-wAI
-wAI
+sSt
+sSt
enB
qZa
bbD
-uck
+qdn
oJu
jtr
aLc
@@ -168668,7 +169179,7 @@ iST
jAt
myA
iZh
-dyI
+jVw
aHP
xSv
xSZ
@@ -169183,7 +169694,7 @@ uAx
oab
iZh
dyI
-gMT
+qPd
bNX
jtr
iOc
@@ -169440,7 +169951,7 @@ rks
wyd
wyd
qrW
-gMT
+qPd
uHB
jtr
jtr
@@ -169911,12 +170422,12 @@ abM
abM
abM
abM
-lZW
+eSx
pfH
-lZW
-lZW
-lZW
-lZW
+eSx
+eSx
+eSx
+eSx
eSx
eSx
dME
@@ -170173,7 +170684,7 @@ abM
abM
abM
abM
-lZW
+dME
eDV
fHo
tIT
@@ -170430,7 +170941,7 @@ abM
abM
abM
abM
-lZW
+dME
eDV
qEb
iZn
@@ -170687,7 +171198,7 @@ aaa
aaa
abM
abM
-lZW
+dME
kli
wIT
tEa
@@ -170701,9 +171212,9 @@ xgK
xgK
stH
sVL
-lZW
-lZW
-lZW
+izU
+izU
+izU
izU
izU
izU
@@ -170944,7 +171455,7 @@ aaa
aaa
abM
abM
-lZW
+dME
gQE
cyM
otx
@@ -170958,7 +171469,7 @@ fXN
fXN
cVE
knp
-lZW
+dME
aaa
aaa
aaa
@@ -171201,7 +171712,7 @@ aaa
aaa
abM
abM
-lZW
+dME
joJ
igA
lSv
@@ -171472,7 +171983,7 @@ axU
axU
clc
rdR
-lZW
+dME
aaa
aaa
aaa
@@ -171715,7 +172226,7 @@ aaa
aaa
abM
abM
-lZW
+dME
atr
fdW
euS
@@ -171729,7 +172240,7 @@ lse
bGJ
hrm
mRe
-lZW
+dME
aaa
aaa
aaa
@@ -171758,7 +172269,7 @@ rzj
qkh
bFq
rcD
-nPe
+xzF
nPe
nPe
msF
@@ -171972,7 +172483,7 @@ aaa
aaa
abM
abM
-lZW
+dME
oQt
wRR
vYO
@@ -171985,8 +172496,8 @@ dpU
tWb
qLG
smt
-lZW
-lZW
+dME
+dME
aaa
aaa
aaa
@@ -172229,20 +172740,20 @@ aaa
aaa
abM
abM
-lZW
-lZW
-lZW
-lZW
-lZW
-lZW
-lZW
-lZW
+dME
+dME
+dME
+dME
+dME
+dME
+dME
+dME
bFT
-lZW
-lZW
-lZW
-lZW
-lZW
+dME
+dME
+dME
+dME
+dME
aaa
aaa
aaa
@@ -172505,7 +173016,7 @@ aaa
aaa
afv
afz
-afA
+aQz
afz
afH
afy
@@ -172515,7 +173026,7 @@ afX
afy
afH
afz
-age
+agf
whz
abM
whz
@@ -172772,7 +173283,7 @@ afX
afy
afy
afy
-age
+agg
whz
abM
abM
@@ -173029,7 +173540,7 @@ afX
afy
afy
afy
-age
+agg
whz
abM
abM
@@ -173286,7 +173797,7 @@ afX
afy
afy
afy
-age
+mBq
afy
aaa
aaa
@@ -173543,7 +174054,7 @@ afX
afy
afy
afy
-age
+mBq
afy
afy
abW
@@ -173800,7 +174311,7 @@ afX
afy
afy
afy
-age
+mBq
afy
afy
agm
@@ -174047,7 +174558,7 @@ aaa
aaa
abW
afy
-afB
+gMT
afE
afJ
afy
@@ -174057,7 +174568,7 @@ afX
afy
agb
afE
-agf
+aWa
afy
afy
abW
@@ -174304,7 +174815,7 @@ aaa
aaa
afv
afz
-afC
+pMh
qas
afK
afy
@@ -174314,7 +174825,7 @@ afX
afy
agc
izU
-agg
+vsZ
afz
afz
afv
@@ -174828,7 +175339,7 @@ afX
afy
afy
afy
-age
+mBq
afy
abW
abW
@@ -175085,7 +175596,7 @@ afX
afy
afy
afy
-age
+mBq
afy
abS
afg
@@ -175342,7 +175853,7 @@ afX
afy
afy
afy
-age
+mBq
afy
abW
abS
@@ -175599,7 +176110,7 @@ afX
afy
afy
afy
-age
+mBq
afy
afy
abS
@@ -175846,7 +176357,7 @@ aaa
abW
abW
afy
-afB
+gMT
afE
afJ
afy
@@ -175856,7 +176367,7 @@ afX
afy
agb
afE
-agf
+aWa
afy
afy
afo
@@ -176103,7 +176614,7 @@ aaa
aaa
afv
afz
-afC
+pMh
bMb
afK
afy
@@ -176113,7 +176624,7 @@ afX
afy
agc
bMb
-agg
+vsZ
afz
afz
afv
@@ -176627,7 +177138,7 @@ afX
afy
afy
afy
-age
+mBq
afy
afy
abW
@@ -176884,7 +177395,7 @@ afX
afy
afy
afy
-age
+mBq
afy
abM
aaa
@@ -177141,7 +177652,7 @@ afX
afy
afy
afy
-age
+mBq
afy
aaa
aaa
@@ -177398,7 +177909,7 @@ afX
afy
afy
afy
-age
+mBq
afy
aaa
abM
@@ -177655,7 +178166,7 @@ afX
afy
afy
afy
-age
+mBq
afy
aaa
abM
@@ -177902,7 +178413,7 @@ aaa
aaa
afv
afz
-afA
+ouN
afz
afO
afy
@@ -180709,7 +181220,7 @@ aSo
tAJ
lTM
axF
-axF
+rPD
rwo
dij
uax
diff --git a/code/__DEFINES/~skyrat_defines/gun.dm b/code/__DEFINES/~skyrat_defines/gun.dm
index 6d2d4adcbaa..8450fd5c61f 100644
--- a/code/__DEFINES/~skyrat_defines/gun.dm
+++ b/code/__DEFINES/~skyrat_defines/gun.dm
@@ -18,3 +18,4 @@
#define COMPANY_JARNSMIOUR (1<<13)
#define COMPANY_ABDUCTOR (1<<14)
#define COMPANY_REMOVED (1<<15)
+#define COMPANY_ROMULUS (1<<16)
diff --git a/code/__DEFINES/~skyrat_defines/jobs.dm b/code/__DEFINES/~skyrat_defines/jobs.dm
index 597e7f129bc..207d459a0d4 100644
--- a/code/__DEFINES/~skyrat_defines/jobs.dm
+++ b/code/__DEFINES/~skyrat_defines/jobs.dm
@@ -12,4 +12,4 @@
#define RESTRICTED_QUIRKS_EXCEPTIONS list("Mute" = "Signer")
-#define FLAVOR_TEXT_CHAR_REQUIREMENT 0 //BUBBERSTATION EDIT
+#define FLAVOR_TEXT_CHAR_REQUIREMENT 150
diff --git a/code/__DEFINES/~~bubber_defines/jobs.dm b/code/__DEFINES/~~bubber_defines/jobs.dm
new file mode 100644
index 00000000000..e8999b94c65
--- /dev/null
+++ b/code/__DEFINES/~~bubber_defines/jobs.dm
@@ -0,0 +1 @@
+#define RECORDS_TEXT_CHAR_REQUIREMENT 15
diff --git a/code/__DEFINES/~~bubber_defines/status_indicator_defines.dm b/code/__DEFINES/~~bubber_defines/status_indicator_defines.dm
new file mode 100644
index 00000000000..57abd103b0d
--- /dev/null
+++ b/code/__DEFINES/~~bubber_defines/status_indicator_defines.dm
@@ -0,0 +1,11 @@
+#define STUNNED "stunned"
+#define WEAKEN "weakened"
+#define PARALYSIS "paralysis"
+#define SLEEPING "sleeping"
+#define CONFUSED "confused"
+#define PLANE_STATUS_INDICATOR -12 //Status Indicators that show over mobs' heads when certain things like stuns affect them.
+#define STATUS_LAYER -2.1
+#define STATUS_INDICATOR_Y_OFFSET 2 // Offset from the edge of the icon sprite, so 32 pixels plus whatever number is here.
+#define STATUS_INDICATOR_ICON_X_SIZE 0 // Don't need to care about the Y size due to the origin being on the bottom side.
+#define STATUS_INDICATOR_ICON_MARGIN 0 // The space between two status indicators. We don't do this with the current icons.
+#define DEFAULT_MOB_SCALE 1
diff --git a/code/datums/quirks/negative_quirks.dm b/code/datums/quirks/negative_quirks.dm
index 66f93d1d9b7..5f78822936a 100644
--- a/code/datums/quirks/negative_quirks.dm
+++ b/code/datums/quirks/negative_quirks.dm
@@ -911,7 +911,7 @@
allergy_chem_names += initial(chem_type.name)
allergy_string = allergy_chem_names.Join(", ")
- name = "Extreme [allergy_string] Allergies"
+ //name = "Extreme [allergy_string] Allergies"
medical_record_text = "Patient's immune system responds violently to [allergy_string]"
var/mob/living/carbon/human/human_holder = quirk_holder
diff --git a/code/game/objects/items/devices/scanners/health_analyzer.dm b/code/game/objects/items/devices/scanners/health_analyzer.dm
index 28d7b1d0ecf..e0386d63a78 100644
--- a/code/game/objects/items/devices/scanners/health_analyzer.dm
+++ b/code/game/objects/items/devices/scanners/health_analyzer.dm
@@ -189,6 +189,13 @@
render_list += "Subject Major Disabilities: [carbontarget.get_quirk_string(FALSE, CAT_QUIRK_MAJOR_DISABILITY)].\n"
if(advanced)
render_list += "Subject Minor Disabilities: [carbontarget.get_quirk_string(FALSE, CAT_QUIRK_MINOR_DISABILITY)].\n"
+ // Allergies
+ for(var/datum/quirk/quirky as anything in target.quirks)
+ if(istype(quirky, /datum/quirk/item_quirk/allergic))
+ var/datum/quirk/item_quirk/allergic/allergies_quirk = quirky
+ var/allergies = allergies_quirk.allergy_string
+ render_list += "Subject is extremely allergic to the following chemicals:\n"
+ render_list += "[allergies]\n"
if (HAS_TRAIT(target, TRAIT_IRRADIATED))
render_list += "Subject is irradiated. Supply toxin healing.\n"
diff --git a/code/game/objects/items/melee/baton.dm b/code/game/objects/items/melee/baton.dm
index 4305e986c6e..20b55a6287c 100644
--- a/code/game/objects/items/melee/baton.dm
+++ b/code/game/objects/items/melee/baton.dm
@@ -385,21 +385,18 @@
/obj/item/melee/baton/security
name = "stun baton"
- desc = "A stun baton for incapacitating people with."
- desc_controls = "Left click to stun, right click to harm."
+ desc = "A stun baton for incapacitating people with. Left click to stun, right click to harm."
+
icon_state = "stunbaton"
inhand_icon_state = "baton"
worn_icon_state = "baton"
force = 10
- wound_bonus = 0
attack_verb_continuous = list("beats")
attack_verb_simple = list("beat")
- armor_type = /datum/armor/baton_security
-
throwforce = 7
- stamina_damage = 35 // SKYRAT EDIT - 4 baton crit now (Original: 45)
+ stamina_damage = 60
knockdown_time = 5 SECONDS
clumsy_knockdown_time = 15 SECONDS
cooldown = 2.5 SECONDS
@@ -416,11 +413,6 @@
var/can_remove_cell = TRUE
var/convertible = TRUE //if it can be converted with a conversion kit
-/datum/armor/baton_security
- bomb = 50
- fire = 80
- acid = 80
-
/obj/item/melee/baton/security/Initialize(mapload)
. = ..()
if(preload_cell_type)
@@ -434,14 +426,14 @@
/obj/item/melee/baton/security/get_cell()
return cell
-/obj/item/melee/baton/security/suicide_act(mob/living/user)
+/obj/item/melee/baton/security/suicide_act(mob/user)
if(cell?.charge && active)
user.visible_message(span_suicide("[user] is putting the live [name] in [user.p_their()] mouth! It looks like [user.p_theyre()] trying to commit suicide!"))
+ . = (FIRELOSS)
attack(user, user)
- return FIRELOSS
else
user.visible_message(span_suicide("[user] is shoving the [name] down their throat! It looks like [user.p_theyre()] trying to commit suicide!"))
- return OXYLOSS
+ . = (OXYLOSS)
/obj/item/melee/baton/security/Destroy()
if(cell)
@@ -577,9 +569,9 @@
* After a period of time, we then check to see what stun duration we give.
*/
/obj/item/melee/baton/security/additional_effects_non_cyborg(mob/living/target, mob/living/user)
- target.set_jitter_if_lower(40 SECONDS)
- // target.set_confusion_if_lower(10 SECONDS) // SKYRAT EDIT REMOVAL
- target.set_stutter_if_lower(16 SECONDS)
+ target.set_timed_status_effect(40 SECONDS, /datum/status_effect/jitter, only_if_higher = TRUE)
+ target.set_timed_status_effect(10 SECONDS, /datum/status_effect/confusion, only_if_higher = TRUE)
+ target.set_timed_status_effect(16 SECONDS, /datum/status_effect/speech/stutter, only_if_higher = TRUE)
SEND_SIGNAL(target, COMSIG_LIVING_MINOR_SHOCK)
addtimer(CALLBACK(src, PROC_REF(apply_stun_effect_end), target), 2 SECONDS)
@@ -590,8 +582,7 @@
if(!target.IsKnockdown())
to_chat(target, span_warning("Your muscles seize, making you collapse[trait_check ? ", but your body quickly recovers..." : "!"]"))
- if(!trait_check)
- target.Knockdown(knockdown_time)
+ target.Knockdown(knockdown_time * (trait_check ? 0.1 : 1))
/obj/item/melee/baton/security/get_wait_description()
return span_danger("The baton is still charging!")
diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm
index add94e019d8..b85654728a7 100644
--- a/code/game/objects/items/robot/robot_upgrades.dm
+++ b/code/game/objects/items/robot/robot_upgrades.dm
@@ -117,9 +117,9 @@
if(.)
for(var/obj/item/pickaxe/drill/cyborg/D in R.model)
R.model.remove_module(D, TRUE)
- for(var/obj/item/shovel/S in R.model)
+/* for(var/obj/item/shovel/S in R.model)
R.model.remove_module(S, TRUE)
-
+*/
var/obj/item/pickaxe/drill/cyborg/diamond/DD = new /obj/item/pickaxe/drill/cyborg/diamond(R.model)
R.model.basic_modules += DD
R.model.add_module(DD, FALSE, TRUE)
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 b4ac64e9cfb..b35905a1f92 100755
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -91,6 +91,7 @@
new /obj/item/clothing/under/rank/security/warden/formal(src)
new /obj/item/clothing/suit/jacket/warden/blue(src) //SKYRAT ADDITION - FORMAL COAT
//new /obj/item/clothing/under/rank/security/warden/skirt(src) SKYRAT EDIT REMOVAL
+ new /obj/item/storage/box/gunset/glock17(src) //Bubber Addition - Glock17 for Warden
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
new /obj/item/holosign_creator/security(src)
new /obj/item/clothing/mask/gas/sechailer(src)
diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm
index afcc3fc2997..bd2dd916d58 100755
--- a/code/modules/jobs/job_types/captain.dm
+++ b/code/modules/jobs/job_types/captain.dm
@@ -70,7 +70,7 @@
gloves = /obj/item/clothing/gloves/captain
head = /obj/item/clothing/head/hats/caphat
shoes = /obj/item/clothing/shoes/laceup
-
+ r_pocket = /obj/item/flashlight/seclite
backpack = /obj/item/storage/backpack/captain
satchel = /obj/item/storage/backpack/satchel/cap
diff --git a/code/modules/jobs/job_types/detective.dm b/code/modules/jobs/job_types/detective.dm
index 4b44a3a4ae2..04503ab596a 100644
--- a/code/modules/jobs/job_types/detective.dm
+++ b/code/modules/jobs/job_types/detective.dm
@@ -56,6 +56,7 @@
/obj/item/detective_scanner = 1,
/obj/item/melee/baton = 1,
/obj/item/storage/box/evidence = 1,
+ /obj/item/flashlight/seclite = 1,
)
belt = /obj/item/modular_computer/pda/detective
ears = /obj/item/radio/headset/headset_sec/alt
diff --git a/code/modules/jobs/job_types/head_of_security.dm b/code/modules/jobs/job_types/head_of_security.dm
index 79294563a48..5a3ffbaae94 100644
--- a/code/modules/jobs/job_types/head_of_security.dm
+++ b/code/modules/jobs/job_types/head_of_security.dm
@@ -51,12 +51,14 @@
id_trim = /datum/id_trim/job/head_of_security
uniform = /obj/item/clothing/under/rank/security/head_of_security
suit = /obj/item/clothing/suit/armor/hos/trenchcoat
- //suit_store = /obj/item/gun/energy/e_gun //SKYRAT EDIT REMOVAL
+ suit_store = /obj/item/gun/energy/e_gun //KEPLER EDIT RESTORATION
backpack_contents = list(
/obj/item/evidencebag = 1,
- /obj/item/storage/box/gunset/glock18_hos = 1, //SKYRAT EDIT ADDITION
+ /obj/item/flashlight/seclite = 1,
+ /obj/item/modular_computer/pda/heads/hos = 1,
+ /obj/item/choice_beacon/head_of_security = 1,
)
- belt = /obj/item/modular_computer/pda/heads/hos
+ belt = /obj/item/storage/belt/security/full
ears = /obj/item/radio/headset/heads/hos/alt
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
gloves = /obj/item/clothing/gloves/color/black/security //SKYRAT EDIT CHANGE - Original: /obj/item/clothing/gloves/color/black
@@ -85,3 +87,53 @@
head = null
mask = /obj/item/clothing/mask/gas/sechailer
internals_slot = ITEM_SLOT_SUITSTORE
+
+//TEST THIS OUT WHEN NEEDED
+
+/obj/item/choice_beacon/head_of_security
+ name = "gun choice beacon"
+ desc = "whatever you choose will determine the outcome of space station 13 and the fate of the company so choose wisely."
+ company_source = "Romulus Shipping Company"
+ company_message = span_bold("Copy that SS13, supply pod enroute!")
+
+
+/obj/item/choice_beacon/head_of_security/generate_display_names()
+ var/static/list/hosgun_list
+ if(!hosgun_list)
+ hosgun_list = list()
+ for(var/obj/item/storage/box/hosgun/box as anything in typesof(/obj/item/storage/box/hosgun))
+ hosgun_list[initial(box.name)] = box
+ return hosgun_list
+
+/obj/item/storage/box/hosgun
+ name = "Classic 3-round burst pistol 9mm"
+
+/obj/item/storage/box/hosgun/PopulateContents()
+ new /obj/item/storage/box/gunset/glock18_hos(src)
+ new /obj/item/ammo_box/c9mm(src)
+ new /obj/item/ammo_box/c9mm(src)
+ new /obj/item/storage/box/hecu_rations(src)
+ new /obj/item/storage/fancy/cigarettes/cigars(src)
+
+/obj/item/storage/box/hosgun/revolver
+ name = "Romulus Officer Heavy Revolver .460"
+
+/obj/item/storage/box/hosgun/revolver/PopulateContents()
+ new /obj/item/storage/box/gunset/hos_revolver(src)
+ new /obj/item/clothing/neck/cloak/hos/redsec(src)
+ new /obj/item/clothing/under/rank/security/head_of_security/redsec(src)
+ new /obj/item/clothing/glasses/hud/security/sunglasses/eyepatch/redsec(src)
+ new /obj/item/clothing/shoes/jackboots/sec/redsec(src)
+ new /obj/item/storage/box/nri_rations(src)
+ new /obj/item/knife/combat(src)
+
+/obj/item/storage/box/hosgun/glock
+ name = "Solaris Police Dual 9mm Pistol"
+
+/obj/item/storage/box/hosgun/glock/PopulateContents()
+ new /obj/item/storage/box/gunset/glock17(src)
+ new /obj/item/storage/box/gunset/glock17(src)
+ new /obj/item/clothing/under/rank/security/head_of_security/peacekeeper/sol(src)
+ new /obj/item/clothing/neck/tie/red(src)
+ new /obj/item/storage/pill_bottle/probital(src)
+
diff --git a/code/modules/jobs/job_types/security_officer.dm b/code/modules/jobs/job_types/security_officer.dm
index 47ce1982604..02659b2bf25 100644
--- a/code/modules/jobs/job_types/security_officer.dm
+++ b/code/modules/jobs/job_types/security_officer.dm
@@ -209,8 +209,10 @@ GLOBAL_LIST_EMPTY(security_officer_distribution)
suit_store = /obj/item/gun/energy/disabler
backpack_contents = list(
/obj/item/evidencebag = 1,
+ /obj/item/flashlight/seclite = 1,
+ /obj/item/modular_computer/pda/security = 1,
)
- belt = /obj/item/modular_computer/pda/security
+ belt = /obj/item/storage/belt/security/full
ears = /obj/item/radio/headset/headset_sec/alt
gloves = /obj/item/clothing/gloves/color/black/security //SKYRAT EDIT CHANGE - Original: /obj/item/clothing/gloves/color/black
head = /obj/item/clothing/head/security_garrison //SKYRAT EDIT CHANGE - Original: /obj/item/clothing/head/helmet/sec
diff --git a/code/modules/jobs/job_types/warden.dm b/code/modules/jobs/job_types/warden.dm
index f0e8f0cdc93..d3e86ead149 100644
--- a/code/modules/jobs/job_types/warden.dm
+++ b/code/modules/jobs/job_types/warden.dm
@@ -53,8 +53,10 @@
suit_store = /obj/item/gun/energy/disabler
backpack_contents = list(
/obj/item/evidencebag = 1,
+ /obj/item/modular_computer/pda/warden = 1,
+ /obj/item/flashlight/seclite = 1,
)
- belt = /obj/item/modular_computer/pda/warden
+ belt = /obj/item/storage/belt/security/full
ears = /obj/item/radio/headset/headset_sec/alt
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
gloves = /obj/item/clothing/gloves/color/black/security //SKYRAT EDIT CHANGE - Original: /obj/item/clothing/gloves/color/black
diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index 96b66e26146..0369e33ad06 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -492,7 +492,7 @@
else if(helper.zone_selected == BODY_ZONE_PRECISE_MOUTH)
nosound = TRUE
playsound(src, 'modular_skyrat/modules/emotes/sound/emotes/Nose_boop.ogg', 50, 0)
- if(HAS_TRAIT(src, TRAIT_SENSITIVESNOUT) && get_location_accessible(src, BODY_ZONE_PRECISE_MOUTH))
+ if(HAS_TRAIT(src, TRAIT_SENSITIVESNOUT))
to_chat(src, span_warning("[helper] boops you on your sensitive nose, sending you to the ground!"))
src.Knockdown(20)
src.apply_damage(30, STAMINA)
diff --git a/code/modules/mob/living/silicon/robot/robot_model.dm b/code/modules/mob/living/silicon/robot/robot_model.dm
index 041d660b44d..34f93643cf1 100644
--- a/code/modules/mob/living/silicon/robot/robot_model.dm
+++ b/code/modules/mob/living/silicon/robot/robot_model.dm
@@ -657,7 +657,7 @@
/obj/item/borg/sight/meson,
/obj/item/storage/bag/ore/cyborg,
/obj/item/pickaxe/drill/cyborg,
- /obj/item/shovel,
+ /obj/item/kinetic_crusher,
/obj/item/crowbar/cyborg,
/obj/item/weldingtool/mini,
/obj/item/extinguisher/mini,
diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
index 786ec9c9454..24eead0b94e 100644
--- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
+++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
@@ -132,7 +132,7 @@
icon_state = "kineticgun" // SKYRAT EDIT CHANGE
holds_charge = TRUE
unique_frequency = TRUE
- max_mod_capacity = 80
+ max_mod_capacity = 100 // Bubber edit, Original: 80
/obj/item/gun/energy/recharge/kinetic_accelerator/minebot
trigger_guard = TRIGGER_GUARD_ALLOW_ALL
diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm
index 4e7552f4771..635570fbb15 100644
--- a/code/modules/projectiles/guns/energy/stun.dm
+++ b/code/modules/projectiles/guns/energy/stun.dm
@@ -30,9 +30,8 @@
desc = "A self-defense weapon that exhausts organic targets, weakening them until they collapse."
icon_state = "disabler"
inhand_icon_state = null
- ammo_type = list(/obj/item/ammo_casing/energy/disabler/skyrat) // SKYRAT EDIT: ammo_type = list(/obj/item/ammo_casing/energy/disabler)
+ ammo_type = list(/obj/item/ammo_casing/energy/disabler)
ammo_x_offset = 2
- cell_type = /obj/item/stock_parts/cell/super // SKYRAT EDIT ADDITION
/obj/item/gun/energy/disabler/add_seclight_point()
AddComponent(/datum/component/seclite_attachable, \
diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm
index c39261512c5..7c043b545b7 100644
--- a/code/modules/research/machinery/_production.dm
+++ b/code/modules/research/machinery/_production.dm
@@ -287,35 +287,7 @@
say("Not enough reagents to complete prototype[print_quantity > 1? "s" : ""].")
return FALSE
- // Charge the lathe tax at least once per ten items.
- var/total_cost = LATHE_TAX * max(round(print_quantity / 10), 1)
-
- if(!charges_tax)
- total_cost = 0
-
- if(isliving(usr))
- var/mob/living/user = usr
- var/obj/item/card/id/card = user.get_idcard(TRUE)
-
- if(!card && istype(user.pulling, /obj/item/card/id))
- card = user.pulling
-
- if(card && card.registered_account)
- var/datum/bank_account/our_acc = card.registered_account
- if(our_acc.account_job.departments_bitflags & allowed_department_flags)
- total_cost = 0 // We are not charging crew for printing their own supplies and equipment.
-
- if(attempt_charge(src, usr, total_cost) & COMPONENT_OBJ_CANCEL_CHARGE)
- say("Insufficient funds to complete prototype. Please present a holochip or valid ID card.")
- return FALSE
-
- if(iscyborg(usr))
- var/mob/living/silicon/robot/borg = usr
-
- if(!borg.cell)
- return FALSE
-
- borg.cell.use(SILICON_LATHE_TAX)
+ lathe_tax()
materials.mat_container.use_materials(efficient_mats, print_quantity)
materials.silo_log(src, "built", -print_quantity, "[design.name]", efficient_mats)
diff --git a/config/game_options.txt b/config/game_options.txt
index e72fc3af8c4..4c113a217ce 100644
--- a/config/game_options.txt
+++ b/config/game_options.txt
@@ -551,6 +551,10 @@ MAXFINE 2000
## Whether native FoV is enabled for all people.
#NATIVE_FOV
+## How much does the protolathe cost to use on station? Disabled is off.
+
+##PROTOLATHE_TAX 10
+
## Whether circuit sounds are allowed to be played or not.
#DISALLOW_CIRCUIT_SOUNDS
diff --git a/html/changelogs/AutoChangeLog-pr-162.yml b/html/changelogs/AutoChangeLog-pr-162.yml
new file mode 100644
index 00000000000..af1965c8230
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-162.yml
@@ -0,0 +1,5 @@
+author: "ReturnToZender"
+delete-after: True
+changes:
+ - rscadd: "Restored Skyrat flavor text minimum"
+ - rscadd: "Functionality for future records minimums"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-166.yml b/html/changelogs/AutoChangeLog-pr-166.yml
new file mode 100644
index 00000000000..e4777976998
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-166.yml
@@ -0,0 +1,4 @@
+author: "CydiaButt13"
+delete-after: True
+changes:
+ - rscadd: "Added *mggaow"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-167.yml b/html/changelogs/AutoChangeLog-pr-167.yml
new file mode 100644
index 00000000000..e6c9adc9fe9
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-167.yml
@@ -0,0 +1,19 @@
+author: "Ldip999"
+delete-after: True
+changes:
+ - bugfix: "Interlink shuttle now works with tram!"
+ - rscadd: "Cryo added to tram (Both below recreation, and into perma)"
+ - rscadd: "Picnic area at tram"
+ - qol: "Moved vendors to the back of medical storage on tram"
+ - rscadd: "Medical storage on tram now includes bone gel, medical tape, and space cleaners"
+ - rscadd: "Medical triage on tram now has a weapon charger for mediguns"
+ - bugfix: "Tram Morgue backdoor now uses ANY permissions instead of ALL"
+ - rscadd: "Tram Disposals now has a tiny fan so air won't leak"
+ - rscadd: "Tram cargo now has mining equipment vendors"
+ - rscadd: "Central tram dock got a snack machine"
+ - qol: "Biohaz 3 locker moved from medical storage to cold room on tram"
+ - bugfix: "Departmental security now has correct and appropriate access on tram"
+ - qol: "Minor area adjustments on tram"
+ - rscadd: "Tram engineering SM room now has cooler loop"
+ - rscadd: "Tram engineering has a console in front of SM"
+ - rscadd: "Added borg chargers to engineering, medical, service, cargo, and security for tram"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-168.yml b/html/changelogs/AutoChangeLog-pr-168.yml
new file mode 100644
index 00000000000..7eccf306873
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-168.yml
@@ -0,0 +1,6 @@
+author: "CloverIsLucky"
+delete-after: True
+changes:
+ - rscadd: "Crusherborg!"
+ - rscdel: "Removed useless shovel from minerborg's moduleset."
+ - qol: "Minerborg's KA mod capacity increased from 80 to 100"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-169.yml b/html/changelogs/AutoChangeLog-pr-169.yml
new file mode 100644
index 00000000000..bc891dbfe6e
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-169.yml
@@ -0,0 +1,4 @@
+author: "Ldip999"
+delete-after: True
+changes:
+ - rscadd: "Fax machine added to meta bridge"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-171.yml b/html/changelogs/AutoChangeLog-pr-171.yml
new file mode 100644
index 00000000000..abebb07ae4c
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-171.yml
@@ -0,0 +1,4 @@
+author: "NullDagaf"
+delete-after: True
+changes:
+ - bugfix: "removes otie"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-178.yml b/html/changelogs/AutoChangeLog-pr-178.yml
new file mode 100644
index 00000000000..65569752269
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-178.yml
@@ -0,0 +1,4 @@
+author: "Icarus-The-Sun"
+delete-after: True
+changes:
+ - rscadd: "Gives Prisoner's headsets."
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-183.yml b/html/changelogs/AutoChangeLog-pr-183.yml
new file mode 100644
index 00000000000..470e1f3f3f8
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-183.yml
@@ -0,0 +1,4 @@
+author: "Ldip999"
+delete-after: True
+changes:
+ - qol: "Health scanner now displays allergies more visibly"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-184.yml b/html/changelogs/AutoChangeLog-pr-184.yml
new file mode 100644
index 00000000000..7e5e020b296
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-184.yml
@@ -0,0 +1,6 @@
+author: "nevimer"
+delete-after: True
+changes:
+ - rscadd: "sensitive snout is now visible on examine! bullies take note."
+ - balance: "sensitive snout is now not blocked by masks. masks hurt to wear. makes sense."
+ - spellcheck: "changed the word nose to snout and similar for sensitive snoute"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-189.yml b/html/changelogs/AutoChangeLog-pr-189.yml
new file mode 100644
index 00000000000..280ad21bb6b
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-189.yml
@@ -0,0 +1,4 @@
+author: "nevimer"
+delete-after: True
+changes:
+ - config: "Lathe tax is now a config option"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-190.yml b/html/changelogs/AutoChangeLog-pr-190.yml
new file mode 100644
index 00000000000..2f3fbe9bedb
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-190.yml
@@ -0,0 +1,4 @@
+author: "[nevimer](https://github.com/nevimer), [AtoriBirb](https://github.com/AtoriBirb)"
+delete-after: True
+changes:
+ - rscadd: "Status Indicators! Toggle in preferences!"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-192.yml b/html/changelogs/AutoChangeLog-pr-192.yml
new file mode 100644
index 00000000000..ed05665ae17
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-192.yml
@@ -0,0 +1,4 @@
+author: "Ldip999"
+delete-after: True
+changes:
+ - rscadd: "Lustwish added to icebox, inside dorms"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-199.yml b/html/changelogs/AutoChangeLog-pr-199.yml
new file mode 100644
index 00000000000..23c7b3169c9
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-199.yml
@@ -0,0 +1,4 @@
+author: "projectkepler-ru"
+delete-after: True
+changes:
+ - server: "I fucked up"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-203.yml b/html/changelogs/AutoChangeLog-pr-203.yml
new file mode 100644
index 00000000000..936141504dd
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-203.yml
@@ -0,0 +1,4 @@
+author: "KathrinBailey"
+delete-after: True
+changes:
+ - rscadd: "Pancake the cat, a new pet for the psychology! Sponsored by SharkWaifu."
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-207.yml b/html/changelogs/AutoChangeLog-pr-207.yml
new file mode 100644
index 00000000000..86624f77059
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-207.yml
@@ -0,0 +1,13 @@
+author: "Scuhf-git"
+delete-after: True
+changes:
+ - rscadd: "Crippled Bull Horns"
+ - rscadd: "Hollow-Points Horns"
+ - rscadd: "Ticket Rack Horns"
+ - rscadd: "Hopeful Horns Horns"
+ - rscadd: "Analytical Antlers Horns"
+ - rscadd: "Spiders Spikes Horns"
+ - rscadd: "Broad Curls Horns"
+ - rscadd: "Painted Points"
+ - rscadd: "Who's Horns?"
+ - rscadd: "High-rise Horns"
\ No newline at end of file
diff --git a/modular_skyrat/master_files/code/datums/traits/negative.dm b/modular_skyrat/master_files/code/datums/traits/negative.dm
index 5b066c93821..11d7dfc9f45 100644
--- a/modular_skyrat/master_files/code/datums/traits/negative.dm
+++ b/modular_skyrat/master_files/code/datums/traits/negative.dm
@@ -65,3 +65,27 @@
value = -6
mob_trait = TRAIT_NOGUNS
icon = "none"
+
+/datum/quirk/sensitivesnout
+ name = "Sensitive Snout"
+ desc = "Your snout has always been sensitive, and it really hurts when someone pokes it!"
+ gain_text = span_notice("Your snout is awfully sensitive.")
+ lose_text = span_notice("Your snout feels numb.")
+ medical_record_text = "Patient's snout seems to have a cluster of nerves in the tip, would advise against direct contact."
+ value = -2
+ mob_trait = TRAIT_SENSITIVESNOUT
+ icon = "fingerprint"
+
+/datum/quirk/sensitivesnout/post_add()
+ quirk_holder.apply_status_effect(/datum/status_effect/sensitivesnout)
+
+/datum/quirk/sensitivesnout/remove()
+ quirk_holder.remove_status_effect(/datum/status_effect/sensitivesnout)
+
+/datum/status_effect/sensitivesnout
+ id = "sensitivesnout"
+ duration = -1
+ alert_type = null
+
+/datum/status_effect/sensitivesnout/get_examine_text()
+ return span_warning("[owner.p_their(TRUE)] snout is rather bappable...")
diff --git a/modular_skyrat/master_files/code/datums/traits/neutral.dm b/modular_skyrat/master_files/code/datums/traits/neutral.dm
index 1828b27176f..300a3576fe6 100644
--- a/modular_skyrat/master_files/code/datums/traits/neutral.dm
+++ b/modular_skyrat/master_files/code/datums/traits/neutral.dm
@@ -191,12 +191,3 @@
var/obj/item/organ/internal/tongue/dog/new_tongue = new(get_turf(human_holder))
new_tongue.Insert(human_holder)
-/datum/quirk/sensitivesnout
- name = "Sensitive Snout"
- desc = "Your face has always been sensitive, and it really hurts when someone pokes it!"
- gain_text = span_notice("Your face is awfully sensitive.")
- lose_text = span_notice("Your face feels numb.")
- medical_record_text = "Patient's nose seems to have a cluster of nerves in the tip, would advise against direct contact."
- value = 0
- mob_trait = TRAIT_SENSITIVESNOUT
- icon = "fingerprint"
diff --git a/modular_skyrat/master_files/code/modules/projectiles/guns/gun.dm b/modular_skyrat/master_files/code/modules/projectiles/guns/gun.dm
index c7787f8c33f..04c76957ebf 100644
--- a/modular_skyrat/master_files/code/modules/projectiles/guns/gun.dm
+++ b/modular_skyrat/master_files/code/modules/projectiles/guns/gun.dm
@@ -215,6 +215,9 @@
. += "
It has [span_abductor("✌︎︎♌︎︎♎︎︎◆︎︎♍︎︎⧫︎︎❄︎♏︎♍︎♒︎")] engraved into the photon accelerator."
if(COMPANY_REMOVED)
. += "
It has had [span_grey("all identifying marks scrubbed off")]."
+ if(COMPANY_ROMULUS)
+ . += "
It has [span_blue("Romulus Technology")] etched into the barrel."
+
/obj/item/gun/proc/fire_select()
var/mob/living/carbon/human/user = usr
diff --git a/modular_skyrat/master_files/code/modules/research/techweb/protolathe.dm b/modular_skyrat/master_files/code/modules/research/techweb/protolathe.dm
new file mode 100644
index 00000000000..80998cf3216
--- /dev/null
+++ b/modular_skyrat/master_files/code/modules/research/techweb/protolathe.dm
@@ -0,0 +1,29 @@
+/obj/machinery/rnd/production
+ var/total_cost = 0
+ var/on_station_lathe = TRUE
+ var/free_lathe = FALSE
+
+/obj/machinery/rnd/production/proc/lathe_tax()
+ total_cost ? (free_lathe ? 0 : total_cost) : (CONFIG_GET(number/protolathe_tax))
+
+ if(is_station_level(z) && on_station_lathe && total_cost && !free_lathe)
+ var/mob/living/user = usr
+ var/obj/item/card/id/card = user.get_idcard(TRUE)
+ if(!card && istype(user.pulling, /obj/item/card/id))
+ card = user.pulling
+ if(card)
+ var/datum/bank_account/our_acc = card.registered_account
+ if(our_acc.account_job && SSeconomy.get_dep_account(our_acc.account_job?.paycheck_department) == SSeconomy.get_dep_account(payment_department))
+ total_cost = 0 //We are not charging crew for printing their own supplies and equipment.
+ if(!iscarbon(usr)) // catch all cyborg types
+ total_cost = 0
+ if(attempt_charge(src, usr, total_cost) & COMPONENT_OBJ_CANCEL_CHARGE)
+ return FALSE
+
+/obj/machinery/rnd/production/protolathe/offstation
+ on_station_lathe = FALSE
+
+/datum/config_entry/number/protolathe_tax
+ default = 0
+ min_val = 0
+ max_val = 65535
diff --git a/modular_skyrat/modules/blueshield/code/blueshield.dm b/modular_skyrat/modules/blueshield/code/blueshield.dm
index f9d39f4fe76..c7df4570b67 100644
--- a/modular_skyrat/modules/blueshield/code/blueshield.dm
+++ b/modular_skyrat/modules/blueshield/code/blueshield.dm
@@ -54,6 +54,8 @@
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
backpack_contents = list(
/obj/item/storage/box/gunset/blueshield = 1,
+ /obj/item/gun/energy/e_gun/revolver = 1,
+ /obj/item/storage/medkit/tactical/blueshield = 1,
/obj/item/melee/baton/security/loaded = 1,)
implants = list(/obj/item/implant/mindshield)
backpack = /obj/item/storage/backpack/blueshield
@@ -62,6 +64,7 @@
head = /obj/item/clothing/head/beret/blueshield
box = /obj/item/storage/box/survival/security
belt = /obj/item/modular_computer/pda/security
+ r_pocket = /obj/item/flashlight/seclite
id = /obj/item/card/id/advanced/centcom
id_trim = /datum/id_trim/job/blueshield
diff --git a/modular_skyrat/modules/blueshield/code/special.dm b/modular_skyrat/modules/blueshield/code/special.dm
index 3e80dbfed24..b118ceb0387 100644
--- a/modular_skyrat/modules/blueshield/code/special.dm
+++ b/modular_skyrat/modules/blueshield/code/special.dm
@@ -1,7 +1,7 @@
-/obj/item/gun/energy/e_gun/revolver //The virgin gun.
+/obj/item/gun/energy/e_gun/revolver //The gun fit for a kitsune
name = "X-R12 energy revolver"
desc = "An experimental model advanced energy weapon with the capacity to shoot both electrodes and lasers, used by many private defense contractors from Romulus to New Moscow, its also rather heavy and would certainly hurt to get pistol whipped by."
- force = 16
+ force = 12
ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser/blueshield)
ammo_x_offset = 1
charge_sections = 4
@@ -18,13 +18,14 @@
w_class = WEIGHT_CLASS_NORMAL
worn_icon = 'modular_skyrat/modules/aesthetics/guns/icons/guns_back.dmi'
worn_icon_state = "bsrevolver"
+ company_flag = COMPANY_ROMULUS
/obj/item/stock_parts/cell/blueshield
name = "internal revolver power cell"
maxcharge = 1200
- chargerate = 300
+ chargerate = 105 //Hit your shot and don't complain, it's self recharging.
-/obj/item/gun/energy/e_gun/revolver/pdw9 //The chad gun.
+/obj/item/gun/energy/e_gun/revolver/pdw9 //The gun fit for a real man
name = "PDW-9 taser pistol"
desc = "A military grade energy sidearm, used by many militia forces throughout the local sector. It comes with an internally recharging battery which is slow to recharge."
ammo_x_offset = 2
@@ -34,7 +35,7 @@
/obj/item/stock_parts/cell/pdw9
name = "internal pistol power cell"
- maxcharge = 1000
+ maxcharge = 1200
chargerate = 300
var/obj/item/gun/energy/e_gun/revolver/pdw9/parent
diff --git a/modular_skyrat/modules/emote_panel/code/emote_panel.dm b/modular_skyrat/modules/emote_panel/code/emote_panel.dm
index b1974b8e54b..a2218631473 100644
--- a/modular_skyrat/modules/emote_panel/code/emote_panel.dm
+++ b/modular_skyrat/modules/emote_panel/code/emote_panel.dm
@@ -146,7 +146,8 @@
/mob/living/proc/emote_rpurr,
/mob/living/proc/emote_purr,
/mob/living/proc/emote_moo,
- /mob/living/proc/emote_honk1
+ /mob/living/proc/emote_honk1,
+ /mob/living/proc/emote_mggaow
)
all_emotes += skyrat_living_emotes
@@ -1018,3 +1019,8 @@
set name = "| Mark Turf |"
set category = "Emotes+"
usr.emote("turf", intentional = TRUE)
+
+/mob/living/proc/emote_mggaow()
+ set name = "> Mggaow"
+ set category = "Emotes+"
+ usr.emote("mggaow", intentional = TRUE)
\ No newline at end of file
diff --git a/modular_skyrat/modules/emotes/code/emotes.dm b/modular_skyrat/modules/emotes/code/emotes.dm
index 9d40e187182..a6154232bb2 100644
--- a/modular_skyrat/modules/emotes/code/emotes.dm
+++ b/modular_skyrat/modules/emotes/code/emotes.dm
@@ -519,3 +519,11 @@
emote_type = EMOTE_AUDIBLE
vary = TRUE
sound = 'sound/effects/glassbash.ogg'
+
+/datum/emote/living/mggaow
+ key = "mggaow"
+ key_third_person = "meows loudly"
+ message = "meows loudly!"
+ emote_type = EMOTE_AUDIBLE
+ vary = TRUE
+ sound = 'modular_skyrat/modules/emotes/sound/voice/mggaow.ogg'
\ No newline at end of file
diff --git a/modular_skyrat/modules/emotes/sound/voice/mggaow.ogg b/modular_skyrat/modules/emotes/sound/voice/mggaow.ogg
new file mode 100644
index 00000000000..5c3bc5e2c0b
Binary files /dev/null and b/modular_skyrat/modules/emotes/sound/voice/mggaow.ogg differ
diff --git a/modular_skyrat/modules/nanotrasen_rep/code/nanotrasen_consultant.dm b/modular_skyrat/modules/nanotrasen_rep/code/nanotrasen_consultant.dm
index 5930d4c1747..f56de7887ae 100644
--- a/modular_skyrat/modules/nanotrasen_rep/code/nanotrasen_consultant.dm
+++ b/modular_skyrat/modules/nanotrasen_rep/code/nanotrasen_consultant.dm
@@ -44,7 +44,7 @@
name = "Nanotrasen Consultant"
jobtype = /datum/job/nanotrasen_consultant
- belt = /obj/item/modular_computer/pda/nanotrasen_consultant
+ belt = /obj/item/storage/belt/security/peacekeeper
glasses = /obj/item/clothing/glasses/sunglasses
ears = /obj/item/radio/headset/heads/nanotrasen_consultant
gloves = /obj/item/clothing/gloves/combat
@@ -55,6 +55,7 @@
backpack_contents = list(
/obj/item/melee/baton/telescopic = 1,
/obj/item/storage/box/gunset/nanotrasen_consultant = 1,
+ /obj/item/modular_computer/pda/nanotrasen_consultant = 1,
)
skillchips = list(/obj/item/skillchip/disk_verifier)
@@ -124,7 +125,9 @@
new /obj/item/ammo_box/magazine/m45a5(src)
new /obj/item/ammo_box/magazine/m45a5(src)
new /obj/item/ammo_box/magazine/m45a5(src)
-
+ new /obj/item/ammo_box/magazine/m45a5(src)
+ new /obj/item/ammo_box/magazine/m45a5(src)
+ new /obj/item/ammo_box/magazine/m45a5(src)
/obj/structure/closet/secure_closet/nanotrasen_consultant/station
name = "\proper nanotrasen consultant's locker"
diff --git a/modular_skyrat/modules/sec_haul/code/security_medic/security_medic.dm b/modular_skyrat/modules/sec_haul/code/security_medic/security_medic.dm
index efca4b31eb8..7e6f7430571 100644
--- a/modular_skyrat/modules/sec_haul/code/security_medic/security_medic.dm
+++ b/modular_skyrat/modules/sec_haul/code/security_medic/security_medic.dm
@@ -47,7 +47,7 @@
name = "Security Medic"
jobtype = /datum/job/security_medic
- belt = /obj/item/modular_computer/pda/security
+ belt = /obj/item/storage/belt/security/full
ears = /obj/item/radio/headset/headset_medsec
uniform = /obj/item/clothing/under/rank/security/peacekeeper/security_medic
gloves = /obj/item/clothing/gloves/latex/nitrile
@@ -58,6 +58,7 @@
head = /obj/item/clothing/head/beret/sec/peacekeeper/security_medic
backpack_contents = list(
/obj/item/storage/box/gunset/firefly = 1,
+ /obj/item/modular_computer/pda/security = 1,
)
backpack = /obj/item/storage/backpack/security
satchel = /obj/item/storage/backpack/satchel/sec
diff --git a/modular_zubbers/code/game/objects/items/holy_weapons.dm b/modular_zubbers/code/game/objects/items/holy_weapons.dm
index 93e91e904c9..99dfd111d8e 100644
--- a/modular_zubbers/code/game/objects/items/holy_weapons.dm
+++ b/modular_zubbers/code/game/objects/items/holy_weapons.dm
@@ -4,15 +4,14 @@
icon = 'modular_zubbers/icons/obj/items_and_weapons.dmi'
icon_state = "papal_staff"
inhand_icon_state = "papal_staff"
+ belt_icon_state = "baguette"
+ worn_icon_state = "baguette"
lefthand_file = 'modular_zubbers/icons/mob/inhands/weapons/melee_lefthand.dmi'
righthand_file = 'modular_zubbers/icons/mob/inhands/weapons/melee_righthand.dmi'
w_class = WEIGHT_CLASS_BULKY
attack_verb_continuous = list("smacks", "strucks", "cracks", "beats", "purifies")
attack_verb_simple = list("smack", "struck", "crack", "beat", "purify")
-/obj/item/nullrod/papal_staff/get_belt_overlay()
- return mutable_appearance('icons/blanks/32x32.dmi', "nothing")
-
/obj/item/clothing/head/mitre
name = "papal mitre"
desc = "A traditional headdress, worn by bishops and popes in traditional Christianity"
diff --git a/modular_zubbers/code/game/objects/items/reshirevolver.dm b/modular_zubbers/code/game/objects/items/reshirevolver.dm
new file mode 100644
index 00000000000..400f61c367f
--- /dev/null
+++ b/modular_zubbers/code/game/objects/items/reshirevolver.dm
@@ -0,0 +1,67 @@
+/obj/item/gun/ballistic/revolver/hos_revolver
+ name = "\improper HR-460MS 'Tracker'"
+ desc = "A brutally effectve revolver by Romulus officers prior to destruction of the planet, if the initial damage did not kill, the bleedout would. Uses the brutal .460 Rowland ammo."
+ mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rowland
+ icon = 'modular_zubbers/icons/obj/reshirevolver.dmi'
+ icon_state = "tracker"
+ fire_sound = 'modular_skyrat/modules/sec_haul/sound/hpistol_fire.ogg'
+ company_flag = COMPANY_ROMULUS
+ projectile_damage_multiplier = 1.6 //48 Damages, still a lot but not too much
+//With the damage multipler, it would crit in 4, kill in 6. Does not take into account armours.
+
+/obj/item/ammo_box/magazine/internal/cylinder/rowland
+ name = "\improper rowland revolver cylinder"
+ max_ammo = 6
+ ammo_type = /obj/item/ammo_casing/b460
+ caliber = CALIBER_460
+
+/obj/item/storage/bag/b460reloadpouch
+ name = "reload pouch"
+ desc = "A pouch for holding loose casings for .460 Rowland ammo. incompatible with anything else. Fit on your belt too"
+ icon = 'modular_zubbers/icons/obj/pouches.dmi'
+ icon_state = "reloadpouch"
+ slot_flags = ITEM_SLOT_POCKETS | ITEM_SLOT_BELT
+ w_class = WEIGHT_CLASS_BULKY
+ resistance_flags = FLAMMABLE
+
+/obj/item/storage/bag/b460reloadpouch/Initialize(mapload)
+ . = ..()
+ atom_storage.max_specific_storage = WEIGHT_CLASS_SMALL
+ atom_storage.max_total_storage = 30
+ atom_storage.max_slots = 30
+ atom_storage.numerical_stacking = TRUE
+ atom_storage.set_holdable(list(
+ /obj/item/ammo_casing/b460,
+ ))
+
+/obj/item/storage/bag/b460reloadpouch/PopulateContents()
+ . = ..()
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+ new /obj/item/ammo_casing/b460(src)
+
+/obj/item/storage/box/gunset/hos_revolver/PopulateContents()
+ . = ..()
+ new /obj/item/gun/ballistic/revolver/hos_revolver(src)
+ new /obj/item/storage/bag/b460reloadpouch(src)
diff --git a/modular_zubbers/code/modules/clothing/outfits/prison_headset.dm b/modular_zubbers/code/modules/clothing/outfits/prison_headset.dm
new file mode 100644
index 00000000000..b8871e20a6d
--- /dev/null
+++ b/modular_zubbers/code/modules/clothing/outfits/prison_headset.dm
@@ -0,0 +1,5 @@
+/datum/outfit/job/prisoner
+ ears = /obj/item/radio/headset
+
+/datum/outfit/plasmaman/prisoner
+ ears = /obj/item/radio/headset
diff --git a/modular_zubbers/code/modules/customization/sprite_accessories/horns.dm b/modular_zubbers/code/modules/customization/sprite_accessories/horns.dm
new file mode 100644
index 00000000000..21dbf404b39
--- /dev/null
+++ b/modular_zubbers/code/modules/customization/sprite_accessories/horns.dm
@@ -0,0 +1,47 @@
+/datum/sprite_accessory/horns/bubber //sprites by Scuhf_#6640
+ icon = 'modular_zubbers/icons/customization/horns.dmi'
+
+/datum/sprite_accessory/horns/bubber/crippledbull
+ name = "Crippled Bull"
+ icon_state = "crippledbull"
+
+/datum/sprite_accessory/horns/bubber/hollowpoint
+ name = "Hollow-Points"
+ icon_state = "hollowpoint"
+
+/datum/sprite_accessory/horns/bubber/ticketrack
+ name = "Ticket Rack"
+ icon_state = "ticketrack"
+
+/datum/sprite_accessory/horns/bubber/hopefulhorns
+ name = "Hopeful Horns"
+ icon_state = "hopefulhorns"
+
+/datum/sprite_accessory/horns/bubber/analyticalantlers
+ name = "Analytical Antlers"
+ icon_state = "analyticalantlers"
+
+/datum/sprite_accessory/horns/bubber/spidersspikes
+ name = "Spiders Spikes"
+ icon_state = "spidersspikes"
+
+/datum/sprite_accessory/horns/bubber/broadcurls
+ name = "Broad Curls"
+ icon_state = "broadcurls"
+
+
+/datum/sprite_accessory/horns/bubber/big
+ icon = 'modular_zubbers/icons/customization/horns_big.dmi'
+
+/datum/sprite_accessory/horns/bubber/big/paintedpoints
+ name = "Painted Points"
+ icon_state = "paintedpoints"
+
+/datum/sprite_accessory/horns/bubber/big/whoshorns
+ name = "Who's Horns?"
+ icon_state = "whoshorns"
+
+/datum/sprite_accessory/horns/bubber/big/highrisehorns //end of sprites by Scuhf_#6640
+ name = "High-rise Horns"
+ icon_state = "highrisehorns"
+
diff --git a/modular_zubbers/code/modules/mob/living/living.dm b/modular_zubbers/code/modules/mob/living/living.dm
new file mode 100644
index 00000000000..840c112204e
--- /dev/null
+++ b/modular_zubbers/code/modules/mob/living/living.dm
@@ -0,0 +1,3 @@
+/mob/living/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/status_indicator)
diff --git a/modular_zubbers/code/modules/status_indicators/status_indicator.dm b/modular_zubbers/code/modules/status_indicators/status_indicator.dm
new file mode 100644
index 00000000000..cb7fc0338b0
--- /dev/null
+++ b/modular_zubbers/code/modules/status_indicators/status_indicator.dm
@@ -0,0 +1,222 @@
+
+GLOBAL_LIST_INIT(potential_indicators, list(
+ STUNNED = image(icon = 'modular_zubbers/icons/mob/status_indicators.dmi', icon_state = STUNNED),
+ WEAKEN = image(icon = 'modular_zubbers/icons/mob/status_indicators.dmi', icon_state = WEAKEN),
+ PARALYSIS = image(icon = 'modular_zubbers/icons/mob/status_indicators.dmi', icon_state = PARALYSIS),
+ SLEEPING = image(icon = 'modular_zubbers/icons/mob/status_indicators.dmi', icon_state = SLEEPING),
+ CONFUSED = image(icon = 'modular_zubbers/icons/mob/status_indicators.dmi', icon_state = CONFUSED),
+))
+
+/datum/component/status_indicator
+ var/list/status_indicators = null // Will become a list as needed. Contains our status indicator objects. Note, they are actually added to overlays, this just keeps track of what exists.
+ var/mob/living/attached_mob
+
+/// Returns true if the mob is weakened. Also known as floored.
+/datum/component/status_indicator/proc/is_weakened()
+ if(!indicator_fakeouts() && \
+ attached_mob.IsKnockdown() || \
+ HAS_TRAIT(attached_mob, TRAIT_FLOORED) && \
+ !HAS_TRAIT_FROM(attached_mob, TRAIT_FLOORED, BUCKLED_TRAIT)
+ )
+ return TRUE
+
+/// Returns true if the mob is stunned.
+/datum/component/status_indicator/proc/is_stunned()
+ if(!indicator_fakeouts() && \
+ HAS_TRAIT_FROM(attached_mob, TRAIT_INCAPACITATED, TRAIT_STATUS_EFFECT(STAT_TRAIT)) || \
+ HAS_TRAIT(attached_mob, TRAIT_CRITICAL_CONDITION) || \
+ HAS_TRAIT_FROM(attached_mob, TRAIT_IMMOBILIZED, TRAIT_STATUS_EFFECT(STAT_TRAIT)) || \
+ HAS_TRAIT_FROM(attached_mob, TRAIT_IMMOBILIZED, CHOKEHOLD_TRAIT) || \
+ HAS_TRAIT_FROM(attached_mob, TRAIT_INCAPACITATED, TRAIT_STATUS_EFFECT(STAT_TRAIT)) || \
+ HAS_TRAIT_FROM(attached_mob, TRAIT_IMMOBILIZED, TRAIT_STATUS_EFFECT(STAT_TRAIT))
+ )
+ return TRUE
+
+/// Returns true if the mob is paralyzed - for can't fight back purposes.
+/datum/component/status_indicator/proc/is_paralyzed()
+ if(!indicator_fakeouts() && \
+ attached_mob.IsParalyzed() || \
+ HAS_TRAIT_FROM(attached_mob, TRAIT_FLOORED, CHOKEHOLD_TRAIT) || \
+ HAS_TRAIT_FROM(attached_mob, TRAIT_IMMOBILIZED, TRAIT_STATUS_EFFECT(STAT_TRAIT)) || \
+ HAS_TRAIT(attached_mob, TRAIT_CRITICAL_CONDITION) || \
+ HAS_TRAIT_FROM(attached_mob, TRAIT_INCAPACITATED, STAMINA))
+ return TRUE
+
+/// Returns true if the mob is unconcious for any reason.
+/datum/component/status_indicator/proc/is_unconcious()
+ if(!indicator_fakeouts() && HAS_TRAIT(attached_mob, TRAIT_KNOCKEDOUT))
+ return TRUE
+
+/// Returns true if the mob has confusion.
+/datum/component/status_indicator/proc/is_confused()
+ if(!indicator_fakeouts() && attached_mob.has_status_effect(/datum/status_effect/confusion))
+ return TRUE
+
+/datum/component/status_indicator/RegisterWithParent()
+ attached_mob = parent
+ // The Basics
+ RegisterSignal(parent, COMSIG_LIVING_DEATH, PROC_REF(cut_indicators_overlays))
+ RegisterSignal(parent, COMSIG_LIVING_LIFE, PROC_REF(status_indicator_evaluate))
+ // When things actually happen
+ RegisterSignal(parent, COMSIG_LIVING_STATUS_STUN, PROC_REF(status_indicator_evaluate))
+ RegisterSignal(parent, COMSIG_LIVING_STATUS_KNOCKDOWN, PROC_REF(status_indicator_evaluate))
+ RegisterSignal(parent, COMSIG_LIVING_STATUS_PARALYZE, PROC_REF(status_indicator_evaluate))
+ RegisterSignal(parent, COMSIG_LIVING_STATUS_IMMOBILIZE, PROC_REF(status_indicator_evaluate))
+ RegisterSignal(parent, COMSIG_LIVING_STATUS_UNCONSCIOUS, PROC_REF(status_indicator_evaluate))
+ RegisterSignal(parent, COMSIG_MOB_LOGIN, PROC_REF(apply_pref_on_login))
+
+/datum/component/status_indicator/proc/apply_pref_on_login()
+ var/atom/movable/screen/plane_master/game_world_upper_fov_hidden/local_status = locate() in attached_mob.client.screen
+ if(local_status)
+ . = attached_mob.client.prefs.read_preference(/datum/preference/toggle/enable_status_indicators)
+ local_status.alpha = (.) ? 255 : 0
+
+/datum/component/status_indicator/UnregisterFromParent()
+ QDEL_NULL(status_indicators)
+ UnregisterSignal(attached_mob, COMSIG_LIVING_DEATH)
+ UnregisterSignal(attached_mob, COMSIG_LIVING_LIFE)
+ UnregisterSignal(attached_mob, COMSIG_LIVING_STATUS_STUN)
+ UnregisterSignal(attached_mob, COMSIG_LIVING_STATUS_KNOCKDOWN)
+ UnregisterSignal(attached_mob, COMSIG_LIVING_STATUS_PARALYZE)
+ UnregisterSignal(attached_mob, COMSIG_LIVING_STATUS_IMMOBILIZE)
+ UnregisterSignal(attached_mob, COMSIG_LIVING_STATUS_UNCONSCIOUS)
+ attached_mob = null
+/// This proc makes it so that mobs that have status indicators are checked to remove them, especially in fakeout situations.
+/datum/component/status_indicator/proc/check_indicators()
+ if(status_indicators)
+ status_indicator_evaluate()
+
+/// Receives signals to update on carbon health updates. Checks if the mob is dead - if true, removes all the indicators. Then, we determine what status indicators the mob should carry or remove.
+/datum/component/status_indicator/proc/status_indicator_evaluate()
+ SIGNAL_HANDLER
+ if(attached_mob.stat == DEAD)
+ return
+ else
+ weaken_indicator_update()
+ paralyzed_indicator_update()
+ stunned_indicator_update()
+ unconcious_indicator_update()
+ confused_indicator_update()
+ return
+/// Cases in which no status indicators should appear above a mob, such as changeling revive and regen coma.
+/datum/component/status_indicator/proc/indicator_fakeouts()
+ if(HAS_TRAIT(attached_mob, TRAIT_DEATHCOMA))
+ return TRUE
+ return FALSE
+
+/datum/component/status_indicator/proc/weaken_indicator_update()
+ SIGNAL_HANDLER
+ is_weakened() ? add_status_indicator(WEAKEN) : remove_status_indicator(WEAKEN)
+/datum/component/status_indicator/proc/paralyzed_indicator_update()
+ SIGNAL_HANDLER
+ is_paralyzed() ? add_status_indicator(PARALYSIS) : remove_status_indicator(PARALYSIS)
+/datum/component/status_indicator/proc/stunned_indicator_update()
+ SIGNAL_HANDLER
+ is_stunned() ? add_status_indicator(STUNNED) : remove_status_indicator(STUNNED)
+/datum/component/status_indicator/proc/unconcious_indicator_update()
+ SIGNAL_HANDLER
+ is_unconcious() ? add_status_indicator(SLEEPING) : remove_status_indicator(SLEEPING)
+/datum/component/status_indicator/proc/confused_indicator_update()
+ SIGNAL_HANDLER
+ is_confused() ? add_status_indicator(CONFUSED) : remove_status_indicator(CONFUSED)
+
+/// Adds a status indicator to the mob. Takes an image as an argument. If it exists, it won't dupe it.
+/datum/component/status_indicator/proc/add_status_indicator(image/prospective_indicator)
+ if(get_status_indicator(prospective_indicator)) // No duplicates, please.
+ return
+
+ prospective_indicator = GLOB.potential_indicators[prospective_indicator]
+ prospective_indicator.loc = src
+ LAZYADD(status_indicators, prospective_indicator)
+ handle_status_indicators(prospective_indicator)
+
+/// Similar to add_status_indicator() but removes it instead, and nulls the list if it becomes empty as a result.
+/datum/component/status_indicator/proc/remove_status_indicator(image/prospective_indicator)
+ prospective_indicator = get_status_indicator(prospective_indicator)
+
+ attached_mob.cut_overlay(prospective_indicator)
+ LAZYREMOVE(status_indicators, prospective_indicator)
+ handle_status_indicators(prospective_indicator)
+
+/// Finds a status indicator on a mob.
+/datum/component/status_indicator/proc/get_status_indicator(image/prospective_indicator)
+
+ for(var/image/indicator in status_indicators)
+ if(indicator.icon_state == prospective_indicator)
+ return indicator
+ return LAZYACCESS(status_indicators, LAZYFIND(status_indicators, prospective_indicator))
+
+/// Cuts all the indicators on a mob in a loop.
+/datum/component/status_indicator/proc/cut_indicators_overlays()
+ SIGNAL_HANDLER
+ for(var/prospective_indicator in status_indicators)
+ attached_mob.cut_overlay(prospective_indicator)
+
+/// Refreshes the indicators over a mob's head. Should only be called when adding or removing a status indicator with the above procs,
+/// or when the mob changes size visually for some reason.
+/datum/component/status_indicator/proc/handle_status_indicators(image/prospective_indicator)
+ // First, get rid of all the overlays.
+
+ cut_indicators_overlays()
+
+ if(!LAZYLEN(status_indicators))
+ return
+
+ var/mob/living/carbon/my_carbon_mob = attached_mob
+
+ var/icon_scale = get_icon_scale(my_carbon_mob)
+
+ if(my_carbon_mob.stat == DEAD)
+ cut_indicators_overlays()
+ return
+
+ // Now put them back on in the right spot.
+ var/our_sprite_x = 16 * icon_scale
+ var/our_sprite_y = 24 * icon_scale
+
+ var/x_offset = our_sprite_x // Add your own offset here later if you want.
+ var/y_offset = our_sprite_y + STATUS_INDICATOR_Y_OFFSET
+
+ // Calculates how 'long' the row of indicators and the margin between them should be.
+ // The goal is to have the center of that row be horizontally aligned with the sprite's center.
+ var/expected_status_indicator_length = (STATUS_INDICATOR_ICON_X_SIZE * status_indicators.len) + (STATUS_INDICATOR_ICON_MARGIN * max(status_indicators.len - 1, 0))
+ var/current_x_position = (x_offset / 2) - (expected_status_indicator_length / 2)
+
+ // In /mob/living's `update_transform()`, the sprite is horizontally shifted when scaled up, so that the center of the sprite doesn't move to the right.
+ // Because of that, this adjustment needs to happen with the future indicator row as well, or it will look bad.
+ current_x_position -= 16 * (icon_scale - DEFAULT_MOB_SCALE)
+
+ // Now the indicator row can actually be built.
+ for(var/all_indicators in status_indicators)
+ var/image/indicator = all_indicators
+
+ // This is a semi-HUD element, in a similar manner as medHUDs, in that they're 'above' everything else in the world,
+ // but don't pierce obfuscation layers such as blindness or darkness, unlike actual HUD elements like inventory slots.
+ indicator.plane = GAME_PLANE_UPPER_FOV_HIDDEN
+ indicator.layer = STATUS_LAYER
+ indicator.appearance_flags = PIXEL_SCALE|TILE_BOUND|NO_CLIENT_COLOR|RESET_COLOR|RESET_ALPHA|RESET_TRANSFORM|KEEP_APART
+ indicator.pixel_y = y_offset
+ indicator.pixel_x = current_x_position
+ my_carbon_mob.add_overlay(indicator)
+ // Adding the margin space every time saves a conditional check on the last iteration,
+ // and it won't cause any issues since no more icons will be added, and the var is not used for anything else.
+ current_x_position += STATUS_INDICATOR_ICON_X_SIZE + STATUS_INDICATOR_ICON_MARGIN
+
+/datum/component/status_indicator/proc/get_icon_scale(livingmob)
+ if(!iscarbon(livingmob)) // normal mobs are always 1 for scale - hopefully all borgs and simplemobs get this one
+ return DEFAULT_MOB_SCALE
+ var/mob/living/carbon/passed_mob = livingmob // we're possibly a player! We have size prefs!
+ var/mysize = (passed_mob.dna?.current_body_size ? passed_mob.dna.current_body_size : DEFAULT_MOB_SCALE)
+ return mysize
+
+/*
+/atom/movable/screen/plane_master/game_world_upper_fov_hidden/status_indicator
+ name = "Status Indicator Plane"
+ documentation = "Status Indicator Plane"
+ plane = GAME_PLANE_UPPER_FOV_HIDDEN
+ start_hidden = FALSE
+*/
+
+#undef STATUS_INDICATOR_Y_OFFSET
+#undef STATUS_INDICATOR_ICON_X_SIZE
+#undef STATUS_INDICATOR_ICON_MARGIN
diff --git a/modular_zubbers/code/modules/status_indicators/status_indicator_pref.dm b/modular_zubbers/code/modules/status_indicators/status_indicator_pref.dm
new file mode 100644
index 00000000000..87a8fd20f18
--- /dev/null
+++ b/modular_zubbers/code/modules/status_indicators/status_indicator_pref.dm
@@ -0,0 +1,26 @@
+/datum/preference/toggle/enable_status_indicators
+ category = PREFERENCE_CATEGORY_GAME_PREFERENCES
+ savefile_key = "enable_status_indicators"
+ savefile_identifier = PREFERENCE_PLAYER
+
+/datum/preference/toggle/enable_status_indicators/create_default_value()
+ return TRUE
+
+
+/datum/preference/toggle/enable_status_indicators/apply_to_client(client/client, value)
+ if(client.mob)
+ var/datum/component/status_indicator/mystatus = client.mob.GetComponent(/datum/component/status_indicator)
+ if(mystatus)
+ mystatus.apply_pref_on_login()
+
+/* if(client && client.prefs)
+ . = client?.prefs?.read_preference(/datum/preference/toggle/enable_status_indicators)
+ var/atom/movable/screen/plane_master/status/status_indicators = locate() in client.screen
+ if(isnull(status_indicators))
+ new /atom/movable/screen/plane_master/status in client.screen
+ status_indicators = locate() in client.screen
+ if(length(status_indicators) < 1)
+ pop(status_indicators)
+ (.) ? (status_indicators.alpha = 255) : (status_indicators.alpha = 0)
+
+ */
diff --git a/modular_zubbers/icons/customization/horns.dmi b/modular_zubbers/icons/customization/horns.dmi
new file mode 100644
index 00000000000..f8515044917
Binary files /dev/null and b/modular_zubbers/icons/customization/horns.dmi differ
diff --git a/modular_zubbers/icons/customization/horns_big.dmi b/modular_zubbers/icons/customization/horns_big.dmi
new file mode 100644
index 00000000000..680a1479782
Binary files /dev/null and b/modular_zubbers/icons/customization/horns_big.dmi differ
diff --git a/modular_zubbers/icons/mob/simple/pets.dmi b/modular_zubbers/icons/mob/simple/pets.dmi
new file mode 100644
index 00000000000..d536061a06c
Binary files /dev/null and b/modular_zubbers/icons/mob/simple/pets.dmi differ
diff --git a/modular_zubbers/icons/mob/status_indicators.dmi b/modular_zubbers/icons/mob/status_indicators.dmi
new file mode 100644
index 00000000000..9c80c2bf10a
Binary files /dev/null and b/modular_zubbers/icons/mob/status_indicators.dmi differ
diff --git a/modular_zubbers/icons/obj/pouches.dmi b/modular_zubbers/icons/obj/pouches.dmi
new file mode 100644
index 00000000000..24b2462e5b3
Binary files /dev/null and b/modular_zubbers/icons/obj/pouches.dmi differ
diff --git a/modular_zubbers/icons/obj/reshirevolver.dmi b/modular_zubbers/icons/obj/reshirevolver.dmi
new file mode 100644
index 00000000000..b5a1c8d958c
Binary files /dev/null and b/modular_zubbers/icons/obj/reshirevolver.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index 0abd62f6d21..6c5ec3fed0c 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -388,8 +388,10 @@
#include "code\__DEFINES\~skyrat_defines\_HELPERS\atmos_mapping_helpers.dm"
#include "code\__DEFINES\~skyrat_defines\_HELPERS\lighting.dm"
#include "code\__DEFINES\~~bubber_defines\access.dm"
+#include "code\__DEFINES\~~bubber_defines\jobs.dm"
#include "code\__DEFINES\~~bubber_defines\quirk_whitelist.dm"
#include "code\__DEFINES\~~bubber_defines\species.dm"
+#include "code\__DEFINES\~~bubber_defines\status_indicator_defines.dm"
#include "code\__DEFINES\~~bubber_defines\traits.dm"
#include "code\__HELPERS\_auxtools_api.dm"
#include "code\__HELPERS\_lists.dm"
@@ -5354,6 +5356,7 @@
#include "modular_skyrat\master_files\code\modules\research\designs\misc_designs.dm"
#include "modular_skyrat\master_files\code\modules\research\machinery\departmental_circuit_imprinter.dm"
#include "modular_skyrat\master_files\code\modules\research\techweb\all_nodes.dm"
+#include "modular_skyrat\master_files\code\modules\research\techweb\protolathe.dm"
#include "modular_skyrat\master_files\code\modules\shuttle\shuttle.dm"
#include "modular_skyrat\master_files\code\modules\surgery\surgery.dm"
#include "modular_skyrat\master_files\code\modules\surgery\organs\tongue.dm"
@@ -6694,16 +6697,22 @@
#include "modular_zubbers\code\datums\bubber_quirks\hydrophilic.dm"
#include "modular_zubbers\code\datums\id_trim\jobs.dm"
#include "modular_zubbers\code\game\area\areas\station.dm"
+#include "modular_zubbers\code\game\objects\effects\decals.dm"
#include "modular_zubbers\code\game\objects\effects\landmarks.dm"
#include "modular_zubbers\code\game\objects\effects\items\plushes.dm"
#include "modular_zubbers\code\game\objects\items\plushes.dm"
+#include "modular_zubbers\code\game\objects\items\holy_weapons.dm"
+#include "modular_zubbers\code\game\objects\items\reshirevolver.dm"
#include "modular_zubbers\code\game\objects\items\food\misc.dm"
+#include "modular_zubbers\code\modules\_defines.dm"
#include "modular_zubbers\code\modules\clothing\head\helmet.dm"
#include "modular_zubbers\code\modules\clothing\outfits\plasmaman.dm"
+#include "modular_zubbers\code\modules\clothing\outfits\prison_headset.dm"
#include "modular_zubbers\code\modules\clothing\suits\armor.dm"
#include "modular_zubbers\code\modules\clothing\suits\jacket.dm"
#include "modular_zubbers\code\modules\customization\sprite_accessories\ears.dm"
#include "modular_zubbers\code\modules\customization\sprite_accessories\genitals.dm"
+#include "modular_zubbers\code\modules\customization\sprite_accessories\horns.dm"
#include "modular_zubbers\code\modules\customization\sprite_accessories\tails.dm"
#include "modular_zubbers\code\modules\customization\sprite_accessories\taurs.dm"
#include "modular_zubbers\code\modules\dynamic\midround_rulesets.dm"
@@ -6714,6 +6723,7 @@
#include "modular_zubbers\code\modules\loadouts\loadout_items\loadout_datum_toys.dm"
#include "modular_zubbers\code\modules\mapping\access_helpers.dm"
#include "modular_zubbers\code\modules\mob\dead\new_player\sprite_accessories.dm"
+#include "modular_zubbers\code\modules\mob\living\living.dm"
#include "modular_zubbers\code\modules\mob\living\carbon\human\human.dm"
#include "modular_zubbers\code\modules\mob\living\carbon\human\species_types\felinid.dm"
#include "modular_zubbers\code\modules\mob\living\carbon\human\species_types\shadekin.dm"
@@ -6721,6 +6731,8 @@
#include "modular_zubbers\code\modules\mod\mod_theme.dm"
#include "modular_zubbers\code\modules\mod\mod_types.dm"
#include "modular_zubbers\code\modules\projectiles\guns\energy\pulse.dm"
+#include "modular_zubbers\code\modules\status_indicators\status_indicator.dm"
+#include "modular_zubbers\code\modules\status_indicators\status_indicator_pref.dm"
#include "modular_zubbers\code\modules\surgery\bodyparts\species_parts\misc_bodyparts.dm"
#include "modular_zubbers\code\modules\vending\wardrobe.dm"
// END_INCLUDE
diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/skyrat/status_indicators.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/skyrat/status_indicators.tsx
new file mode 100644
index 00000000000..bb1eac18f2c
--- /dev/null
+++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/skyrat/status_indicators.tsx
@@ -0,0 +1,8 @@
+import { CheckboxInput, FeatureToggle } from '../../base';
+
+export const enable_status_indicators: FeatureToggle = {
+ name: 'Display Status Indicators',
+ category: 'GAMEPLAY',
+ description: 'This toggles whether or not you will see status indicators.',
+ component: CheckboxInput,
+};