diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm
index c2bdea157e..ed882850cf 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm
@@ -499,10 +499,6 @@
/mob/living/simple_animal/hostile/alien,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/xenonest)
-"bD" = (
-/obj/structure/alien/weeds,
-/turf/template_noop,
-/area/ruin/unpowered/xenonest)
"dE" = (
/obj/structure/alien/weeds,
/obj/structure/bed/nest,
@@ -1573,8 +1569,8 @@ aa
aa
aa
ac
-bD
-bD
+ag
+ag
aa
"}
(20,1,1) = {"
@@ -1625,7 +1621,7 @@ aa
aa
aa
ac
-bD
+ag
aa
"}
(21,1,1) = {"
@@ -1676,8 +1672,8 @@ ac
aa
aa
ac
-bD
-bD
+ag
+ag
"}
(22,1,1) = {"
ab
@@ -1727,8 +1723,8 @@ ac
ac
ac
aW
-bD
-bD
+ag
+ag
"}
(23,1,1) = {"
ab
@@ -1778,8 +1774,8 @@ ag
aw
ar
ag
-bD
-bD
+ag
+ag
"}
(24,1,1) = {"
ab
@@ -1829,8 +1825,8 @@ ag
aw
ar
ag
-bD
-bD
+ag
+ag
"}
(25,1,1) = {"
ab
@@ -1880,8 +1876,8 @@ ac
ac
ac
ac
-bD
-bD
+ag
+ag
"}
(26,1,1) = {"
ab
diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm
index 826d25a437..d3f71b44f6 100644
--- a/_maps/map_files/BoxStation/BoxStation.dmm
+++ b/_maps/map_files/BoxStation/BoxStation.dmm
@@ -27606,13 +27606,13 @@
/obj/structure/sign/warning/radiation/rad_area{
pixel_x = 32
},
-/obj/structure/cable{
- icon_state = "0-2"
- },
/obj/structure/cable{
icon_state = "0-8"
},
/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
/turf/open/floor/plating,
/area/engineering/gravity_generator)
"bnX" = (
@@ -40890,8 +40890,8 @@
/turf/open/floor/plasteel,
/area/engineering/atmos)
"bTT" = (
-/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
- dir = 8
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 1
},
/obj/machinery/meter,
/turf/open/floor/plasteel,
@@ -56262,6 +56262,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/turf/open/floor/plasteel,
/area/engineering/engine_smes)
"jLv" = (
@@ -56574,7 +56575,7 @@
dir = 6
},
/obj/structure/cable{
- icon_state = "0-8"
+ icon_state = "0-2"
},
/turf/open/floor/plasteel,
/area/engineering/gravity_generator)
@@ -57372,6 +57373,7 @@
/area/service/bar)
"moS" = (
/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible,
+/obj/machinery/meter,
/turf/open/floor/plasteel,
/area/engineering/atmos)
"mps" = (
@@ -57535,6 +57537,19 @@
/obj/structure/falsewall,
/turf/open/floor/plating,
/area/security/prison)
+"mJf" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/engineering/gravity_generator)
"mJo" = (
/obj/structure/door_assembly/door_assembly_mai,
/obj/item/electronics/airlock,
@@ -57576,9 +57591,6 @@
name = "Gravity Generator";
req_access_txt = "11"
},
-/obj/structure/cable{
- icon_state = "1-8"
- },
/turf/open/floor/plasteel/dark,
/area/engineering/gravity_generator)
"mOG" = (
@@ -58245,9 +58257,6 @@
/obj/effect/turf_decal/stripes/line{
dir = 4
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
/obj/machinery/light{
dir = 4;
light_color = "#c1caff"
@@ -60541,6 +60550,9 @@
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/engineering/gravity_generator)
"tJS" = (
@@ -60771,10 +60783,10 @@
/turf/open/floor/plating,
/area/maintenance/port/fore)
"ugu" = (
-/obj/structure/cable{
- icon_state = "1-4"
- },
/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel,
/area/engineering/gravity_generator)
"uhm" = (
@@ -61143,10 +61155,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 5
},
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/power/terminal,
/turf/closed/wall/r_wall,
/area/engineering/gravity_generator)
"uRn" = (
@@ -61353,11 +61361,10 @@
/turf/open/floor/plating,
/area/maintenance/port)
"vob" = (
-/obj/structure/cable{
- icon_state = "1-4"
- },
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/machinery/meter,
/turf/open/floor/plasteel,
-/area/engineering/gravity_generator)
+/area/engineering/atmos)
"voW" = (
/obj/structure/pool/Lboard,
/turf/open/pool,
@@ -61563,10 +61570,13 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"vFr" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
/obj/effect/turf_decal/stripes/line,
+/obj/machinery/power/terminal{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
/turf/open/floor/plasteel,
/area/engineering/gravity_generator)
"vGn" = (
@@ -62192,9 +62202,6 @@
/turf/open/floor/carpet/royalblue,
/area/maintenance/starboard/aft)
"xgC" = (
-/obj/structure/cable{
- icon_state = "0-4"
- },
/obj/machinery/power/apc{
areastring = "/area/engineering/gravity_generator";
dir = 8;
@@ -62208,13 +62215,13 @@
/obj/effect/turf_decal/stripes/line{
dir = 8
},
-/obj/structure/cable{
- icon_state = "0-2"
- },
/obj/machinery/light{
dir = 8;
light_color = "#e8eaff"
},
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
/turf/open/floor/plasteel,
/area/engineering/gravity_generator)
"xgF" = (
@@ -62224,13 +62231,10 @@
},
/area/maintenance/bar)
"xhS" = (
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
/turf/open/floor/plasteel,
/area/engineering/gravity_generator)
"xhV" = (
@@ -85028,7 +85032,7 @@ btG
rXl
xgC
ugu
-bnV
+mJf
bph
bih
big
@@ -85283,7 +85287,7 @@ xTy
xTy
tJK
xTy
-vob
+xTy
xhS
mOB
bph
@@ -87072,11 +87076,11 @@ bCq
bSs
ceY
ccw
-ccw
+cjJ
cnR
cgT
cjJ
-ccw
+cjJ
ccw
ccw
ccw
@@ -96303,7 +96307,7 @@ bPc
bQs
cez
ceA
-daq
+bTT
bUN
bOd
bOd
@@ -97335,9 +97339,9 @@ moS
kGv
bUS
cCE
-bTT
-bUS
+bXU
bUS
+vob
bUS
bXU
bUS
diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index 39688c1db8..2e84b729e7 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -72141,24 +72141,6 @@
/obj/machinery/atmospherics/pipe/simple/general/visible,
/turf/open/floor/plasteel,
/area/engineering/atmos)
-"exg" = (
-/obj/structure/chair/office/light{
- dir = 8
- },
-/obj/structure/cable/white{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel{
- heat_capacity = 1e+006
- },
-/area/command/heads_quarters/ce)
"exo" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -79857,20 +79839,6 @@
},
/turf/open/floor/plasteel/dark,
/area/service/library)
-"hkJ" = (
-/obj/structure/cable/white{
- icon_state = "1-2"
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/plasteel{
- heat_capacity = 1e+006
- },
-/area/command/heads_quarters/ce)
"hkK" = (
/obj/structure/table/reinforced,
/obj/item/electronics/firelock,
@@ -86455,6 +86423,9 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/structure/cable/white{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel{
heat_capacity = 1e+006
},
@@ -91661,6 +91632,9 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/structure/cable/white{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel/dark,
/area/command/heads_quarters/ce)
"laA" = (
@@ -92991,9 +92965,6 @@
/area/engineering/break_room)
"lCx" = (
/obj/structure/table/reinforced,
-/obj/structure/cable/white{
- icon_state = "1-2"
- },
/obj/item/clipboard,
/obj/item/toy/figure/ce,
/obj/effect/turf_decal/tile/neutral{
@@ -93526,9 +93497,6 @@
/area/service/abandoned_gambling_den)
"lLv" = (
/obj/structure/table/reinforced,
-/obj/structure/cable/white{
- icon_state = "2-4"
- },
/obj/item/folder/blue{
pixel_x = 3;
pixel_y = 3
@@ -94394,9 +94362,6 @@
/obj/item/gps/engineering{
gpstag = "CE0"
},
-/obj/machinery/newscaster{
- pixel_y = 32
- },
/obj/structure/disposalpipe/segment{
dir = 4
},
@@ -94410,6 +94375,15 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/machinery/power/apc{
+ areastring = "/area/command/heads_quarters/ce";
+ dir = 1;
+ name = "Chief Engineer's APC";
+ pixel_y = 30
+ },
+/obj/structure/cable/white{
+ icon_state = "0-2"
+ },
/turf/open/floor/plasteel/dark,
/area/command/heads_quarters/ce)
"mcu" = (
@@ -109351,25 +109325,6 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/service/hydroponics)
-"rts" = (
-/obj/structure/cable/white,
-/obj/machinery/power/apc{
- areastring = "/area/command/heads_quarters/ce";
- name = "Chief Engineer's APC";
- pixel_y = -26
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/command/heads_quarters/ce)
"rtx" = (
/obj/structure/table/wood,
/obj/item/storage/briefcase{
@@ -116201,6 +116156,19 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
/area/engineering/storage/tech)
+"tGF" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/cable/white{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/command/heads_quarters/ce)
"tGL" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 4
@@ -117812,9 +117780,6 @@
/obj/structure/cable/white{
icon_state = "1-2"
},
-/obj/structure/cable/white{
- icon_state = "1-8"
- },
/obj/machinery/light{
dir = 4
},
@@ -117829,6 +117794,10 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
/turf/open/floor/plasteel/dark,
/area/command/heads_quarters/ce)
"uiv" = (
@@ -121250,9 +121219,6 @@
/area/service/chapel/office)
"vBq" = (
/obj/structure/table/reinforced,
-/obj/structure/cable/white{
- icon_state = "1-2"
- },
/obj/item/cartridge/engineering{
pixel_x = 6
},
@@ -122264,6 +122230,22 @@
/obj/effect/spawner/lootdrop/keg,
/turf/open/floor/plating,
/area/service/abandoned_gambling_den)
+"vXq" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/firealarm{
+ pixel_y = -28
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
"vXw" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -124083,10 +124065,6 @@
/obj/item/cartridge/atmos,
/obj/item/cartridge/atmos,
/obj/item/cartridge/atmos,
-/obj/machinery/airalarm{
- dir = 1;
- pixel_y = -22
- },
/obj/item/stamp/ce,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -151712,13 +151690,13 @@ mMB
pRP
kkO
mcs
-mHG
+tGF
xKr
lLv
lCx
vBq
-hkJ
-rts
+ikP
+vXq
qjg
ine
vJe
@@ -151971,7 +151949,7 @@ kkO
nZq
jpC
ivQ
-exg
+tbI
tbI
ilG
hbc
@@ -152485,7 +152463,7 @@ kkO
jKf
prr
qPW
-xSN
+kkO
sSa
jry
pTd
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index 8221deeadb..d2857d8a43 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -67711,6 +67711,9 @@
pixel_y = 24
},
/obj/machinery/computer/atmos_control,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 4
+ },
/turf/open/floor/plasteel/checker,
/area/engineering/atmos)
"oOi" = (
diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm
index eacbc74508..27a4cb8491 100644
--- a/_maps/map_files/PubbyStation/PubbyStation.dmm
+++ b/_maps/map_files/PubbyStation/PubbyStation.dmm
@@ -10755,6 +10755,11 @@
name = "Port Solar APC";
pixel_y = 23
},
+/obj/machinery/camera{
+ c_tag = "Port Bow Solar";
+ dir = 9;
+ name = "solar camera"
+ },
/turf/open/floor/plating,
/area/maintenance/solars/port)
"ayD" = (
@@ -24647,6 +24652,12 @@
},
/turf/open/space,
/area/solars/starboard)
+"beW" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/engineering/atmos)
"beY" = (
/obj/machinery/camera{
c_tag = "Arrivals Central";
@@ -37817,6 +37828,10 @@
/obj/effect/turf_decal/tile/purple{
dir = 8
},
+/obj/item/radio/intercom{
+ pixel_x = 30;
+ pixel_y = -2
+ },
/turf/open/floor/plasteel,
/area/science/mixing)
"bHI" = (
@@ -40355,15 +40370,9 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/components/binary/pump{
+/obj/machinery/atmospherics/components/binary/pump/on{
dir = 8;
- name = "Mix to Ports"
- },
-/turf/open/floor/plasteel,
-/area/engineering/atmos)
-"bNk" = (
-/obj/machinery/atmospherics/pipe/manifold/green/visible{
- dir = 1
+ name = "Unfiltered to Mix"
},
/turf/open/floor/plasteel,
/area/engineering/atmos)
@@ -40372,8 +40381,9 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
-/obj/machinery/atmospherics/pipe/manifold/green/visible{
- dir = 1
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 4;
+ name = "Unfiltered & Air to Mix"
},
/turf/open/floor/plasteel,
/area/engineering/atmos)
@@ -40809,23 +40819,19 @@
},
/turf/open/floor/plasteel,
/area/engineering/atmos)
-"bOo" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible,
-/turf/open/floor/plasteel,
-/area/engineering/atmos)
"bOp" = (
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/general/visible{
- dir = 10
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Pure to Mix"
},
/turf/open/floor/plasteel,
/area/engineering/atmos)
"bOq" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 1;
- name = "Pure to Mix"
+/obj/machinery/atmospherics/pipe/manifold/green/visible{
+ dir = 1
},
/turf/open/floor/plasteel,
/area/engineering/atmos)
@@ -40844,7 +40850,7 @@
/turf/open/floor/engine/vacuum,
/area/science/mixing)
"bOu" = (
-/obj/machinery/atmospherics/components/unary/outlet_injector/on{
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input{
dir = 4
},
/turf/open/floor/plating/airless,
@@ -41089,13 +41095,6 @@
},
/turf/open/floor/plasteel,
/area/engineering/atmos)
-"bPa" = (
-/obj/machinery/portable_atmospherics/canister,
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/engineering/atmos)
"bPd" = (
/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
dir = 8
@@ -41407,7 +41406,6 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/general/visible,
/turf/open/floor/plasteel,
/area/engineering/atmos)
"bPW" = (
@@ -41785,14 +41783,16 @@
/turf/open/floor/plasteel,
/area/engineering/atmos)
"bQK" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/obj/machinery/atmospherics/pipe/simple/general/visible{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/turf/open/floor/plasteel,
/area/engineering/atmos)
"bQL" = (
-/obj/machinery/atmospherics/pipe/manifold4w/general/visible,
+/obj/machinery/atmospherics/pipe/manifold/green/visible{
+ dir = 8
+ },
/turf/open/floor/plasteel,
/area/engineering/atmos)
"bQM" = (
@@ -41800,9 +41800,8 @@
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 1;
- name = "Unfiltered to Mix"
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 10
},
/turf/open/floor/plasteel,
/area/engineering/atmos)
@@ -42109,8 +42108,7 @@
/turf/open/floor/plasteel,
/area/engineering/atmos)
"bRw" = (
-/obj/machinery/atmospherics/pipe/manifold4w/general/visible,
-/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/simple/general/visible,
/turf/open/floor/plasteel,
/area/engineering/atmos)
"bRx" = (
@@ -52332,7 +52330,6 @@
/area/service/library)
"czp" = (
/obj/structure/table/wood,
-/obj/item/disk/nuclear/fake,
/obj/item/barcodescanner,
/turf/open/floor/plasteel/dark,
/area/service/library)
@@ -53829,6 +53826,12 @@
},
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
+"eEd" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/engineering/atmos)
"eEp" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 4
@@ -55198,6 +55201,15 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
+"hEi" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/engineering/atmos)
"hEX" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 6
@@ -56739,6 +56751,12 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel/dark,
/area/engineering/main)
+"kWG" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engineering/atmos)
"kWQ" = (
/obj/machinery/atmospherics/pipe/simple/orange/visible,
/obj/structure/cable/yellow{
@@ -57369,6 +57387,11 @@
name = "Starboard Solar APC";
pixel_x = -25
},
+/obj/machinery/camera{
+ c_tag = "Starboard Solar";
+ dir = 10;
+ name = "solar camera"
+ },
/turf/open/floor/plating,
/area/maintenance/solars/starboard)
"mwg" = (
@@ -57443,6 +57466,15 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/closed/wall,
/area/maintenance/department/engine)
+"mAR" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/engineering/atmos)
"mCe" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
@@ -58849,6 +58881,10 @@
},
/turf/open/floor/wood,
/area/service/lawoffice)
+"pEM" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible,
+/turf/open/floor/plasteel,
+/area/engineering/atmos)
"pFe" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/turf_decal/tile/red{
@@ -59370,6 +59406,13 @@
},
/turf/open/floor/plasteel/dark,
/area/maintenance/department/crew_quarters/dorms)
+"qQu" = (
+/obj/machinery/portable_atmospherics/canister,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engineering/atmos)
"qRl" = (
/obj/item/radio/intercom{
name = "Station Intercom (General)";
@@ -60110,6 +60153,13 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
+"sGJ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/turf/open/floor/plasteel,
+/area/engineering/atmos)
"sIK" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -61031,6 +61081,12 @@
},
/turf/open/floor/engine,
/area/engineering/main)
+"uST" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ name = "Mix to Ports"
+ },
+/turf/open/floor/plasteel,
+/area/engineering/atmos)
"uUQ" = (
/obj/machinery/door/airlock/maintenance{
name = "Engineering Maintenance";
@@ -99648,7 +99704,7 @@ bJN
bKS
bMe
bNh
-bOo
+pEM
bOX
bMf
bMf
@@ -100162,9 +100218,9 @@ bHw
bKU
bOr
bPU
+kWG
bRw
-bPa
-bMf
+beW
bMf
bMf
bMf
@@ -100418,13 +100474,13 @@ bIF
bHw
bKV
bOX
-bUv
+eEd
bQL
-bPa
-bMf
-bMf
-bMf
+uST
+pEM
bMf
+qQu
+qQu
bSU
bTT
bUv
@@ -100678,10 +100734,10 @@ bMg
bNj
bOp
bPV
-bPV
-bPV
-bPV
-bPV
+hEi
+sGJ
+bUw
+bUw
bUw
bUw
bUw
@@ -100932,8 +100988,8 @@ bIH
bHw
cqG
bOX
-bNk
bOq
+mAR
bPd
bPW
bPW
diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index ded183ba0b..3807b66b06 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -165,6 +165,7 @@
#define TRAIT_EXEMPT_HEALTH_EVENTS "exempt-health-events"
#define TRAIT_NO_MIDROUND_ANTAG "no-midround-antag" //can't be turned into an antag by random events
#define TRAIT_PUGILIST "pugilist" //This guy punches people for a living
+#define TRAIT_NOPUGILIST "nopugilist" // for preventing ((((((((((extreme)))))))))) punch stacking
#define TRAIT_KI_VAMPIRE "ki-vampire" //when someone with this trait rolls maximum damage on a punch and stuns the target, they regain some stamina and do clone damage
#define TRAIT_MAULER "mauler" // this guy punches the shit out of people to hurt them, not to drain their stamina
#define TRAIT_PASSTABLE "passtable"
diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm
index 5881c76827..9b9ea3c86e 100644
--- a/code/datums/martial/sleeping_carp.dm
+++ b/code/datums/martial/sleeping_carp.dm
@@ -165,6 +165,7 @@
ADD_TRAIT(H, TRAIT_PIERCEIMMUNE, SLEEPING_CARP_TRAIT)
ADD_TRAIT(H, TRAIT_NODISMEMBER, SLEEPING_CARP_TRAIT)
ADD_TRAIT(H, TRAIT_TASED_RESISTANCE, SLEEPING_CARP_TRAIT)
+ ADD_TRAIT(H, TRAIT_NOPUGILIST, SLEEPING_CARP_TRAIT) // cqc doesn't get this as it's intended to be able to stack with northstar gloves
H.physiology.brute_mod *= 0.4 //brute is really not gonna cut it
H.physiology.burn_mod *= 0.7 //burn is distinctly more useful against them than brute but they're still resistant
H.physiology.stamina_mod *= 0.4 //You take less stamina damage overall, but you do not reduce the damage from stun batons as much
@@ -181,6 +182,7 @@
REMOVE_TRAIT(H, TRAIT_PIERCEIMMUNE, SLEEPING_CARP_TRAIT)
REMOVE_TRAIT(H, TRAIT_NODISMEMBER, SLEEPING_CARP_TRAIT)
REMOVE_TRAIT(H, TRAIT_TASED_RESISTANCE, SLEEPING_CARP_TRAIT)
+ REMOVE_TRAIT(H, TRAIT_NOPUGILIST, SLEEPING_CARP_TRAIT)
H.physiology.brute_mod = initial(H.physiology.brute_mod)
H.physiology.burn_mod = initial(H.physiology.burn_mod)
H.physiology.stamina_mod = initial(H.physiology.stamina_mod)
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index aafa77b878..098f1a2ea0 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -579,7 +579,7 @@
//TODO: Better floating
/atom/movable/proc/float(on, throw_override)
- if(throwing || !throw_override)
+ if(throwing && !throw_override)
return
if(on && !(movement_type & FLOATING))
animate(src, pixel_y = 2, time = 10, loop = -1, flags = ANIMATION_RELATIVE)
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 4eed168ad6..477f72ee3b 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -688,7 +688,7 @@
else
. += "It looks very robust."
- if(hasSiliconAccessInArea(user) && (!stat & BROKEN))
+ if(hasSiliconAccessInArea(user) && !(stat & BROKEN))
. += "Shift-click [src] to [ density ? "open" : "close"] it."
. += "Ctrl-click [src] to [ locked ? "raise" : "drop"] its bolts."
. += "Alt-click [src] to [ secondsElectrified ? "un-electrify" : "permanently electrify"] it."
diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm
index 6e66f833c2..f888927411 100644
--- a/code/game/objects/items/stacks/medical.dm
+++ b/code/game/objects/items/stacks/medical.dm
@@ -383,7 +383,7 @@
. = ..()
/obj/item/stack/medical/mesh/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
- if(!is_open & user.get_inactive_held_item() == src)
+ if(!is_open && (user.get_inactive_held_item() == src))
to_chat(user, "You need to open [src] first.")
return
. = ..()
diff --git a/code/game/objects/structures/spawner.dm b/code/game/objects/structures/spawner.dm
index 9032a80d91..7d13af1e3e 100644
--- a/code/game/objects/structures/spawner.dm
+++ b/code/game/objects/structures/spawner.dm
@@ -73,3 +73,15 @@
name = "wumborian fugu den"
desc = "A den housing a nest of wumborian fugus, how do they all even fit in there?"
mob_types = list(/mob/living/simple_animal/hostile/asteroid/fugu)
+
+/obj/structure/spawner/clown
+ name = "Laughing Larry"
+ desc = "A laughing, jovial figure. Something seems stuck in his throat."
+ icon_state = "clownbeacon"
+ icon = 'icons/obj/device.dmi'
+ max_integrity = 200
+ max_mobs = 15
+ spawn_time = 150
+ mob_types = list(/mob/living/simple_animal/hostile/retaliate/clown, /mob/living/simple_animal/hostile/retaliate/clown/fleshclown, /mob/living/simple_animal/hostile/retaliate/clown/clownhulk, /mob/living/simple_animal/hostile/retaliate/clown/longface, /mob/living/simple_animal/hostile/retaliate/clown/clownhulk/chlown, /mob/living/simple_animal/hostile/retaliate/clown/clownhulk/honcmunculus, /mob/living/simple_animal/hostile/retaliate/clown/mutant/blob)
+ spawn_text = "climbs out of"
+ faction = list("clown")
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index fba79ac2b0..6356424aaf 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -127,7 +127,7 @@
to_chat(user, "Throwing [pushed_mob] onto the table might hurt them!")
return
var/added_passtable = FALSE
- if(!pushed_mob.pass_flags & PASSTABLE)
+ if(!(pushed_mob.pass_flags & PASSTABLE))
added_passtable = TRUE
pushed_mob.pass_flags |= PASSTABLE
pushed_mob.Move(src.loc)
diff --git a/code/modules/admin/antag_panel.dm b/code/modules/admin/antag_panel.dm
index 84071d76f4..2d1aa63a91 100644
--- a/code/modules/admin/antag_panel.dm
+++ b/code/modules/admin/antag_panel.dm
@@ -104,7 +104,7 @@ GLOBAL_VAR(antag_prototypes)
var/datum/component/activity/activity = current.GetComponent(/datum/component/activity)
if(activity)
out += "Activity level: [activity.activity_level]
"
- out += "Hasn't changed areas in approximately [activity.not_moved_counter] seconds"
+ out += "Hasn't changed areas in approximately [activity.not_moved_counter] seconds
"
var/special_statuses = get_special_statuses()
if(length(special_statuses))
diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm
index 5b6a7648c8..b7aeb23e6f 100644
--- a/code/modules/antagonists/changeling/powers/mutations.dm
+++ b/code/modules/antagonists/changeling/powers/mutations.dm
@@ -680,6 +680,11 @@
glove_type = /obj/item/clothing/gloves/fingerless/pugilist/cling // just punch his head off dude
glove_name_simple = "bone gauntlets"
+/obj/effect/proc_holder/changeling/gloves/gauntlets/sting_action(mob/living/user)
+ if(HAS_TRAIT(user, TRAIT_NOPUGILIST))
+ to_chat(user, "We would gain nothing by forming our fists into brute-force weapons when we are trained in precision martial arts!")
+ return
+
/obj/item/clothing/gloves/fingerless/pugilist/cling // switches between lesser GotNS and Big Punchy Rib Breaky Hands
name = "hewn bone gauntlets"
icon_state = "ling_gauntlets"
diff --git a/code/modules/antagonists/eldritch_cult/eldritch_magic.dm b/code/modules/antagonists/eldritch_cult/eldritch_magic.dm
index 4aeb2e1b73..4d6576ee92 100644
--- a/code/modules/antagonists/eldritch_cult/eldritch_magic.dm
+++ b/code/modules/antagonists/eldritch_cult/eldritch_magic.dm
@@ -50,7 +50,7 @@
/obj/item/melee/touch_attack/mansus_fist/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
- if(!proximity_flag | target == user)
+ if(!proximity_flag || (target == user))
return
playsound(user, 'sound/items/welder.ogg', 75, TRUE)
if(ishuman(target))
diff --git a/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm
index 8184beb3aa..aa927ffcfc 100644
--- a/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm
+++ b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm
@@ -24,7 +24,7 @@
var/check = FALSE
if(ismob(target))
var/mob/living/mobster = target
- if(!mobster.mob_biotypes & MOB_ROBOTIC)
+ if(!(mobster.mob_biotypes & MOB_ROBOTIC))
return FALSE
else
check = TRUE
diff --git a/code/modules/antagonists/slaughter/slaughter.dm b/code/modules/antagonists/slaughter/slaughter.dm
index a26d081f08..f616f2c848 100644
--- a/code/modules/antagonists/slaughter/slaughter.dm
+++ b/code/modules/antagonists/slaughter/slaughter.dm
@@ -84,6 +84,9 @@
if(slam_cooldown + slam_cooldown_time > world.time)
to_chat(src, "Your slam ability is still on cooldown!")
return
+ if(!isopenturf(loc))
+ to_chat(src, "You need to be on open flooring to do that!")
+ return
face_atom(A)
var/mob/living/victim = A
diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm
index 39c8c2df07..a337439931 100644
--- a/code/modules/clothing/gloves/miscellaneous.dm
+++ b/code/modules/clothing/gloves/miscellaneous.dm
@@ -37,14 +37,19 @@
/obj/item/clothing/gloves/fingerless/pugilist/equipped(mob/user, slot)
. = ..()
if(slot == SLOT_GLOVES)
- use_buffs(user, TRUE)
wornonce = TRUE
+ if((HAS_TRAIT(user, TRAIT_NOPUGILIST)))
+ to_chat(user, "What purpose is there to don the weapons of pugilism if you're already well-practiced in martial arts? Mixing arts is blasphemous!")
+ return
+ use_buffs(user, TRUE)
/obj/item/clothing/gloves/fingerless/pugilist/dropped(mob/user)
. = ..()
if(wornonce)
- use_buffs(user, FALSE)
wornonce = FALSE
+ if((HAS_TRAIT(user, TRAIT_NOPUGILIST)))
+ return
+ use_buffs(user, FALSE)
/obj/item/clothing/gloves/fingerless/pugilist/proc/use_buffs(mob/user, buff)
if(buff) // tarukaja
@@ -247,14 +252,18 @@
/obj/item/clothing/gloves/fingerless/pugilist/mauler/equipped(mob/user, slot)
. = ..()
if(slot == SLOT_GLOVES)
- use_mauls(user, TRUE)
wornonce = TRUE
+ if((HAS_TRAIT(user, TRAIT_NOPUGILIST)))
+ return
+ use_mauls(user, TRUE)
/obj/item/clothing/gloves/fingerless/pugilist/mauler/dropped(mob/user)
. = ..()
if(wornonce)
- use_mauls(user, FALSE)
wornonce = FALSE
+ if((HAS_TRAIT(user, TRAIT_NOPUGILIST)))
+ return
+ use_mauls(user, FALSE)
/obj/item/clothing/gloves/fingerless/pugilist/mauler/proc/use_mauls(mob/user, maul)
if(maul)
diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index cc14424980..6858de59df 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -535,3 +535,9 @@
to_chat(user, "You insert [I] into [src].")
B.use(10)
icon_state = initial(icon_state)
+
+/obj/item/clothing/shoes/swagshoes
+ name = "swag shoes"
+ desc = "They got me for my foams!"
+ icon_state = "SwagShoes"
+ item_state = "SwagShoes"
diff --git a/code/modules/clothing/under/costume.dm b/code/modules/clothing/under/costume.dm
index f8292738ee..60d82292ef 100644
--- a/code/modules/clothing/under/costume.dm
+++ b/code/modules/clothing/under/costume.dm
@@ -355,3 +355,10 @@
name = "Sakura Kimono'"
icon_state = "sakura_kimono"
item_state = "sakura_kimono"
+
+/obj/item/clothing/under/costume/swagoutfit
+ name = "Swag outfit"
+ desc = "Why don't you go secure some bitches?"
+ icon_state = "SwagOutfit"
+ item_state = "SwagOutfit"
+ can_adjust = FALSE
diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm
index 7d4ea66d30..b9480a646c 100644
--- a/code/modules/events/brand_intelligence.dm
+++ b/code/modules/events/brand_intelligence.dm
@@ -61,7 +61,7 @@
originMachine.visible_message("[originMachine] beeps and seems lifeless.")
kill()
return
- vendingMachines = listclearnulls(vendingMachines)
+ listclearnulls(vendingMachines)
if(!vendingMachines.len) //if every machine is infected
for(var/obj/machinery/vending/upriser in infectedMachines)
if(prob(70) && !QDELETED(upriser))
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm
index b8fab56159..628a5e53ac 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm
@@ -101,6 +101,13 @@
matrixed_sections = MATRIX_RED
icon = 'modular_citadel/icons/mob/mam_ears.dmi'
+/datum/sprite_accessory/ears/lablight
+ name = "Dog, Floppy (Light)"
+ icon_state = "lablight"
+ color_src = MATRIXED
+ matrixed_sections = MATRIX_RED
+ icon = 'modular_citadel/icons/mob/mam_ears.dmi'
+
/datum/sprite_accessory/ears/human/eevee
name = "Eevee"
icon_state = "eevee"
@@ -351,10 +358,15 @@
matrixed_sections = MATRIX_RED_GREEN
/datum/sprite_accessory/ears/mam_ears/lab
- name = "Dog, Long"
+ name = "Dog, Floppy"
icon_state = "lab"
matrixed_sections = MATRIX_RED
+/datum/sprite_accessory/ears/mam_ears/lablight
+ name = "Dog, Floppy (Light)"
+ icon_state = "lablight"
+ matrixed_sections = MATRIX_RED
+
/datum/sprite_accessory/ears/mam_ears/murid
name = "Murid"
icon_state = "murid"
diff --git a/code/modules/photography/camera/camera.dm b/code/modules/photography/camera/camera.dm
index b925c67940..49821e55e0 100644
--- a/code/modules/photography/camera/camera.dm
+++ b/code/modules/photography/camera/camera.dm
@@ -158,12 +158,12 @@
return FALSE
size_x = clamp(size_x, 0, CAMERA_PICTURE_SIZE_HARD_LIMIT)
size_y = clamp(size_y, 0, CAMERA_PICTURE_SIZE_HARD_LIMIT)
- var/list/desc = list("This is a photo of an area of [size_x+1] meters by [size_y+1] meters.")
+ var/list/desc = list("This is a photo of an area of [size_x*2 + 1] meters by [size_y*2 + 1] meters.")
var/ai_user = isAI(user)
var/list/seen
- var/list/viewlist = (user && user.client)? getviewsize(user.client.view) : getviewsize(world.view)
+ var/list/viewlist = user?.client? getviewsize(user.client.view) : getviewsize(world.view)
var/viewr = max(viewlist[1], viewlist[2]) + max(size_x, size_y)
- var/viewc = user.client? user.client.eye : target
+ var/viewc = user?.client? user.client.eye : target
seen = get_hear(viewr, viewc)
var/list/turfs = list()
var/list/mobs = list()
@@ -184,7 +184,7 @@
var/psize_y = (size_y * 2 + 1) * world.icon_size
var/get_icon = camera_get_icon(turfs, target_turf, psize_x, psize_y, clone_area, size_x, size_y, (size_x * 2 + 1), (size_y * 2 + 1))
qdel(clone_area)
- var/icon/temp = icon('icons/effects/96x96.dmi',"")
+ var/icon/temp = icon('icons/effects/camera_image_base.dmi',"")
temp.Blend("#000", ICON_OVERLAY)
temp.Scale(psize_x, psize_y)
temp.Blend(get_icon, ICON_OVERLAY)
diff --git a/code/modules/photography/camera/camera_image_capturing.dm b/code/modules/photography/camera/camera_image_capturing.dm
index 5bd9c108d1..a5a1cbeedc 100644
--- a/code/modules/photography/camera/camera_image_capturing.dm
+++ b/code/modules/photography/camera/camera_image_capturing.dm
@@ -47,7 +47,7 @@
atoms += A
CHECK_TICK
- var/icon/res = icon('icons/effects/96x96.dmi', "")
+ var/icon/res = icon('icons/effects/camera_image_base.dmi', "")
res.Scale(psize_x, psize_y)
var/list/sorted = list()
@@ -64,7 +64,6 @@
var/xcomp = FLOOR(psize_x / 2, 1) - 15
var/ycomp = FLOOR(psize_y / 2, 1) - 15
-
for(var/atom/A in sorted)
var/xo = (A.x - center.x) * world.icon_size + A.pixel_x + xcomp
var/yo = (A.y - center.y) * world.icon_size + A.pixel_y + ycomp
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 63d019f97f..06bf298454 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -568,12 +568,18 @@
/datum/action/item_action/toggle_scope_zoom/IsAvailable(silent = FALSE)
. = ..()
if(!.)
+ var/obj/item/gun/G = target
+ G.zoom(owner, owner.dir, FALSE)
+
+/datum/action/item_action/toggle_scope_zoom/Trigger()
+ . = ..()
+ if(.)
var/obj/item/gun/G = target
G.zoom(owner, owner.dir)
/datum/action/item_action/toggle_scope_zoom/Remove(mob/living/L)
var/obj/item/gun/G = target
- G.zoom(L, L.dir)
+ G.zoom(L, L.dir, FALSE)
return ..()
/obj/item/gun/proc/rotate(atom/thing, old_dir, new_dir)
diff --git a/code/modules/research/nanites/nanite_programs.dm b/code/modules/research/nanites/nanite_programs.dm
index d3cf755de2..946dec3f49 100644
--- a/code/modules/research/nanites/nanite_programs.dm
+++ b/code/modules/research/nanites/nanite_programs.dm
@@ -254,14 +254,14 @@
software_error()
/datum/nanite_program/proc/on_shock(shock_damage)
- if(!program_flags & NANITE_SHOCK_IMMUNE)
+ if(!(program_flags & NANITE_SHOCK_IMMUNE))
if(prob(10))
software_error()
else if(prob(33))
self_destruct()
/datum/nanite_program/proc/on_minor_shock()
- if(!program_flags & NANITE_SHOCK_IMMUNE)
+ if(!(program_flags & NANITE_SHOCK_IMMUNE))
if(prob(10))
software_error()
diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm
index fedaeff98c..da3c740a1b 100644
--- a/code/modules/vending/clothesmate.dm
+++ b/code/modules/vending/clothesmate.dm
@@ -212,6 +212,8 @@
/obj/item/clothing/suit/jacket/leather/overcoat = 4,
/obj/item/clothing/under/pants/mustangjeans = 3,
/obj/item/clothing/neck/necklace/dope = 5,
+ /obj/item/clothing/under/costume/swagoutfit = 5,
+ /obj/item/clothing/shoes/swagshoes = 5,
/obj/item/clothing/suit/jacket/letterman_nanotrasen = 5,
/obj/item/clothing/under/misc/corporateuniform = 5,
/obj/item/clothing/suit/hooded/wintercoat/polychromic = 5,
diff --git a/html/changelog.html b/html/changelog.html
index c597ac0073..1e425c557e 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -50,6 +50,62 @@
-->
+
05 June 2021
+
Arturlang updated:
+
+ - float sanity now makes it not actually run if it's actively being thrown
+
+
coderbus13 updated:
+
+ - Pubby's toxins injector now starts at 200L, like it does on other maps
+
+
zeroisthebiggay updated:
+
+ - light floppy dog ears
+
+
+
04 June 2021
+
MrJWhit updated:
+
+
Putnam3145 updated:
+
+ - sniper rifle doesn't ruin your round instantly now
+
+
+
03 June 2021
+
MrJWhit updated:
+
+ - Removed some debug tiles on the xenoruin.
+
+
TripleShades updated:
+
+ - Added a camera to both solar entryways
+ - Added an intercom to toxin's launch for the doppler
+ - The fake nuke auth disk in the library
+
+
+
29 May 2021
+
Kraseo updated:
+
+ - No more slamming into people while bloodcrawled.
+
+
Linzolle updated:
+
+ - brand intelligence event works again
+
+
keronshb updated:
+
+ - swag outfit available in clothesmate
+ - swag shoes availble in clothesmate resprite: changed swag shoes icon to the one twaticus made.
+ - Adds the clown mob spawner for admins
+
+
zeroisthebiggay updated:
+
+ - puglism damage can no longer stack with scarp
+
+
26 May 2021
bunny232 updated:
@@ -542,126 +598,6 @@
- After a sudden crash in the tower-cap log slash wooden plank economy, NanoTrasen has decided to stop selling tower-cap logs to Cargo.
-
- 03 April 2021
- BlueWildrose updated:
-
- - The hydroponics pet bee, Bumbles no longer has a number besides their name.
-
- Putnam3145 updated:
-
- - "Destroy all nanotrasen cloning machines" objective is gone
- - Removed all the commented-out sabotage objectives (we can just get them from history)
- - Observe verb logging
-
-
- 02 April 2021
- LetterN updated:
-
-
- 29 March 2021
- BlueWildrose updated:
-
- - Fixed being unable to fix suit sensors if damaged at all unless destroyed completely
-
- YakumoChen updated:
-
- - A less-than-new Syndicate bundle that reminds you of the good old days when we didn't need all those newfangled traitor items the young-uns get. We had 6 items in the uplink and we had Monkey in rotation and by god we made do.
-
- qweq12yt updated:
-
- - Added Earmuffs
- - Added Random Drink
- - Added Clear PDA
- - Added Internals Box
- - Added Meson Goggles
- - Added Smoke Grenade
-
- silicons updated:
-
- - automated hydroponics system design now works properly
-
-
- 28 March 2021
- CuteMoff updated:
-
- - Changed Strength Modifier from the default (1.0) too .7
-
- Hatterhat updated:
-
- - As a heretic, shattering your blade no longer interferes with bluespace.
-
- Putnam3145 updated:
-
- - Threat tracking is now universal, rather than dynamic-only
- - Slaughter demon event now increases weight based on how much blood there is.
-
- R3dtail updated:
-
- - Removed ichor creates
- - Removed ichor crates and adjusted crate rolling appropriately
- - Removed the bonespear from the blackmarket uplink, and made EMP grenades harder to get from the same item.
- - Added a description to the black market uplink
-
- Shadow-Quill updated:
-
- - Added small versions of the walk icon for all hud styles, except Retro.
-
- dzahlus updated:
-
- - Added radial menu to joy mask for alt reskins
- - added pensive, angry and flushed sprites to joy mask
-
- keronshb updated:
-
- - Radioactive microlasers can no longer knock out creatures who are immune to the effects of radiation.
- - The radioactive microlaser now calculates the strength of its delay effect using the intensity setting it had when you initially used it on your victim, not the intensity setting it currently has. This prevents people from "cheating out" its intensity 20 effect with only a 2 second delay and a 1 second cooldown.
- - Radioactive microlasers no longer contain twice as much metal as normal health analyzers do.
-
- necromanceranne updated:
-
- - Replaces the useless bullet and laser shields with new Kinetic and Ablative shields, which do as they advertise.
- - Replaces the shield implants shield with a hardlight shield that can take large amounts of brute damage, but disintegrates when shot with disablers.
- - Fixes Fake Roman Shields being able to be used as normal riot shields.
- - Fixes nonlethal/non-physical damage types destroying shields. (stamina, toxins, oxygen, clone, brain)
- - Fixes tower shields not doing anything, while also giving them intergrity to match their advertised durability.
- - Uses additional flags to determine what kind effects work well and what works poorly against various shields.
-
- timothyteakettle updated:
-
- - ghost cafe residents can now disguise themselves as any mob or object
- - fixes character preview not updating when selecting the loadout tab
-
- zeroisthebiggay updated:
-
-
- 26 March 2021
- BlueWildrose updated:
-
- - Clothing no longer drops when shredded. It just becomes useless.
- - Suit sensors are guaranteed to short out when the clothes become shredded, not damaged now.
- - Uniform limb integrity increased from 30 to 120.
- - Suit sensor damage has been added. The more damaged your suit sensors get, the less features that will be available from these suit sensors. It takes two e-sword hits to ruin your tracking beacon for instance. tweak: Examine text on uniforms is now more clear about needing cable coil to repair your suit sensors.
- - Fixed prisoner uniform sprite paths
-
- CuteMoff updated:
-
- - Diamond's forcemod was changed from 1.1x to 1.2x
-
- Hatterhat updated:
-
- - Lever-action rifles, chambered in .38, are now sitting in the code. They might be buyable from Cargo or the Black Market soon. Watch this space.
- - Sawed-off shotguns now look like shotguns, but short, when inhand, instead of "generic gun".
-
- timothyteakettle updated:
-
- - slimes can be delimbed
- - the loadout now colours pet collars correctly
-
GoonStation 13 Development Team
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index 5855b178ce..30b5280ea2 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -29352,3 +29352,34 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
2021-05-26:
bunny232:
- bugfix: Removed two random 'captain's office' tiles from space on meta station
+2021-05-29:
+ Kraseo:
+ - bugfix: No more slamming into people while bloodcrawled.
+ Linzolle:
+ - bugfix: brand intelligence event works again
+ keronshb:
+ - rscadd: swag outfit available in clothesmate
+ - rscadd: 'swag shoes availble in clothesmate resprite: changed swag shoes icon
+ to the one twaticus made.'
+ - rscadd: Adds the clown mob spawner for admins
+ zeroisthebiggay:
+ - balance: puglism damage can no longer stack with scarp
+2021-06-03:
+ MrJWhit:
+ - balance: Removed some debug tiles on the xenoruin.
+ TripleShades:
+ - rscadd: Added a camera to both solar entryways
+ - rscadd: Added an intercom to toxin's launch for the doppler
+ - rscdel: The fake nuke auth disk in the library
+2021-06-04:
+ MrJWhit:
+ - rscadd: Adds a missing pipe
+ Putnam3145:
+ - bugfix: sniper rifle doesn't ruin your round instantly now
+2021-06-05:
+ Arturlang:
+ - code_imp: float sanity now makes it not actually run if it's actively being thrown
+ coderbus13:
+ - bugfix: Pubby's toxins injector now starts at 200L, like it does on other maps
+ zeroisthebiggay:
+ - rscadd: light floppy dog ears
diff --git a/icons/effects/camera_image_base.dmi b/icons/effects/camera_image_base.dmi
new file mode 100644
index 0000000000..4f5867e07e
Binary files /dev/null and b/icons/effects/camera_image_base.dmi differ
diff --git a/icons/mob/clothing/feet.dmi b/icons/mob/clothing/feet.dmi
index d93543805b..de50a0d9dc 100644
Binary files a/icons/mob/clothing/feet.dmi and b/icons/mob/clothing/feet.dmi differ
diff --git a/icons/mob/clothing/feet_digi.dmi b/icons/mob/clothing/feet_digi.dmi
index 43244e99b9..1cc1e801c7 100644
Binary files a/icons/mob/clothing/feet_digi.dmi and b/icons/mob/clothing/feet_digi.dmi differ
diff --git a/icons/mob/clothing/uniform.dmi b/icons/mob/clothing/uniform.dmi
index f2611b3ab7..6c29fdfa75 100644
Binary files a/icons/mob/clothing/uniform.dmi and b/icons/mob/clothing/uniform.dmi differ
diff --git a/icons/mob/clothing/uniform_digi.dmi b/icons/mob/clothing/uniform_digi.dmi
index 98ec436b86..a957b60a9b 100644
Binary files a/icons/mob/clothing/uniform_digi.dmi and b/icons/mob/clothing/uniform_digi.dmi differ
diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi
index aee67da199..cb2391b5ba 100644
Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ
diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi
index 6171e032dd..22464b3def 100644
Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ
diff --git a/modular_citadel/icons/mob/mam_ears.dmi b/modular_citadel/icons/mob/mam_ears.dmi
index e615b7f7ee..51541619d4 100644
Binary files a/modular_citadel/icons/mob/mam_ears.dmi and b/modular_citadel/icons/mob/mam_ears.dmi differ