diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index d6e413f1de..f8b44323a7 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -2292,8 +2292,7 @@
/turf/open/floor/plating,
/area/crew_quarters/fitness/recreation)
"aeD" = (
-/obj/machinery/door/airlock/external,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/grimy,
/area/hallway/primary/port)
"aeE" = (
/obj/effect/spawner/structure/window/reinforced,
@@ -3116,9 +3115,6 @@
},
/turf/open/floor/plasteel,
/area/security/prison)
-"afQ" = (
-/turf/open/floor/plating,
-/area/hallway/primary/port)
"afR" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 1
@@ -3188,8 +3184,14 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/security/armory)
"afZ" = (
-/obj/structure/girder,
-/turf/open/floor/plating,
+/obj/machinery/camera{
+ c_tag = "Arrivals - Lounge";
+ dir = 4
+ },
+/obj/structure/chair/comfy{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
/area/hallway/primary/port)
"aga" = (
/obj/effect/turf_decal/tile/neutral{
@@ -3670,8 +3672,10 @@
/turf/open/floor/plasteel/dark,
/area/security/prison)
"agQ" = (
-/obj/item/electronics/airlock,
-/turf/open/floor/plating,
+/obj/machinery/holopad{
+ pixel_y = -15
+ },
+/turf/open/floor/carpet,
/area/hallway/primary/port)
"agR" = (
/obj/machinery/airalarm{
@@ -4281,9 +4285,7 @@
},
/area/maintenance/fore)
"ahT" = (
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
+/turf/open/floor/carpet,
/area/hallway/primary/port)
"ahU" = (
/obj/effect/decal/cleanable/cobweb/cobweb2,
@@ -4802,13 +4804,14 @@
/turf/open/floor/plasteel/dark,
/area/crew_quarters/fitness/recreation)
"aiT" = (
-/obj/effect/decal/cleanable/oil{
- icon_state = "floor5"
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
},
-/turf/open/floor/plating{
- icon_state = "panelscorched"
+/obj/machinery/light{
+ dir = 4
},
-/area/hallway/primary/port)
+/turf/open/floor/plasteel/white/corner,
+/area/hallway/secondary/entry)
"aiU" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/effect/turf_decal/tile/neutral{
@@ -4830,9 +4833,13 @@
/turf/open/floor/plasteel/dark,
/area/crew_quarters/fitness/recreation)
"aiW" = (
-/turf/open/floor/plating{
- icon_state = "platingdmg1"
+/obj/structure/chair/comfy{
+ dir = 8
},
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
/area/hallway/primary/port)
"aiX" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -4936,12 +4943,11 @@
/turf/open/floor/plating,
/area/maintenance/port/fore)
"ajk" = (
-/obj/structure/shuttle/engine/propulsion/right{
- dir = 4
- },
-/turf/open/floor/plating{
- icon_state = "platingdmg3"
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green{
+ pixel_y = 3
},
+/turf/open/floor/plasteel/grimy,
/area/hallway/primary/port)
"ajl" = (
/obj/item/soap/deluxe,
@@ -5035,8 +5041,10 @@
/turf/open/floor/plasteel/dark,
/area/security/warden)
"ajs" = (
-/obj/item/stack/sheet/metal/ten,
-/turf/open/floor/plating,
+/obj/item/kirbyplants{
+ icon_state = "plant-08"
+ },
+/turf/open/floor/plasteel/grimy,
/area/hallway/primary/port)
"ajt" = (
/obj/structure/closet{
@@ -5059,8 +5067,20 @@
/turf/open/floor/plasteel/dark,
/area/security/warden)
"aju" = (
-/obj/item/stack/sheet/mineral/wood/twenty,
-/turf/open/floor/plating,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
/area/hallway/primary/port)
"ajv" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
@@ -6921,9 +6941,17 @@
/turf/open/floor/plating,
/area/maintenance/fore)
"amv" = (
-/obj/item/stack/sheet/metal/ten,
-/obj/item/wrench,
-/turf/open/floor/plating,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
/area/hallway/primary/port)
"amw" = (
/obj/structure/window/reinforced,
@@ -6961,10 +6989,6 @@
/obj/structure/window/reinforced,
/turf/open/floor/plasteel/dark,
/area/crew_quarters/fitness/recreation)
-"amB" = (
-/obj/effect/decal/cleanable/blood/old,
-/turf/open/floor/plating,
-/area/hallway/primary/port)
"amC" = (
/obj/structure/chair{
dir = 4
@@ -24081,9 +24105,10 @@
icon_state = "map-right-MS";
pixel_y = 32
},
-/turf/open/floor/plasteel/white/corner{
+/obj/effect/turf_decal/tile/blue{
dir = 4
},
+/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"aVE" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
@@ -31733,28 +31758,22 @@
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/turf/open/floor/plasteel/white/corner,
+/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"bjX" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
},
-/obj/machinery/door/firedoor,
-/turf/open/floor/plasteel,
-/area/hallway/primary/port)
+/turf/open/floor/plasteel/cafeteria,
+/area/hallway/secondary/entry)
"bjY" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/obj/machinery/light{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
+/obj/machinery/door/firedoor,
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"bjZ" = (
@@ -31814,6 +31833,12 @@
dir = 1
},
/obj/structure/cable,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"bke" = (
@@ -31826,6 +31851,9 @@
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"bkf" = (
@@ -31845,6 +31873,9 @@
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"bkg" = (
@@ -32823,39 +32854,23 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
},
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/corner,
/obj/structure/cable/yellow{
icon_state = "1-2"
},
/obj/structure/cable/yellow{
icon_state = "2-4"
},
-/turf/open/floor/plasteel/white/corner,
+/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"blU" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line,
-/obj/machinery/door/firedoor,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/turf/open/floor/plasteel,
-/area/hallway/primary/port)
-"blV" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
},
-/obj/effect/turf_decal/stripes/line,
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/port)
+/turf/open/floor/plasteel/white/corner,
+/area/hallway/secondary/entry)
"blW" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -32864,7 +32879,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/effect/turf_decal/stripes/line,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
@@ -32875,7 +32889,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/effect/turf_decal/stripes/line,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
@@ -32890,7 +32903,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/effect/turf_decal/stripes/line,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
@@ -32904,7 +32916,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/effect/turf_decal/stripes/line,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
@@ -32918,7 +32929,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/effect/turf_decal/stripes/line,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
@@ -32931,10 +32941,13 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/effect/turf_decal/stripes/line,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"bmc" = (
@@ -32944,8 +32957,8 @@
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/effect/turf_decal/stripes/corner{
- dir = 1
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
},
/turf/open/floor/plasteel,
/area/hallway/primary/port)
@@ -32956,6 +32969,9 @@
/obj/structure/cable/yellow{
icon_state = "2-8"
},
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"bme" = (
@@ -33830,30 +33846,9 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
-"bnL" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/newscaster{
- pixel_x = 28;
- pixel_y = 1
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/white/corner,
-/area/hallway/secondary/entry)
"bnR" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/bot,
-/obj/structure/sign/mining,
-/turf/open/floor/plasteel,
+/obj/structure/chair/comfy,
+/turf/open/floor/plasteel/grimy,
/area/hallway/primary/port)
"bnS" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -33863,7 +33858,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/effect/turf_decal/stripes/line{
+/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel,
@@ -33878,6 +33873,9 @@
/obj/structure/cable/yellow{
icon_state = "1-2"
},
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"bnU" = (
@@ -34956,29 +34954,19 @@
"bqc" = (
/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/machinery/light{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/turf/open/floor/plasteel/white/corner,
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"bqd" = (
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
+/obj/machinery/door/firedoor,
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"bqj" = (
@@ -34987,7 +34975,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/effect/turf_decal/stripes/line{
+/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel,
@@ -36217,16 +36205,10 @@
/area/hallway/secondary/entry)
"bso" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/turf/open/floor/plasteel/white/corner,
+/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"bsu" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
@@ -36236,7 +36218,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/effect/turf_decal/stripes/line{
+/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel,
@@ -36248,6 +36230,7 @@
/obj/structure/cable/yellow{
icon_state = "1-2"
},
+/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"bsw" = (
@@ -37020,29 +37003,25 @@
/area/hallway/secondary/entry)
"btY" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/effect/turf_decal/stripes/line{
- dir = 8
+/obj/structure/disposalpipe/segment{
+ dir = 9
},
-/obj/machinery/camera{
- c_tag = "Port Primary Hallway - Port";
- dir = 4
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
},
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"btZ" = (
-/obj/machinery/light{
- dir = 4
- },
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/structure/cable/yellow{
icon_state = "1-2"
},
+/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"bua" = (
@@ -37847,26 +37826,23 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"bvK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"bvL" = (
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
},
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/turf/open/floor/plasteel/white/corner,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"bvT" = (
/obj/structure/disposalpipe/segment{
@@ -37878,15 +37854,16 @@
/turf/open/floor/plating,
/area/maintenance/department/science/xenobiology)
"bvV" = (
-/obj/structure/extinguisher_cabinet{
- pixel_x = 27
- },
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
/obj/structure/cable/yellow{
icon_state = "1-2"
},
+/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"bvW" = (
@@ -38677,28 +38654,36 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/turf/open/floor/plasteel,
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/white/corner,
/area/hallway/secondary/entry)
"bxC" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 9
},
-/turf/open/floor/plasteel,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/white/corner,
/area/hallway/secondary/entry)
"bxD" = (
/obj/effect/turf_decal/tile/blue{
- dir = 4
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/machinery/light{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
},
/obj/structure/cable/yellow{
icon_state = "1-2"
},
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
/turf/open/floor/plasteel/white/corner,
/area/hallway/secondary/entry)
"bxL" = (
@@ -38718,15 +38703,13 @@
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
/obj/structure/cable/yellow{
icon_state = "1-4"
},
-/obj/structure/cable/yellow{
- icon_state = "2-4"
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
},
+/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"bxO" = (
@@ -39609,23 +39592,14 @@
/turf/open/floor/plasteel/dark,
/area/aisat)
"bzw" = (
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/door/firedoor,
-/obj/machinery/newscaster{
- pixel_x = 28;
- pixel_y = 1
+/obj/machinery/door/airlock{
+ name = "Port Emergency Storage"
},
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/turf/open/floor/plasteel/white/corner,
-/area/hallway/secondary/entry)
+/turf/open/floor/plating,
+/area/maintenance/port)
"bzx" = (
/turf/closed/wall,
/area/security/vacantoffice)
@@ -40285,45 +40259,22 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
-"bBd" = (
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/structure/cable/yellow{
- icon_state = "2-4"
- },
-/turf/open/floor/plasteel,
-/area/hallway/secondary/entry)
"bBf" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
+/obj/structure/table/wood,
+/obj/machinery/light_switch{
+ pixel_x = -28
},
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/port)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/item/folder,
+/turf/open/floor/wood,
+/area/security/vacantoffice)
"bBg" = (
/turf/open/floor/wood,
/area/security/vacantoffice)
"bBh" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/structure/cable/yellow{
- icon_state = "2-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "2-4"
- },
-/turf/open/floor/plasteel,
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/snacks/chips,
+/turf/open/floor/plasteel/grimy,
/area/hallway/primary/port)
"bBi" = (
/obj/structure/table/wood,
@@ -41039,33 +40990,29 @@
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/turf/open/floor/plasteel/white/corner,
-/area/hallway/secondary/entry)
-"bCI" = (
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
/obj/effect/turf_decal/tile/blue{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 5
+/turf/open/floor/plasteel/white/corner,
+/area/hallway/secondary/entry)
+"bCI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
},
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/turf/open/floor/plasteel/white/corner,
-/area/hallway/secondary/entry)
+/turf/open/floor/plating,
+/area/maintenance/port)
"bCJ" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+/obj/item/storage/toolbox/emergency,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
},
-/obj/machinery/door/firedoor,
-/turf/open/floor/plasteel,
-/area/hallway/primary/port)
+/area/maintenance/port)
"bCK" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -41074,66 +41021,35 @@
/turf/open/floor/plating,
/area/maintenance/starboard)
"bCL" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/firealarm{
- pixel_y = -24
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/port)
+/turf/open/floor/wood,
+/area/security/vacantoffice)
"bCM" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/item/radio/intercom{
- pixel_y = -28
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/port)
+/obj/structure/table/wood,
+/turf/open/floor/wood,
+/area/security/vacantoffice)
"bCN" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/machinery/door/firedoor,
-/obj/machinery/power/apc{
- areastring = "/area/hallway/secondary/entry";
- dir = 8;
- name = "Arrivals APC";
- pixel_x = -26
- },
-/obj/structure/cable/yellow{
- icon_state = "0-4"
- },
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"bCP" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/structure/sign/map/right{
- desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown).";
- icon_state = "map-right-MS";
- pixel_y = -32
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/port)
+/turf/open/floor/plating,
+/area/crew_quarters/toilet/auxiliary)
"bCQ" = (
/obj/machinery/door/firedoor,
-/obj/structure/cable/yellow{
- icon_state = "2-8"
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
},
-/turf/open/floor/plasteel,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/white/corner,
/area/hallway/secondary/entry)
"bCR" = (
/obj/machinery/power/apc/highcap/five_k{
@@ -41143,7 +41059,7 @@
},
/obj/structure/cable/yellow,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 5
+ dir = 9
},
/turf/open/floor/plasteel,
/area/crew_quarters/toilet/auxiliary)
@@ -41152,9 +41068,6 @@
dir = 8;
pixel_x = 24
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 10
- },
/turf/open/floor/plasteel,
/area/crew_quarters/toilet/auxiliary)
"bCV" = (
@@ -41792,44 +41705,43 @@
/turf/open/floor/plasteel/white/corner,
/area/hallway/secondary/entry)
"bEo" = (
-/obj/machinery/door/airlock{
- name = "Port Emergency Storage"
- },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/item/storage/box/lights/mixed,
/obj/structure/cable/yellow{
icon_state = "1-2"
},
/turf/open/floor/plating,
/area/maintenance/port)
"bEp" = (
-/obj/machinery/door/firedoor,
-/turf/open/floor/plasteel,
-/area/hallway/secondary/entry)
+/obj/machinery/vending/coffee,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
"bEq" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/closed/wall,
-/area/security/vacantoffice)
-"bEs" = (
-/obj/structure/table/wood,
-/obj/item/paper_bin{
- pixel_x = -2;
- pixel_y = 6
- },
-/obj/machinery/newscaster{
- pixel_y = 32
+/obj/structure/light_construct{
+ dir = 8
},
/turf/open/floor/wood,
/area/security/vacantoffice)
-"bEt" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
+"bEs" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
},
-/obj/effect/turf_decal/stripes/line{
+/obj/machinery/power/apc{
+ areastring = "/area/hallway/secondary/entry";
+ dir = 4;
+ name = "Arrivals APC";
+ pixel_x = 26
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/white/corner,
+/area/hallway/secondary/entry)
+"bEt" = (
+/obj/structure/chair/comfy{
dir = 8
},
-/obj/machinery/door/firedoor,
-/turf/open/floor/plasteel,
+/turf/open/floor/plasteel/grimy,
/area/hallway/primary/port)
"bEu" = (
/obj/machinery/door/airlock{
@@ -42811,14 +42723,11 @@
/turf/open/floor/plasteel/grimy,
/area/tcommsat/computer)
"bGj" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
+/obj/machinery/vending/cola/random,
+/obj/machinery/newscaster{
+ pixel_x = -30
},
-/obj/machinery/door/firedoor,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel,
+/turf/open/floor/plasteel/dark,
/area/hallway/primary/port)
"bGk" = (
/obj/structure/cable/yellow{
@@ -42842,8 +42751,9 @@
/turf/open/floor/plasteel,
/area/crew_quarters/toilet/auxiliary)
"bGm" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 6
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/shower{
+ dir = 8
},
/turf/open/floor/plasteel,
/area/crew_quarters/toilet/auxiliary)
@@ -43438,18 +43348,20 @@
/turf/open/floor/plasteel/white/corner,
/area/hallway/secondary/entry)
"bHJ" = (
-/obj/item/tank/internals/oxygen,
-/obj/item/tank/internals/oxygen,
-/obj/item/clothing/mask/breath,
-/obj/item/clothing/mask/breath,
-/obj/machinery/light/small{
+/obj/effect/turf_decal/tile/blue{
dir = 4
},
-/turf/open/floor/plating,
-/area/maintenance/port)
+/obj/machinery/newscaster{
+ pixel_x = 28;
+ pixel_y = 1
+ },
+/turf/open/floor/plasteel/white/corner,
+/area/hallway/secondary/entry)
"bHK" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 1
+/obj/structure/table/wood,
+/obj/item/book/manual/wiki/security_space_law{
+ pixel_x = -3;
+ pixel_y = 5
},
/turf/open/floor/wood,
/area/security/vacantoffice)
@@ -43463,9 +43375,11 @@
/turf/open/floor/carpet,
/area/security/vacantoffice)
"bHM" = (
-/obj/structure/table/wood,
-/turf/open/floor/wood,
-/area/security/vacantoffice)
+/obj/structure/chair/comfy{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/hallway/primary/port)
"bHN" = (
/obj/machinery/shower{
dir = 4
@@ -44151,9 +44065,10 @@
/turf/open/floor/plasteel/grimy,
/area/tcommsat/computer)
"bJj" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
+/obj/machinery/door/airlock/maintenance{
+ req_one_access_txt = "12;27;37"
},
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/cable/yellow{
icon_state = "1-2"
},
@@ -44191,26 +44106,23 @@
/turf/open/floor/plasteel/white/corner,
/area/hallway/secondary/entry)
"bJp" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel,
-/area/hallway/secondary/entry)
+/obj/machinery/vending/snack/random,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
"bJq" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/item/storage/box/lights/mixed,
/obj/structure/cable/yellow{
icon_state = "1-2"
},
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
/turf/open/floor/plating,
/area/maintenance/port)
"bJr" = (
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 1
- },
-/obj/machinery/portable_atmospherics/canister/air,
-/turf/open/floor/plating,
-/area/maintenance/port)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
"bJs" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 10
@@ -44224,9 +44136,6 @@
/obj/item/radio/intercom{
pixel_x = -29
},
-/obj/machinery/light/small{
- dir = 8
- },
/turf/open/floor/wood,
/area/security/vacantoffice)
"bJu" = (
@@ -44250,8 +44159,10 @@
/turf/open/floor/carpet,
/area/security/vacantoffice)
"bJw" = (
-/obj/structure/chair/office{
- dir = 8
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_x = -2;
+ pixel_y = 6
},
/turf/open/floor/carpet,
/area/security/vacantoffice)
@@ -44260,15 +44171,6 @@
dir = 8;
pixel_x = 24
},
-/obj/structure/table/wood,
-/obj/item/camera_film{
- pixel_x = 6;
- pixel_y = 7
- },
-/obj/item/camera_film{
- pixel_x = -3;
- pixel_y = 5
- },
/turf/open/floor/wood,
/area/security/vacantoffice)
"bJy" = (
@@ -44956,15 +44858,11 @@
/turf/open/floor/plasteel/white/corner,
/area/hallway/secondary/entry)
"bKX" = (
-/obj/machinery/door/airlock/maintenance{
- req_one_access_txt = "12;27;37"
+/obj/structure/chair/comfy{
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/turf/open/floor/plating,
-/area/maintenance/port)
+/turf/open/floor/plasteel/grimy,
+/area/hallway/primary/port)
"bKY" = (
/obj/machinery/power/apc{
areastring = "/area/security/vacantoffice";
@@ -45730,7 +45628,7 @@
/turf/open/floor/plasteel/white/corner,
/area/hallway/secondary/entry)
"bMC" = (
-/obj/structure/chair/office,
+/obj/structure/chair/office/dark,
/turf/open/floor/wood,
/area/security/vacantoffice)
"bMD" = (
@@ -45993,19 +45891,15 @@
/turf/open/floor/carpet,
/area/bridge/showroom/corporate)
"bNd" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+/obj/item/tank/internals/oxygen,
+/obj/item/tank/internals/oxygen,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/obj/machinery/light/small{
dir = 4
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/camera{
- c_tag = "Port Primary Hallway - Mining Shuttle";
- dir = 1
- },
-/obj/effect/landmark/event_spawn,
-/turf/open/floor/plasteel,
-/area/hallway/primary/port)
+/turf/open/floor/plating,
+/area/maintenance/port)
"bNe" = (
/obj/structure/table/wood,
/obj/item/phone{
@@ -46049,17 +45943,11 @@
/turf/open/floor/wood,
/area/bridge/showroom/corporate)
"bNh" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/port)
+/obj/structure/table/wood,
+/obj/item/folder/red,
+/obj/item/pen/red,
+/turf/open/floor/wood,
+/area/security/vacantoffice)
"bNi" = (
/obj/structure/window/reinforced{
dir = 8
@@ -46322,12 +46210,17 @@
/turf/open/floor/wood,
/area/crew_quarters/theatre)
"bNK" = (
-/obj/machinery/disposal/bin,
-/obj/structure/disposalpipe/trunk{
- dir = 1
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
},
-/turf/open/floor/plasteel,
-/area/hallway/primary/port)
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_x = -2;
+ pixel_y = 6
+ },
+/turf/open/floor/wood,
+/area/security/vacantoffice)
"bNL" = (
/obj/structure/table,
/obj/item/stock_parts/subspace/transmitter,
@@ -47710,9 +47603,6 @@
dir = 8;
pixel_x = 24
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 9
- },
/turf/open/floor/plating,
/area/crew_quarters/toilet/auxiliary)
"bQQ" = (
@@ -79125,13 +79015,10 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/obj/machinery/door/firedoor,
/obj/structure/sign/poster/official/random{
pixel_y = 32
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
+/obj/machinery/door/firedoor,
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"dhQ" = (
@@ -79209,14 +79096,11 @@
/turf/open/floor/wood,
/area/crew_quarters/theatre)
"dhZ" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
+/obj/structure/urinal{
+ pixel_y = 29
},
-/obj/structure/cable/yellow{
- icon_state = "1-8"
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/port)
+/turf/open/floor/plating,
+/area/crew_quarters/toilet/auxiliary)
"dib" = (
/obj/structure/table/wood,
/obj/item/lipstick{
@@ -79252,10 +79136,6 @@
/area/hallway/secondary/entry)
"did" = (
/obj/structure/table/wood,
-/obj/machinery/light_switch{
- pixel_x = -28
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/item/folder,
/turf/open/floor/wood,
/area/security/vacantoffice)
@@ -79271,13 +79151,11 @@
/turf/open/floor/wood,
/area/crew_quarters/theatre)
"dig" = (
-/obj/machinery/airalarm{
- dir = 8;
- pixel_x = 24
+/obj/item/kirbyplants{
+ icon_state = "plant-03"
},
-/obj/structure/table/wood,
-/turf/open/floor/wood,
-/area/security/vacantoffice)
+/turf/open/floor/plasteel/grimy,
+/area/hallway/primary/port)
"dih" = (
/obj/machinery/light/small,
/obj/structure/sign/poster/official/random{
@@ -79850,20 +79728,10 @@
/turf/open/space/basic,
/area/space)
"djW" = (
-/obj/machinery/light{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/plasteel,
-/area/hallway/primary/port)
+/area/maintenance/port)
"djX" = (
/obj/structure/closet/crate/coffin,
/obj/machinery/door/window/eastleft{
@@ -81264,6 +81132,12 @@
},
/turf/closed/wall,
/area/maintenance/starboard)
+"dQg" = (
+/obj/machinery/door/airlock/maintenance{
+ req_one_access_txt = "12;27;37"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
"dYu" = (
/obj/machinery/door/airlock/external{
name = "Auxiliary Airlock"
@@ -81274,9 +81148,16 @@
/turf/open/floor/plating,
/area/hallway/secondary/entry)
"eiS" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel,
-/area/crew_quarters/toilet/auxiliary)
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Port Primary Hallway - True Port";
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
"eoK" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -81380,6 +81261,12 @@
},
/turf/open/floor/plasteel/white,
/area/science/circuit)
+"fDG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/toilet/auxiliary)
"fFM" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -81589,12 +81476,25 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"iSt" = (
-/obj/machinery/door/airlock/grunge,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
},
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/corner,
+/area/hallway/secondary/entry)
+"jdf" = (
+/obj/machinery/door/airlock{
+ id_tag = "AuxShower";
+ name = "Shower"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
-/area/security/vacantoffice)
+/area/crew_quarters/toilet/auxiliary)
"jeV" = (
/obj/machinery/conveyor/inverted{
dir = 10;
@@ -81662,15 +81562,18 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"jBe" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/structure/sign/poster/official/random{
- pixel_y = -32
- },
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"jKK" = (
@@ -81702,15 +81605,23 @@
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/machinery/door/firedoor,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/hallway/primary/port)
+"jRo" = (
+/obj/structure/table/wood,
+/obj/machinery/newscaster{
+ pixel_y = 32
+ },
+/obj/item/clipboard,
+/obj/item/paper,
+/turf/open/floor/wood,
+/area/security/vacantoffice)
"kfu" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel/white,
@@ -81789,15 +81700,18 @@
/turf/open/floor/plasteel/white,
/area/science/circuit)
"kQP" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=6-Port-Central";
+ location = "5-Customs"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
},
/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/machinery/airalarm{
- dir = 1;
- pixel_y = -22
+ dir = 4
},
/turf/open/floor/plasteel,
/area/hallway/primary/port)
@@ -81843,6 +81757,9 @@
/turf/open/floor/plasteel/white,
/area/science/circuit)
"lws" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
/turf/open/floor/carpet,
/area/security/vacantoffice)
"lzk" = (
@@ -81920,31 +81837,34 @@
/turf/open/floor/plasteel/dark,
/area/crew_quarters/cryopod)
"maP" = (
-/obj/item/storage/toolbox/emergency,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 10
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
},
-/turf/open/floor/plating{
- icon_state = "panelscorched"
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
},
-/area/maintenance/port)
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
"mcS" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 9
- },
-/obj/structure/disposalpipe/segment{
- dir = 9
+ dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/structure/sign/map/left{
- desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown).";
- icon_state = "map-left-MS";
- pixel_y = -32
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
},
-/turf/open/floor/plasteel,
-/area/hallway/primary/port)
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -28
+ },
+/turf/open/floor/plasteel/white/corner,
+/area/hallway/secondary/entry)
"mjJ" = (
/obj/machinery/nuclearbomb/beer{
pixel_x = 2;
@@ -81956,6 +81876,12 @@
/obj/structure/lattice,
/turf/closed/wall,
/area/crew_quarters/cryopod)
+"mot" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/security/vacantoffice)
"mvj" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -81997,17 +81923,11 @@
},
/area/maintenance/port/aft)
"nhy" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/corner{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
+/obj/effect/landmark/event_spawn,
+/obj/machinery/door/firedoor,
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"njd" = (
@@ -82293,9 +82213,22 @@
/turf/open/floor/plasteel/dark,
/area/crew_quarters/cryopod)
"pHS" = (
-/obj/structure/closet/firecloset,
-/turf/open/floor/plating,
-/area/maintenance/port)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
"pMX" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -82340,6 +82273,13 @@
},
/turf/open/floor/plating,
/area/maintenance/port)
+"qkY" = (
+/obj/machinery/door/airlock/grunge,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/vacantoffice)
"qqg" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 6
@@ -82419,11 +82359,18 @@
/turf/open/floor/plasteel,
/area/security/prison)
"rbE" = (
-/obj/effect/turf_decal/tile/blue{
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/turf/open/floor/plasteel/white/corner,
-/area/hallway/secondary/entry)
+/obj/machinery/firealarm{
+ pixel_y = -24
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
"roa" = (
/obj/structure/chair/stool,
/obj/machinery/light/small{
@@ -82472,19 +82419,16 @@
/turf/closed/wall,
/area/quartermaster/miningoffice)
"rNX" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
/obj/effect/turf_decal/tile/neutral{
- dir = 1
+ dir = 8
},
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=6-Port-Central";
- location = "5-Customs"
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
+/obj/structure/sign/poster/official/random{
+ pixel_y = -32
},
+/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"rQK" = (
@@ -82555,15 +82499,16 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"syk" = (
-/obj/machinery/door/airlock{
- id_tag = "AuxShower";
- name = "Shower"
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
},
+/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel,
-/area/crew_quarters/toilet/auxiliary)
+/area/hallway/primary/port)
"sFv" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -82615,6 +82560,10 @@
},
/turf/open/floor/plasteel/dark,
/area/crew_quarters/cryopod)
+"sZN" = (
+/obj/structure/closet/firecloset,
+/turf/open/floor/plating,
+/area/maintenance/port)
"tap" = (
/obj/machinery/power/apc/auto_name/east,
/obj/structure/cable/yellow{
@@ -82623,33 +82572,14 @@
/turf/open/floor/plasteel/dark,
/area/crew_quarters/cryopod)
"tre" = (
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/stripes/corner{
- dir = 8
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "2-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "2-4"
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
},
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/obj/structure/cable/yellow{
- icon_state = "1-4"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-8"
- },
-/turf/open/floor/plasteel/white/corner,
-/area/hallway/secondary/entry)
+/turf/open/floor/plating,
+/area/maintenance/port)
"tsx" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -82682,6 +82612,13 @@
},
/turf/open/floor/plasteel/dark,
/area/medical/morgue)
+"tUa" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/plating,
+/area/maintenance/port)
"tVY" = (
/obj/structure/closet/crate,
/obj/item/target/alien,
@@ -82807,6 +82744,18 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness/recreation)
+"vuY" = (
+/obj/structure/table/wood,
+/obj/item/camera_film{
+ pixel_x = 6;
+ pixel_y = 7
+ },
+/obj/item/camera_film{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/turf/open/floor/wood,
+/area/security/vacantoffice)
"vxG" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -82861,10 +82810,21 @@
/turf/open/floor/plating,
/area/security/prison)
"wlH" = (
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ pixel_y = -28
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
/turf/open/floor/plasteel,
-/area/maintenance/port)
+/area/hallway/primary/port)
"wmt" = (
/obj/effect/decal/cleanable/flour,
/turf/open/floor/plating,
@@ -82921,7 +82881,10 @@
/turf/open/floor/plasteel/dark,
/area/crew_quarters/cryopod)
"xfI" = (
-/obj/machinery/vending/cola/random,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"xgC" = (
@@ -82936,13 +82899,21 @@
/turf/open/floor/plasteel/white,
/area/science/circuit)
"xmb" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/structure/cable/yellow{
- icon_state = "1-2"
+/obj/structure/sign/map/left{
+ desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown).";
+ icon_state = "map-left-MS";
+ pixel_y = -32
},
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"xse" = (
@@ -83021,26 +82992,22 @@
/turf/open/floor/plasteel,
/area/security/prison)
"xLL" = (
-/obj/structure/table/wood,
-/obj/item/folder/white{
- pixel_x = 4;
- pixel_y = -3
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
},
-/obj/item/book/manual/wiki/security_space_law{
- pixel_x = -3;
- pixel_y = 5
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/structure/sign/map/right{
+ desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown).";
+ icon_state = "map-right-MS";
+ pixel_y = -32
},
-/turf/open/floor/wood,
-/area/security/vacantoffice)
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
+/area/hallway/primary/port)
"xTV" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 6
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/turf/open/floor/plating,
-/area/maintenance/port)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/security/vacantoffice)
"xVl" = (
/turf/closed/wall,
/area/hallway/secondary/service)
@@ -96315,7 +96282,7 @@ bxL
bvJ
bxB
bCQ
-bBd
+bCH
bCH
bEn
dic
@@ -96568,18 +96535,18 @@ bjV
bnK
bqb
bbI
-btT
+bJr
bvK
bxC
-bEp
-bJp
-rbE
alK
alK
alK
alK
alK
alK
+dQg
+alK
+alK
alK
bPF
asa
@@ -96822,7 +96789,7 @@ bgv
biv
bjW
blT
-bnL
+bso
bqc
bso
bso
@@ -96833,9 +96800,9 @@ tre
bCI
bEo
bJj
-xTV
+bbL
bJq
-bKX
+bbL
bbL
bbL
bPG
@@ -97079,20 +97046,20 @@ bbK
biw
bjX
blU
-baE
-baE
-baE
-baE
-baE
-baE
-baE
-jPu
-bCJ
+aiT
+bEs
+bHJ
+aiT
+iSt
+mcS
alK
auF
-maP
-bJr
+bCJ
+tUa
alK
+apz
+aob
+alC
aqK
aqO
alC
@@ -97335,21 +97302,21 @@ beL
bgw
bix
bjY
-blV
+bqd
baE
-afQ
-afQ
-afQ
-afZ
-afQ
baE
+baE
+baE
+bqd
+nhy
+alK
djW
bNd
+sZN
alK
-wlH
-bHJ
-pHS
-alK
+amZ
+aob
+aob
oWR
aob
bPH
@@ -97593,15 +97560,15 @@ bgx
biy
bjZ
blW
-baE
+ajk
afZ
-afQ
+bHM
ajs
-afQ
-afQ
-baE
-bBf
-kQP
+jBe
+pHS
+bzx
+bzx
+bzx
bzx
bzx
bzx
@@ -97850,13 +97817,13 @@ bgy
biz
bka
blX
-baE
-afQ
-afQ
-afQ
-afQ
-afQ
-baE
+bnR
+ahT
+ahT
+bKX
+jPu
+rbE
+xTV
bBf
bCL
bEq
@@ -98105,19 +98072,19 @@ bda
beO
bgz
biA
-bnR
+bka
blY
aeD
agQ
-afQ
-afQ
-afQ
-afQ
-baE
+ahT
+aeD
+kQP
rNX
-jBe
bzx
bBg
+bBg
+bBg
+bBg
pZb
bJu
bKZ
@@ -98364,16 +98331,16 @@ bgA
biz
bkb
blZ
-baE
+bnR
ahT
-afQ
-afQ
+ahT
+bKX
aju
-afQ
-baE
-bBh
-xmb
-iSt
+syk
+qkY
+bGk
+bGk
+bGk
bGk
bKZ
bHL
@@ -98621,18 +98588,18 @@ bpt
bcW
bkc
bma
-baE
-ahT
+bBh
+bEt
aiW
-afQ
+dig
amv
-afQ
-baE
-bBf
+wlH
+bzx
+bBi
bCM
-bzx
-bzx
-bHM
+bBg
+bBg
+bBg
bJv
drp
heE
@@ -98879,21 +98846,21 @@ bcW
dhP
bqd
baE
-aiT
-ajk
-afQ
-amB
-afQ
baE
-djW
-bsx
+baE
+baE
+bqd
xfI
bzx
-bEs
+jRo
+mot
+bBg
+bBg
+bBg
bJw
lws
bMC
-xLL
+bOg
bzx
bRe
xDn
@@ -99135,18 +99102,18 @@ bgC
biB
bkd
bmb
-baE
-baE
-baE
-baE
-baE
-baE
-baE
-bBf
+bEp
+bGj
+bJp
+eiS
+jBe
+xmb
+bzx
+vuY
bNh
bNK
-bzx
-dig
+bBg
+bBg
bJx
bLa
bMD
@@ -99396,12 +99363,12 @@ bnS
bqj
bsu
btY
-bqj
-bsu
-bEt
-nhy
-mcS
-bvW
+maP
+xLL
+bzx
+bzx
+bzx
+bzx
bzx
bzx
bzx
@@ -99655,7 +99622,7 @@ bsv
btZ
bvV
bxN
-bGj
+bvW
dhZ
bCP
bvW
@@ -99913,9 +99880,9 @@ baE
bvW
bxO
bvW
-bvW
-bvW
-bvW
+dhZ
+fDG
+jdf
bGm
bHO
bvW
@@ -100173,7 +100140,7 @@ bzA
bBm
bCR
bvW
-syk
+bvW
bvW
bvW
bLd
@@ -100429,7 +100396,7 @@ bxQ
bzB
bBn
bCS
-eiS
+bBn
bQN
dih
bvW
diff --git a/code/__DEFINES/_flags/item_flags.dm b/code/__DEFINES/_flags/item_flags.dm
index b3b65bcf59..26e764c45b 100644
--- a/code/__DEFINES/_flags/item_flags.dm
+++ b/code/__DEFINES/_flags/item_flags.dm
@@ -52,4 +52,4 @@
#define ORGAN_VITAL (1<<4) //Currently only the brain
#define ORGAN_NO_SPOIL (1<<5) //Do not spoil under any circumstances
#define ORGAN_NO_DISMEMBERMENT (1<<6) //Immune to disembowelment.
-#define ORGAN_EDIBLE (1<<5) //is a snack? :D
\ No newline at end of file
+#define ORGAN_EDIBLE (1<<7) //is a snack? :D
diff --git a/code/datums/components/crafting/recipes/recipes_misc.dm b/code/datums/components/crafting/recipes/recipes_misc.dm
index 86d1e77661..214c1b1427 100644
--- a/code/datums/components/crafting/recipes/recipes_misc.dm
+++ b/code/datums/components/crafting/recipes/recipes_misc.dm
@@ -324,6 +324,13 @@
result = /obj/item/toy/sword/cx
subcategory = CAT_MISCELLANEOUS
category = CAT_MISC
+
+/datum/crafting_recipe/catgirlplushie
+ name = "Catgirl Plushie"
+ reqs = list(/obj/item/toy/plush/hairball = 3)
+ result = /obj/item/toy/plush/catgirl
+ subcategory = CAT_MISCELLANEOUS
+ category = CAT_MISC
////////////
//Unsorted//
diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm
index 95177f6869..8f98917ed3 100644
--- a/code/datums/mood_events/generic_positive_events.dm
+++ b/code/datums/mood_events/generic_positive_events.dm
@@ -196,3 +196,7 @@
description = "That work of art was so great it made me believe in the goodness of humanity. Says a lot in a place like this.\n"
mood_change = 4
timeout = 4 MINUTES
+
+/datum/mood_event/cleared_stomach
+ description = "Feels nice to get that out of the way!\n"
+ mood_change = 3
diff --git a/code/datums/wounds/cuts.dm b/code/datums/wounds/cuts.dm
index 0ab3bbd5f8..59ce286884 100644
--- a/code/datums/wounds/cuts.dm
+++ b/code/datums/wounds/cuts.dm
@@ -152,6 +152,11 @@
user.visible_message("[user] licks the wounds on [victim]'s [limb.name].", "You lick some of the wounds on [victim]'s [limb.name]", ignored_mobs=victim)
to_chat(victim, "[user] licks the wounds on your [limb.name]! minimum_flow)
try_handling(user)
diff --git a/code/game/gamemodes/clown_ops/clown_ops.dm b/code/game/gamemodes/clown_ops/clown_ops.dm
index 11898701fa..108c67ad27 100644
--- a/code/game/gamemodes/clown_ops/clown_ops.dm
+++ b/code/game/gamemodes/clown_ops/clown_ops.dm
@@ -58,6 +58,7 @@
if(visualsOnly)
return
H.dna.add_mutation(SMILE)
+ H.faction |= "clown"
/datum/outfit/syndicate/clownop/leader
name = "Clown Operative Leader - Basic"
diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm
index a60aa02ce1..32e7ac49b4 100644
--- a/code/game/objects/items/pet_carrier.dm
+++ b/code/game/objects/items/pet_carrier.dm
@@ -24,6 +24,7 @@
var/max_occupant_weight = MOB_SIZE_SMALL //This is calculated from the mob sizes of occupants
var/entrance_name = "door" //name of the entrance to the item
var/escape_time = 200 //how long it takes for mobs above small sizes to escape (for small sizes, its randomly 1.5 to 2x this)
+ var/alternate_escape_time = 0 //how long it takes for mobs to escape when the entrance is open
var/load_time = 30 //how long it takes for mobs to be loaded into the pet carrier
var/has_lock_sprites = TRUE //whether to load the lock overlays or not
var/allows_hostiles = FALSE //does the pet carrier allow hostile entities to be held within it?
@@ -108,6 +109,7 @@
return
if(ishostile(target) && (!allows_hostiles || istype(target, /mob/living/simple_animal/hostile/carp/cayenne)) || target.move_resist < MOVE_FORCE_VERY_STRONG) //don't allow goliaths into pet carriers, but let cayenne in!
to_chat(user, "You have a feeling you shouldn't keep this as a pet.")
+ return
load_occupant(user, target)
/obj/item/pet_carrier/relaymove(mob/living/user, direction)
@@ -128,10 +130,17 @@
/obj/item/pet_carrier/container_resist(mob/living/user)
//don't do the whole resist timer thing if it's open!
if(open)
- loc.visible_message("[user] climbs out of [src]!", \
- "[user] jumps out of [src]!")
- remove_occupant(user)
- return
+ if(alternate_escape_time > 0)
+ loc.visible_message("The [src] begins to shake!")
+ if(do_after(user, alternate_escape_time, target = user))
+ loc.visible_message("[user] jumps out of [src]")
+ remove_occupant(user)
+ return
+ else //instant escape, different message
+ loc.visible_message("[user] climbs out of [src]!", \
+ "[user] jumps out of [src]!")
+ remove_occupant(user)
+ return
user.changeNext_move(CLICK_CD_BREAKOUT)
user.last_special = world.time + CLICK_CD_BREAKOUT
@@ -147,7 +156,7 @@
update_icon()
else
loc.visible_message("[src] starts rattling as something pushes against the [entrance_name]!", null, null, null, user)
- to_chat(user, "You start pushing out of [src]... (This will take about 20 seconds.)")
+ to_chat(user, "You start pushing out of [src]... (This will take about [escape_time/10] seconds.)")
if(!do_after(user, escape_time, target = user) || open || !locked || !(user in occupants))
return
loc.visible_message("[user] shoves out of [src]!", null, null, null, user)
@@ -180,21 +189,22 @@
/obj/item/pet_carrier/proc/load_occupant(mob/living/user, mob/living/target)
if(pet_carrier_full(src))
to_chat(user, "[src] is already carrying too much!")
- return
+ return FALSE
user.visible_message("[user] starts loading [target] into [src].", \
"You start loading [target] into [src]...", null, null, target)
to_chat(target, "[user] starts loading you into [user.p_their()] [name]!")
if(!do_mob(user, target, load_time))
- return
+ return FALSE
if(target in occupants)
- return
+ return FALSE
if(pet_carrier_full(src)) //Run the checks again, just in case
to_chat(user, "[src] is already carrying too much!")
- return
+ return FALSE
user.visible_message("[user] loads [target] into [src]!", \
"You load [target] into [src].", null, null, target)
to_chat(target, "[user] loads you into [user.p_their()] [name]!")
add_occupant(target)
+ return TRUE
/obj/item/pet_carrier/proc/add_occupant(mob/living/occupant)
if(occupant in occupants || !istype(occupant))
@@ -230,7 +240,8 @@
allows_hostiles = TRUE //can fit hostile creatures, with the move resist restrictions in place, this means they still cannot take things like legions/goliaths/etc regardless
has_lock_sprites = FALSE //jar doesn't show the regular lock overlay
custom_materials = list(/datum/material/glass = 1000, /datum/material/bluespace = 600)
- escape_time = 10 //half the time of a bluespace bodybag
+ escape_time = 200 //equal to the time of a bluespace bodybag
+ alternate_escape_time = 100
var/datum/gas_mixture/occupant_gas_supply
/obj/item/pet_carrier/bluespace/update_icon_state()
@@ -271,10 +282,15 @@
REMOVE_TRAIT(occupant, TRAIT_NOBREATH, "bluespace_container_no_breath")
REMOVE_TRAIT(occupant, TRAIT_RESISTHIGHPRESSURE, "bluespace_container_resist_high_pressure")
REMOVE_TRAIT(occupant, TRAIT_RESISTLOWPRESSURE, "bluespace_container_resist_low_pressure")
+ name = initial(name)
/obj/item/pet_carrier/bluespace/return_air()
if(!occupant_gas_supply)
occupant_gas_supply = new
return occupant_gas_supply
+/obj/item/pet_carrier/bluespace/load_occupant(mob/living/user, mob/living/target)
+ if(..())
+ name = "[initial(name)] ([target])"
+
#undef pet_carrier_full
diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm
index 00a9ff22f4..44205f4884 100644
--- a/code/game/objects/items/plushes.dm
+++ b/code/game/objects/items/plushes.dm
@@ -8,6 +8,7 @@
resistance_flags = FLAMMABLE
var/list/squeak_override //Weighted list; If you want your plush to have different squeak sounds use this
var/stuffed = TRUE //If the plushie has stuffing in it
+ var/unstuffable = FALSE //for plushies that can't be stuffed
var/obj/item/grenade/grenade //You can remove the stuffing from a plushie and add a grenade to it for *nefarious uses*
//--love ~<3--
gender = NEUTER
@@ -174,6 +175,9 @@
/obj/item/toy/plush/attackby(obj/item/I, mob/living/user, params)
if(I.get_sharpness())
if(!grenade)
+ if(unstuffable)
+ to_chat(user, "Nothing to do here.")
+ return
if(!stuffed)
to_chat(user, "You already murdered it!")
return
@@ -187,6 +191,13 @@
grenade = null
return
if(istype(I, /obj/item/grenade))
+ if(unstuffable)
+ to_chat(user, "No... you should destroy it now!")
+ sleep(10)
+ if(QDELETED(user) || QDELETED(src))
+ return
+ SEND_SOUND(user, 'sound/weapons/armbomb.ogg')
+ return
if(stuffed)
to_chat(user, "You need to remove some stuffing first!")
return
@@ -743,3 +754,14 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths())
attack_verb = list("headbutt", "scritched", "bit")
squeak_override = list('modular_citadel/sound/voice/nya.ogg' = 1)
can_random_spawn = FALSE
+
+
+/obj/item/toy/plush/hairball
+ name = "Hairball"
+ desc = "A bundle of undigested fibers and scales. Yuck."
+ icon_state = "Hairball"
+ unstuffable = TRUE
+ young = TRUE // Your own mouth-baby.
+ squeak_override = list('sound/misc/splort.ogg'=1)
+ attack_verb = list("sploshed", "splorted", "slushed")
+ can_random_spawn = FALSE
diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm
index 9fbedb33cd..c50dc6e316 100644
--- a/code/game/objects/items/robot/robot_upgrades.dm
+++ b/code/game/objects/items/robot/robot_upgrades.dm
@@ -241,9 +241,9 @@
for(var/obj/item/mop/cyborg/M in R.module.modules)
R.module.remove_module(M, TRUE)
- var/obj/item/mop/advanced/cyborg/A = new /obj/item/mop/advanced/cyborg(R.module)
- R.module.basic_modules += A
- R.module.add_module(A, FALSE, TRUE)
+ var/obj/item/mop/advanced/cyborg/A = new /obj/item/mop/advanced/cyborg(R.module)
+ R.module.basic_modules += A
+ R.module.add_module(A, FALSE, TRUE)
/obj/item/borg/upgrade/amop/deactivate(mob/living/silicon/robot/R, user = usr)
. = ..()
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 0383c3f1ee..a73545c685 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -247,6 +247,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \
new/datum/stack_recipe("painting frame", /obj/item/wallframe/painting, 1, time = 10),\
new/datum/stack_recipe("wooden buckler", /obj/item/shield/riot/buckler, 20, time = 40), \
new/datum/stack_recipe("baseball bat", /obj/item/melee/baseball_bat, 5, time = 15),\
+ new/datum/stack_recipe("training bokken", /obj/item/melee/bokken, 10, time = 15),\
null, \
new/datum/stack_recipe("wooden chair", /obj/structure/chair/wood/, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("winged wooden chair", /obj/structure/chair/wood/wings, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \
diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm
index 56737cd1a9..f94140db3c 100644
--- a/code/game/objects/items/weaponry.dm
+++ b/code/game/objects/items/weaponry.dm
@@ -249,6 +249,118 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
playsound(src, 'sound/weapons/bladeslice.ogg', 50, 1)
return(BRUTELOSS)
+/obj/item/melee/bokken // parrying stick
+ name = "bokken"
+ desc = "A space-Japanese training sword made of wood and shaped like a katana."
+ icon_state = "bokken"
+ item_state = "bokken"
+ lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
+ slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK
+ w_class = WEIGHT_CLASS_BULKY
+ force = 9
+ throwforce = 10
+ damtype = STAMINA
+ attack_verb = list("whacked", "smacked", "struck")
+ total_mass = TOTAL_MASS_MEDIEVAL_WEAPON
+ hitsound = 'sound/weapons/grenadelaunch.ogg' // no good wood thunk sounds
+ var/harm = FALSE // TRUE = brute, FALSE = stam
+ var/reinforced = FALSE
+ var/burnt = FALSE
+ var/burned_in // text you burned in (with a welder)
+ var/quick_parry = FALSE // false = default parry, true = really small parry window
+ item_flags = ITEM_CAN_PARRY
+ block_parry_data = /datum/block_parry_data/bokken
+ bare_wound_bonus = 0
+ wound_bonus = 0
+
+/datum/block_parry_data/bokken // fucked up parry data, emphasizing quicker, shorter parries
+ parry_stamina_cost = 8 // be wise about when you parry, though, else you won't be able to fight enough to make it count
+ parry_time_windup = 0
+ parry_time_active = 10 // small parry window
+ parry_time_spindown = 0
+ // parry_flags = PARRY_DEFAULT_HANDLE_FEEDBACK // bokken users can no longer strike while parrying
+ parry_time_perfect = 1.5
+ parry_time_perfect_leeway = 1
+ parry_imperfect_falloff_percent = 7.5
+ parry_efficiency_to_counterattack = 100
+ parry_efficiency_considered_successful = 65 // VERY generous
+ parry_efficiency_perfect = 120
+ parry_failed_stagger_duration = 3 SECONDS
+ parry_data = list(PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 2.5) // 7*2.5 = 17.5, 8*2.5 = 20, 9*2.5 = 22.5, 10*2.5 = 25
+
+/datum/block_parry_data/bokken/quick_parry // emphasizing REALLY SHORT PARRIES
+ parry_stamina_cost = 6 // still more costly than most parries, but less than a full bokken parry
+ parry_time_active = 5 // REALLY small parry window
+ parry_time_perfect = 2.5 // however...
+ parry_time_perfect_leeway = 2.5 // the entire time, the parry is perfect
+ parry_failed_stagger_duration = 1 SECONDS
+ parry_failed_clickcd_duration = 1 SECONDS // more forgiving punishments for missed parries
+ // still, don't fucking miss your parries or you're down stamina and staggered to shit
+
+/obj/item/melee/bokken/Initialize()
+ . = ..()
+ AddElement(/datum/element/sword_point)
+
+/obj/item/melee/bokken/attack_self(mob/user)
+ harm = !harm
+ if(harm)
+ force -= 2
+ damtype = BRUTE
+ attack_verb = list("bashed", "smashed", "attacked")
+ bare_wound_bonus = 15 // having your leg smacked by a wooden stick is probably not great for it if it's naked
+ wound_bonus = 0
+ else
+ force += 2
+ damtype = STAMINA
+ attack_verb = list("whacked", "smacked", "struck")
+ bare_wound_bonus = 0
+ wound_bonus = 0
+ to_chat(user, "[src] is now [harm ? "harmful" : "not quite as harmful"].")
+
+/obj/item/melee/bokken/AltClick(mob/user)
+ . = ..()
+ quick_parry = !quick_parry
+ if(quick_parry)
+ block_parry_data = /datum/block_parry_data/bokken/quick_parry
+ else
+ block_parry_data = /datum/block_parry_data/bokken
+ to_chat(user, "[src] is now [quick_parry ? "emphasizing shorter parries, forcing you to riposte or be staggered" : "emphasizing longer parries, with a shorter window to riposte but more forgiving parries"].")
+
+/obj/item/melee/bokken/attackby(obj/item/I, mob/living/user, params)
+ if(istype(I, /obj/item/pen))
+ var/new_name = stripped_input(user, "What do you wish to name [src]?", "New Name", "bokken", 30)
+ if(new_name)
+ name = new_name
+ if(I.tool_behaviour == TOOL_WELDER)
+ var/new_burn = stripped_input(user, "What do you wish to burn into [src]?", "Burnt Inscription","", 140)
+ if(new_burn)
+ burned_in = new_burn
+ if(!burnt)
+ icon_state += "_burnt"
+ item_state += "_burnt"
+ burnt = TRUE
+ update_icon()
+ update_icon_state()
+ if(istype(I, /obj/item/stack/rods))
+ var/obj/item/stack/rods/R = I
+ if(!reinforced)
+ if(R.use(1))
+ force++
+ reinforced = TRUE
+ to_chat(user, "You slide a metal rod into [src]\'s hilt. It feels a little heftier in your hands.")
+ else
+ to_chat(user, "[src] already has a weight slid into the hilt.")
+
+/obj/item/melee/bokken/examine(mob/user)
+ . = ..()
+ if(quick_parry)
+ . += " [src] is gripped in a way to emphasize quicker parries."
+ if(reinforced)
+ . += " There's a metal rod shoved into the base."
+ if(burnt)
+ . += " Burned into the \"blade\" is [burned_in]."
+
/obj/item/wirerod
name = "wired rod"
desc = "A rod with some wire wrapped around the top. It'd be easy to attach something to the top bit."
diff --git a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm
index e230ae55bb..2b43319904 100644
--- a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm
+++ b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm
@@ -198,24 +198,27 @@
//////////////////////////SPACEWIND/////////////////////////////
/turf/open/proc/consider_pressure_difference(turf/T, difference)
- SSair.high_pressure_delta[src] = TRUE
if(difference > pressure_difference)
pressure_direction = get_dir(src, T)
pressure_difference = difference
+ SSair.high_pressure_delta[src] = TRUE
/turf/open/proc/high_pressure_movements()
- var/atom/movable/M
- var/multiplier = 1
+ var/diff = pressure_difference
if(locate(/obj/structure/rack) in src)
- multiplier *= 0.1
+ diff *= 0.1
else if(locate(/obj/structure/table) in src)
- multiplier *= 0.2
- for(var/thing in src)
- M = thing
- if (!M.anchored && !M.pulledby && M.last_high_pressure_movement_air_cycle < SSair.times_fired)
- M.experience_pressure_difference(pressure_difference * multiplier, pressure_direction, 0, pressure_specific_target)
+ diff *= 0.2
+ for(var/obj/M in src)
+ if(!M.anchored && !M.pulledby && M.last_high_pressure_movement_air_cycle < SSair.times_fired)
+ M.experience_pressure_difference(diff, pressure_direction, 0, pressure_specific_target)
+ for(var/mob/M in src)
+ if(!M.anchored && !M.pulledby && M.last_high_pressure_movement_air_cycle < SSair.times_fired)
+ M.experience_pressure_difference(diff, pressure_direction, 0, pressure_specific_target)
+ /*
if(pressure_difference > 100)
new /obj/effect/temp_visual/dir_setting/space_wind(src, pressure_direction, clamp(round(sqrt(pressure_difference) * 2), 10, 255))
+ */
/atom/movable/var/pressure_resistance = 10
/atom/movable/var/last_high_pressure_movement_air_cycle = 0
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index 1da69f197f..40c159ecf0 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -471,6 +471,11 @@ GLOBAL_LIST_EMPTY(external_rsc_urls)
//////////////
/client/Del()
+ if(!gc_destroyed)
+ Destroy()
+ return ..()
+
+/client/Destroy()
if(credits)
QDEL_LIST(credits)
log_access("Logout: [key_name(src)]")
@@ -504,9 +509,7 @@ GLOBAL_LIST_EMPTY(external_rsc_urls)
movingmob.client_mobs_in_contents -= mob
UNSETEMPTY(movingmob.client_mobs_in_contents)
Master.UpdateTickRate()
- return ..()
-
-/client/Destroy()
+ . = ..()
return QDEL_HINT_HARDDEL_NOW
/client/proc/set_client_age_from_db(connectiontopic)
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index d2553c4d7c..d5a3c3abee 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -115,7 +115,7 @@
// Set the clothing's integrity back to 100%, remove all damage to bodyparts, and generally fix it up
/obj/item/clothing/proc/repair(mob/user, params)
damaged_clothes = CLOTHING_PRISTINE
- update_clothes_damaged_state()
+ update_clothes_damaged_state(FALSE)
obj_integrity = max_integrity
name = initial(name) // remove "tattered" or "shredded" if there's a prefix
body_parts_covered = initial(body_parts_covered)
@@ -265,7 +265,6 @@
var/index = "[REF(initial(icon))]-[initial(icon_state)]"
var/static/list/damaged_clothes_icons = list()
if(damaging)
- damaged_clothes = 1
var/icon/damaged_clothes_icon = damaged_clothes_icons[index]
if(!damaged_clothes_icon)
damaged_clothes_icon = icon(initial(icon), initial(icon_state), , 1) //we only want to apply damaged effect to the initial icon_state for each object
@@ -273,12 +272,10 @@
damaged_clothes_icon.Blend(icon('icons/effects/item_damage.dmi', "itemdamaged"), ICON_MULTIPLY) //adds damage effect and the remaining white areas become transparant
damaged_clothes_icon = fcopy_rsc(damaged_clothes_icon)
damaged_clothes_icons[index] = damaged_clothes_icon
- add_overlay(damaged_clothes_icon, 1)
+ add_overlay(damaged_clothes_icon, TRUE)
else
- damaged_clothes = 0
cut_overlay(damaged_clothes_icons[index], TRUE)
-
/*
SEE_SELF // can see self, no matter what
SEE_MOBS // can see all mobs, no matter what
diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm
index b06636ea2e..dd03eea66f 100644
--- a/code/modules/clothing/gloves/miscellaneous.dm
+++ b/code/modules/clothing/gloves/miscellaneous.dm
@@ -45,8 +45,8 @@
REMOVE_TRAIT(user, secondary_trait, GLOVE_TRAIT)
if(ishuman(user))
var/mob/living/carbon/human/H = user
- H.dna.species.punchdamagehigh = initial(H.dna.species.punchdamagehigh)
- H.dna.species.punchdamagelow = initial(H.dna.species.punchdamagelow)
+ H.dna.species.punchdamagehigh -= enhancement
+ H.dna.species.punchdamagelow -= enhancement
return ..()
/obj/item/clothing/gloves/fingerless/pugilist/chaplain
diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm
index 3ee1990d14..70e85a9cfb 100644
--- a/code/modules/detectivework/scanner.dm
+++ b/code/modules/detectivework/scanner.dm
@@ -143,6 +143,8 @@
add_log("Blood:")
found_something = TRUE
for(var/B in blood)
+ if(B == "color")
+ continue
add_log("Type: [blood[B]] DNA: [B]")
//Fibers
diff --git a/code/modules/mining/equipment/marker_beacons.dm b/code/modules/mining/equipment/marker_beacons.dm
index ae2889e8a2..8097d243de 100644
--- a/code/modules/mining/equipment/marker_beacons.dm
+++ b/code/modules/mining/equipment/marker_beacons.dm
@@ -19,7 +19,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list(
singular_name = "marker beacon"
desc = "Prism-brand path illumination devices. Used by miners to mark paths and warn of danger."
icon = 'icons/obj/lighting.dmi'
- icon_state = "markerbronze"
+ icon_state = "marker"
merge_type = /obj/item/stack/marker_beacon
max_amount = 100
novariants = TRUE
diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm
index d703f6a4e2..22cb10026b 100644
--- a/code/modules/mob/living/carbon/human/say.dm
+++ b/code/modules/mob/living/carbon/human/say.dm
@@ -91,6 +91,7 @@
return " (as [get_id_name("Unknown")])"
/mob/living/carbon/human/proc/forcesay(list/append) //this proc is at the bottom of the file because quote fuckery makes notepad++ cri
+ set waitfor = FALSE // WINGET IS A SLEEP. DO. NOT. SLEEP.
if(stat == CONSCIOUS)
if(client)
var/temp = winget(client, "input", "text")
diff --git a/code/modules/mob/living/living_active_parry.dm b/code/modules/mob/living/living_active_parry.dm
index 8141603f64..4fd2459e70 100644
--- a/code/modules/mob/living/living_active_parry.dm
+++ b/code/modules/mob/living/living_active_parry.dm
@@ -256,7 +256,7 @@
var/datum/block_parry_data/data = get_parry_data()
if(data.parry_sounds)
playsound(src, pick(data.parry_sounds), 75)
- visible_message("[src] parries \the [attack_text][length(effect_text)? ", [english_list(effect_text)] [attacker]" : ""]!")
+ visible_message("[src] parries [attack_text][length(effect_text)? ", [english_list(effect_text)] [attacker]" : ""]!")
/// Run counterattack if any
/mob/living/proc/run_parry_countereffects(atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/return_list = list(), parry_efficiency)
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index badbcc4ed5..7c4125fbc6 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -361,8 +361,7 @@
"Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekmed"),
"Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinamed"),
"Eyebot" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "eyebotmed"),
- "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymed"),
- "Zoomba" = image(icon = 'icons/mob/robots.dmi', icon_state = "zoomba_med")
+ "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymed")
)
var/list/L = list("Medihound" = "medihound", "Medihound Dark" = "medihounddark", "Vale" = "valemed")
for(var/a in L)
@@ -378,8 +377,6 @@
switch(med_borg_icon)
if("Default")
cyborg_base_icon = "medical"
- if("Zoomba")
- cyborg_base_icon = "zoomba_med"
if("Droid")
cyborg_base_icon = "medical"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
@@ -481,8 +478,7 @@
"Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "caneng"),
"Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinaeng"),
"Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "spidereng"),
- "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyeng"),
- "Zoomba" = image(icon = 'icons/mob/robots.dmi', icon_state = "zoomba_engi")
+ "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyeng")
)
var/list/L = list("Pup Dozer" = "pupdozer", "Vale" = "valeeng")
for(var/a in L)
@@ -498,8 +494,6 @@
switch(engi_borg_icon)
if("Default")
cyborg_base_icon = "engineer"
- if("Zoomba")
- cyborg_base_icon = "zoomba_engi"
if("Default - Treads")
cyborg_base_icon = "engi-tread"
special_light_key = "engineer"
@@ -580,8 +574,7 @@
"Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "cansec"),
"Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinasec"),
"Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "spidersec"),
- "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavysec"),
- "Zoomba" = image(icon = 'icons/mob/robots.dmi', icon_state = "zoomba_sec")
+ "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavysec")
)
var/list/L = list("K9" = "k9", "Vale" = "valesec", "K9 Dark" = "k9dark")
for(var/a in L)
@@ -597,8 +590,6 @@
switch(sec_borg_icon)
if("Default")
cyborg_base_icon = "sec"
- if("Zoomba")
- cyborg_base_icon = "zoomba_sec"
if("Default - Treads")
cyborg_base_icon = "sec-tread"
special_light_key = "sec"
@@ -836,8 +827,7 @@
"(Janitor) Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinajan"),
"(Janitor) Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekjan"),
"(Janitor) Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "canjan"),
- "(Janitor) Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyjan"),
- "Zoomba" = image(icon = 'icons/mob/robots.dmi', icon_state = "zoomba_jani")
+ "(Janitor) Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyjan")
)
var/list/L = list("(Service) DarkK9" = "k50", "(Service) Vale" = "valeserv", "(Service) ValeDark" = "valeservdark",
"(Janitor) Scrubpuppy" = "scrubpup")
@@ -852,8 +842,6 @@
service_icons = sortList(service_icons)
var/service_robot_icon = show_radial_menu(R, R , service_icons, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE)
switch(service_robot_icon)
- if("Zoomba")
- cyborg_base_icon = "zoomba_jani"
if("(Service) Waitress")
cyborg_base_icon = "service_f"
special_light_key = "service"
@@ -956,8 +944,7 @@
"Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekmin"),
"Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinamin"),
"Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "canmin"),
- "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymin"),
- "Zoomba" = image(icon = 'icons/mob/robots.dmi', icon_state = "zoomba_miner")
+ "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymin")
)
var/list/L = list("Blade" = "blade", "Vale" = "valemine")
for(var/a in L)
@@ -1001,8 +988,6 @@
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
sleeper_overlay = "valeminesleeper"
dogborg = TRUE
- if("Zoomba")
- cyborg_base_icon = "zoomba_miner"
else
return FALSE
return ..()
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm
index 03aac4037a..507911c7e0 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm
@@ -37,6 +37,10 @@
var/banana_type = /obj/item/grown/bananapeel
var/attack_reagent
+/mob/living/simple_animal/hostile/retaliate/clown/Initialize(mapload)
+ . = ..()
+ faction |= "clown"
+
/mob/living/simple_animal/hostile/retaliate/clown/handle_temperature_damage()
if(bodytemperature < minbodytemp)
adjustBruteLoss(10)
diff --git a/code/modules/mob/living/simple_animal/pickle.dm b/code/modules/mob/living/simple_animal/pickle.dm
index c5469024e6..78c524fed9 100644
--- a/code/modules/mob/living/simple_animal/pickle.dm
+++ b/code/modules/mob/living/simple_animal/pickle.dm
@@ -20,12 +20,12 @@
laugher.emote("laugh")
/mob/living/simple_animal/pickle/death()
- ..()
if(original_body)
original_body.adjustOrganLoss(ORGAN_SLOT_BRAIN, 200) //to be fair, you have to have a very high iq to understand-
original_body.forceMove(get_turf(src))
if(mind)
mind.transfer_to(original_body)
+ ..()
/mob/living/simple_animal/pickle/wabbajack_act() //restore users name before its used on the new mob
if(original_body)
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index 1e1559fc6a..f3d78af59b 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -623,7 +623,7 @@
pixel_x = trajectory.return_px()
pixel_y = trajectory.return_py()
else if(T != loc)
- var/safety = CEILING(pixel_increment_amount / world.icon_size, 1) * 2 + 1
+ var/safety = CEILING(pixel_increment_amount / world.icon_size, 1) * 5 + 1
while(T != loc)
if(!--safety)
CRASH("[type] took too long (allowed: [CEILING(pixel_increment_amount/world.icon_size,1)*2] moves) to get to its location.")
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index 5c5821381e..99e1f1481b 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -2336,3 +2336,53 @@
reagent_state = SOLID
color = "#E6E6DA"
taste_mult = 0
+
+
+/datum/reagent/hairball
+ name = "Hairball"
+ description = "A bundle of keratinous bits and fibers, not easily digestible."
+ reagent_state = SOLID
+ can_synth = FALSE
+ metabolization_rate = 0.05 * REAGENTS_METABOLISM
+ taste_description = "wet hair"
+ var/amount = 0
+ var/knotted = FALSE
+
+/datum/reagent/hairball/on_mob_life(mob/living/carbon/M)
+ amount = M.reagents.get_reagent_amount(/datum/reagent/hairball)
+
+ if(amount < 10)
+ if(prob(10))
+ M.losebreath += 1
+ M.emote("cough")
+ to_chat(M, "You clear your throat.")
+ else
+ if(!knotted)
+ to_chat(M, "You feel a knot in your stomach.")
+ knotted = TRUE
+
+ if(prob(5 + amount * 0.5)) // don't want this to cause too much damage
+ M.losebreath += 2
+ to_chat(M, "You feel a knot in your throat.")
+ M.emote("cough")
+
+ else if(prob(amount - 4))
+ to_chat(M, "Your stomach feels awfully bloated.")
+ playsound(M,'sound/voice/catpeople/distressed.ogg', 50, FALSE)
+ M.visible_message("[M] seems distressed!.", ignored_mobs=M)
+
+ else if(prob(amount - 8))
+ knotted = FALSE
+ playsound(M,'sound/voice/catpeople/puking.ogg', 110, FALSE)
+ M.Immobilize(30)
+ sleep(30) //snowflake but it works, don't wanna proc this
+ if(QDELETED(M) || QDELETED(src)) //this handles race conditions about m or src not existing.
+ return
+ M.visible_message("[M] throws up a hairball! Disgusting!", ignored_mobs=M)
+ new /obj/item/toy/plush/hairball(get_turf(M))
+ to_chat(M, "Aaaah that's better!")
+ SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "cleared_stomach", /datum/mood_event/cleared_stomach, name)
+ M.reagents.del_reagent(/datum/reagent/hairball)
+ return
+ ..()
+
diff --git a/html/changelog.html b/html/changelog.html
index 8f0f7a5952..711c6fc9d8 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -50,6 +50,36 @@
-->
+
27 July 2020
+
Hatterhat updated:
+
+ - Training bokkens! Make 'em from wood, use 'em in-hand to toggle between harmful and not-so-harmful, practice your parrying with them!
+ - Marker beacons should have a sprite again.
+
+
silicons updated:
+
+ - clownops and clown mobs now share the same faction. HONK!
+
+
timothyteakettle updated:
+
+ - modern pickle technology now allows people who have been turned into pickles, to be retrieved through the medical course of dying
+
+
+
26 July 2020
+
DeltaFire15 updated:
+
+ - Organs now decay again.
+
+
Iatots updated:
+
+ - Licking wounds now may cause you to spit out a hairball once in a while!
+ - You can now craft a catgirl plushie with 3 of a new ingredient occasionally found in medbay!
+
+
dapnee updated:
+
+ - removed legacy public mining shuttle area and remade lounge
+
+
25 July 2020
CameronWoof updated:
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index c433ea1a19..83ab3069cd 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -26518,3 +26518,22 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
- bugfix: Aloe now has an icon.
timothyteakettle:
- bugfix: beepsky replaces the word THREAT_LEVEL with the actual threat level
+2020-07-26:
+ DeltaFire15:
+ - bugfix: Organs now decay again.
+ Iatots:
+ - tweak: Licking wounds now may cause you to spit out a hairball once in a while!
+ - rscadd: You can now craft a catgirl plushie with 3 of a new ingredient occasionally
+ found in medbay!
+ dapnee:
+ - tweak: removed legacy public mining shuttle area and remade lounge
+2020-07-27:
+ Hatterhat:
+ - rscadd: Training bokkens! Make 'em from wood, use 'em in-hand to toggle between
+ harmful and not-so-harmful, practice your parrying with them!
+ - bugfix: Marker beacons should have a sprite again.
+ silicons:
+ - rscadd: clownops and clown mobs now share the same faction. HONK!
+ timothyteakettle:
+ - bugfix: modern pickle technology now allows people who have been turned into pickles,
+ to be retrieved through the medical course of dying
diff --git a/html/changelogs/AutoChangeLog-pr-12896.yml b/html/changelogs/AutoChangeLog-pr-12896.yml
new file mode 100644
index 0000000000..5ea8b8acb2
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-12896.yml
@@ -0,0 +1,4 @@
+author: "timothyteakettle"
+delete-after: True
+changes:
+ - bugfix: "changed up pet carriers / bluespace jars a bit so you can't fit certain things inside them and also the text shown for resist times is accurate"
diff --git a/html/changelogs/AutoChangeLog-pr-12903.yml b/html/changelogs/AutoChangeLog-pr-12903.yml
new file mode 100644
index 0000000000..f137f88c30
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-12903.yml
@@ -0,0 +1,4 @@
+author: "Sishen1542"
+delete-after: True
+changes:
+ - rscdel: "removed zoomba"
diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi
index 00cffd9006..ae8e6221c6 100644
Binary files a/icons/mob/clothing/back.dmi and b/icons/mob/clothing/back.dmi differ
diff --git a/icons/mob/clothing/belt.dmi b/icons/mob/clothing/belt.dmi
index fd3016ac89..52ef75020c 100644
Binary files a/icons/mob/clothing/belt.dmi and b/icons/mob/clothing/belt.dmi differ
diff --git a/icons/mob/inhands/weapons/swords_lefthand.dmi b/icons/mob/inhands/weapons/swords_lefthand.dmi
index 1e48d57ac7..0ca36ad43d 100644
Binary files a/icons/mob/inhands/weapons/swords_lefthand.dmi and b/icons/mob/inhands/weapons/swords_lefthand.dmi differ
diff --git a/icons/mob/inhands/weapons/swords_righthand.dmi b/icons/mob/inhands/weapons/swords_righthand.dmi
index 5a5ee6f3db..59d7bbce69 100644
Binary files a/icons/mob/inhands/weapons/swords_righthand.dmi and b/icons/mob/inhands/weapons/swords_righthand.dmi differ
diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi
index 2bb8af7c61..082bfb3c3e 100644
Binary files a/icons/mob/robots.dmi and b/icons/mob/robots.dmi differ
diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi
index cf7a87d28b..84bba1a578 100644
Binary files a/icons/obj/items_and_weapons.dmi and b/icons/obj/items_and_weapons.dmi differ
diff --git a/icons/obj/lighting.dmi b/icons/obj/lighting.dmi
index 675005da91..c3ca67eeae 100644
Binary files a/icons/obj/lighting.dmi and b/icons/obj/lighting.dmi differ
diff --git a/icons/obj/plushes.dmi b/icons/obj/plushes.dmi
index 3abb25d8b2..11d02a46cc 100644
Binary files a/icons/obj/plushes.dmi and b/icons/obj/plushes.dmi differ
diff --git a/sound/voice/catpeople/distressed.ogg b/sound/voice/catpeople/distressed.ogg
new file mode 100644
index 0000000000..cebe73dffc
Binary files /dev/null and b/sound/voice/catpeople/distressed.ogg differ
diff --git a/sound/voice/catpeople/license.txt b/sound/voice/catpeople/license.txt
new file mode 100644
index 0000000000..7218480ddb
--- /dev/null
+++ b/sound/voice/catpeople/license.txt
@@ -0,0 +1,2 @@
+distressed_cat.ogg from Cat annoyed meow / wail by jbierfeldt at https://freesound.org/people/jbierfeldt/sounds/440735/, chopped up and ogged
+cat_puking.ogg from catpuking mp3 by NoiseCollector and Mocha the cat at https://freesound.org/people/NoiseCollector/sounds/80778/, chopped up, volume altered and ogged
\ No newline at end of file
diff --git a/sound/voice/catpeople/puking.ogg b/sound/voice/catpeople/puking.ogg
new file mode 100644
index 0000000000..e19c10858f
Binary files /dev/null and b/sound/voice/catpeople/puking.ogg differ