diff --git a/_maps/map_files/AegisVII/AegisVII.dmm b/_maps/map_files/AegisVII/AegisVII.dmm
index 319adba27ad..3cb8be8d233 100644
--- a/_maps/map_files/AegisVII/AegisVII.dmm
+++ b/_maps/map_files/AegisVII/AegisVII.dmm
@@ -341,9 +341,6 @@
/area/station/security/brig)
"aiv" = (
/obj/machinery/light/directional/east,
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
/turf/open/floor/deadspace/random/slides,
/area/station/security/brig)
"aiP" = (
@@ -524,11 +521,19 @@
/turf/open/floor/deadspace/random/maint_center,
/area/station/security/checkpoint/science)
"amr" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+/obj/structure/rack,
+/obj/item/melee/cleric_mace{
+ name = "riot baton";
+ greyscale_colors = "#3e4040";
+ desc = "A very large steel club designed to curb RIG suit riots, very lethal against the unarmored."
},
-/turf/open/floor/deadspace/random/maint_center,
-/area/station/security/brig)
+/obj/item/melee/cleric_mace{
+ name = "riot baton";
+ greyscale_colors = "#3e4040";
+ desc = "A very large steel club designed to curb RIG suit riots, very lethal against the unarmored."
+ },
+/turf/open/floor/iron/dark,
+/area/station/ai_monitored/security/armory)
"amv" = (
/obj/structure/railing,
/obj/machinery/light/directional/north,
@@ -1759,7 +1764,7 @@
/turf/open/floor/deadspace/random/slides{
dir = 1
},
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"aUR" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/firealarm/directional/east,
@@ -1982,7 +1987,7 @@
/obj/structure/table/reinforced,
/obj/structure/window/reinforced/spawner,
/turf/open/floor/deadspace/mono,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"bbn" = (
/obj/machinery/camera/directional/south{
c_tag = "Courtroom - Gallery"
@@ -2595,7 +2600,7 @@
/obj/structure/cable/yellow{
icon_state = "3"
},
-/obj/structure/overfloor_catwalk/iron_dark,
+/turf/open/floor/iron/ported/lino,
/area/station/service/chapel/funeral)
"bqt" = (
/obj/machinery/light/directional/south,
@@ -2854,6 +2859,7 @@
"byk" = (
/obj/effect/mob_spawn/corpse/human/miner,
/obj/structure/overfloor_catwalk/iron_dark,
+/turf/open/floor/plating,
/area/aegis/mining)
"byl" = (
/obj/machinery/door/poddoor/shutters{
@@ -2951,12 +2957,6 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/deadspace/random/rectangles,
/area/station/commons/storage/primary)
-"bBw" = (
-/obj/machinery/door/airlock{
- name = "Bathroom"
- },
-/turf/closed/wall,
-/area/station/commons/dorms/barracks/female)
"bBH" = (
/obj/structure/chair{
dir = 8
@@ -3366,7 +3366,7 @@
},
/obj/machinery/light/directional/north,
/turf/open/floor/deadspace/mono,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"bKf" = (
/obj/structure/table/wood/fancy/red,
/obj/item/candle/infinite,
@@ -3410,13 +3410,10 @@
/turf/open/floor/plating,
/area/station/engineering/main)
"bLm" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"bLI" = (
/obj/structure/table,
/obj/item/flashlight/lamp,
@@ -3655,6 +3652,7 @@
"bQD" = (
/obj/effect/landmark/pestspawn,
/obj/structure/overfloor_catwalk/iron_dark,
+/turf/open/floor/plating,
/area/aegis/mining)
"bQI" = (
/obj/effect/turf_decal/tile/neutral/opposingcorners,
@@ -3859,12 +3857,17 @@
/turf/open/floor/deadspace/mono,
/area/station/cargo)
"bVx" = (
-/obj/structure/disposalpipe/segment{
- dir = 9
+/obj/structure/rack,
+/obj/item/melee/curator_whip{
+ name = "riot whip";
+ desc = "A whip designed to curtail civilian riots, use sparingly."
+ },
+/obj/item/melee/curator_whip{
+ name = "riot whip";
+ desc = "A whip designed to curtail civilian riots, use sparingly."
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"bVz" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -3973,12 +3976,13 @@
},
/area/station/security/checkpoint/science)
"bYn" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/rack,
+/obj/item/restraints/legcuffs/bola/tactical,
+/obj/item/restraints/legcuffs/bola/tactical,
+/obj/item/restraints/legcuffs/bola/tactical,
+/obj/item/restraints/legcuffs/bola/tactical,
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"bYz" = (
/obj/effect/landmark/pestspawn,
/turf/open/floor/deadspace/random/slides{
@@ -4188,7 +4192,8 @@
/obj/machinery/conveyor{
id = "Storage Upper"
},
-/obj/structure/overfloor_catwalk/iron_dark,
+/obj/structure/lattice,
+/turf/open/openspace,
/area/aegis/surface)
"cef" = (
/obj/effect/landmark{
@@ -4490,7 +4495,7 @@
/turf/open/floor/deadspace/random/slides_end{
dir = 1
},
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"cmG" = (
/obj/effect/turf_decal/tile/neutral/opposingcorners,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
@@ -4858,7 +4863,7 @@
/turf/open/floor/deadspace/random/slides{
dir = 1
},
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"cxa" = (
/obj/effect/turf_decal/box,
/turf/open/floor/deadspace/grater,
@@ -5446,6 +5451,7 @@
/area/station/hallway/primary/fore)
"cLi" = (
/obj/structure/closet/secure_closet/ds/hos,
+/obj/item/shield/riot/ds/advanced,
/turf/open/floor/deadspace/hardwood,
/area/station/command/heads_quarters/hos)
"cLP" = (
@@ -7197,6 +7203,7 @@
/obj/structure/disposalpipe/trunk/multiz/down{
dir = 1
},
+/obj/machinery/light/directional/west,
/turf/open/floor/deadspace/mono,
/area/station/security/brig)
"dFW" = (
@@ -7432,7 +7439,7 @@
},
/obj/structure/window/reinforced/spawner/east,
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"dLC" = (
/obj/structure/window/reinforced/spawner/west,
/obj/structure/window/reinforced/spawner/east,
@@ -7583,7 +7590,7 @@
/obj/item/grenade/c4,
/obj/structure/window/reinforced/spawner/west,
/turf/open/floor/deadspace/random/maint_center,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"dOY" = (
/obj/effect/turf_decal/stripes/corner{
dir = 1
@@ -7619,7 +7626,7 @@
"dQI" = (
/obj/structure/overfloor_catwalk/iron_dark,
/turf/open/floor/plating/reinforced,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"dRc" = (
/obj/machinery/power/apc/auto_name/directional/north,
/obj/structure/cable/yellow{
@@ -8030,7 +8037,7 @@
/obj/structure/closet/bombcloset,
/obj/machinery/light/directional/east,
/turf/open/floor/deadspace/random/slides,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"eeL" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -8208,12 +8215,9 @@
/area/station/service/chapel)
"ejR" = (
/obj/machinery/firealarm/directional/east,
-/obj/machinery/disposal/bin,
-/obj/structure/disposalpipe/trunk{
- dir = 8
- },
+/obj/structure/barricade/security,
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"ejT" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/deadspace/random/slides{
@@ -8282,11 +8286,11 @@
},
/area/station/hallway/primary/starboard)
"emn" = (
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
+/obj/item/melee/baton,
+/obj/item/melee/baton,
+/obj/structure/rack,
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"emv" = (
/obj/structure/chair/office{
dir = 8
@@ -8320,6 +8324,7 @@
icon_state = "9"
},
/obj/structure/overfloor_catwalk/iron_dark,
+/turf/open/openspace,
/area/station/service/chapel/funeral)
"enr" = (
/obj/structure/cable/yellow{
@@ -8416,6 +8421,7 @@
/obj/effect/decal/cleanable/blood,
/obj/effect/mob_spawn/corpse/human/miner,
/obj/structure/overfloor_catwalk/iron_dark,
+/turf/open/floor/plating,
/area/aegis/mining)
"epL" = (
/obj/structure/table,
@@ -8521,13 +8527,13 @@
/turf/open/floor/iron/ported/techfloor_grid,
/area/station/engineering/supermatter/room)
"esG" = (
-/obj/machinery/door/airlock/security{
- name = "Morgue";
- req_one_access_txt = "1;4"
- },
/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/highsecurity{
+ req_one_access_txt = "1;3";
+ name = "Morgue / Riot Control"
+ },
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"esI" = (
/obj/machinery/camera/motion/directional/west,
/turf/open/floor/deadspace/random/slides{
@@ -8757,7 +8763,7 @@
"eBj" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"eBI" = (
/obj/machinery/door/firedoor,
/obj/effect/turf_decal/bot{
@@ -10377,6 +10383,7 @@
/obj/effect/spawner/random/vending/snackvend,
/obj/machinery/light/small/directional/east,
/obj/structure/overfloor_catwalk/iron_dark,
+/turf/open/floor/plating,
/area/aegis/mining)
"fto" = (
/obj/effect/turf_decal/box,
@@ -10614,7 +10621,7 @@
dir = 4
},
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"fBO" = (
/obj/effect/turf_decal/box,
/obj/machinery/hydroponics/constructable,
@@ -10834,7 +10841,6 @@
/turf/open/floor/deadspace/bathroom,
/area/mine/production)
"fIr" = (
-/obj/structure/disposalpipe/trunk/multiz,
/obj/structure/cable/multiz,
/obj/machinery/atmospherics/pipe/multiz/scrubbers/hidden/layer2{
dir = 4
@@ -10846,7 +10852,7 @@
icon_state = "4"
},
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"fIs" = (
/turf/open/floor/deadspace/random/slides,
/area/station/cargo/warehouse)
@@ -12100,11 +12106,8 @@
/turf/open/floor/deadspace/random/maint_left,
/area/station/security/courtroom)
"guq" = (
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"guv" = (
/obj/item/storage/toolbox/mechanical,
/turf/open/misc/asteroid,
@@ -12369,6 +12372,7 @@
pixel_x = -11
},
/obj/structure/overfloor_catwalk/iron_dark,
+/turf/open/openspace,
/area/station/service/chapel/funeral)
"gBT" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
@@ -12452,7 +12456,7 @@
icon_state = "3"
},
/turf/open/floor/deadspace/random/slides,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"gCS" = (
/obj/machinery/door/window/left/directional/west{
name = "Inner Pipe Access";
@@ -12537,7 +12541,7 @@
/obj/item/ammo_casing/shotgun/bola,
/obj/item/gun/ballistic/shotgun/scl_shotgun,
/turf/open/floor/deadspace/random/slides,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"gFt" = (
/obj/structure/window/reinforced/spawner/north,
/obj/structure/window/reinforced/spawner/west,
@@ -12828,7 +12832,7 @@
icon_state = "3"
},
/turf/open/floor/deadspace/mono,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"gLP" = (
/obj/effect/turf_decal/trimline/yellow/filled/warning{
dir = 4
@@ -13242,9 +13246,6 @@
/obj/structure/chair/office{
dir = 1
},
-/obj/structure/disposalpipe/trunk/multiz/down{
- dir = 1
- },
/obj/structure/cable/multiz,
/obj/machinery/atmospherics/pipe/multiz/supply/hidden/layer4{
dir = 8
@@ -13319,7 +13320,7 @@
/obj/structure/cable/yellow{
icon_state = "12"
},
-/obj/structure/overfloor_catwalk/iron_dark,
+/turf/open/floor/plating,
/area/station/maintenance/starboard/central)
"gUV" = (
/obj/machinery/door/airlock{
@@ -13682,9 +13683,10 @@
/turf/open/floor/deadspace/hardwood,
/area/station/command/heads_quarters/hop)
"hdo" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/obj/structure/window/reinforced/spawner,
+/obj/structure/closet/emcloset,
+/turf/open/floor/deadspace/mono,
+/area/station/ai_monitored/security/armory)
"hdp" = (
/obj/machinery/door/airlock/glass,
/obj/machinery/door/firedoor,
@@ -13840,13 +13842,15 @@
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/overfloor_catwalk/iron_dark,
+/turf/open/floor/deadspace/random/maint_center,
/area/station/security/checkpoint/customs)
"hhr" = (
/turf/closed/wall,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"hht" = (
+/obj/structure/barricade/security,
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"hhz" = (
/turf/closed/wall/r_wall,
/area/station/engineering/atmos/storage/gas)
@@ -14043,9 +14047,6 @@
/turf/open/floor/iron,
/area/station/maintenance/port/lesser)
"hox" = (
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/deadspace/random/maint_center,
@@ -14246,7 +14247,7 @@
/obj/machinery/airalarm/directional/south,
/obj/structure/overfloor_catwalk/iron_dark,
/turf/open/floor/plating/reinforced,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"htj" = (
/obj/effect/spawner/random/vending/colavend,
/turf/open/floor/deadspace/random/slides,
@@ -14721,9 +14722,6 @@
/turf/open/floor/deadspace/med/med_plating,
/area/station/medical/chemistry)
"hFH" = (
-/obj/structure/disposalpipe/junction/yjunction{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/cable/yellow{
@@ -14736,6 +14734,9 @@
icon_state = "3"
},
/obj/structure/overfloor_catwalk/iron_dark,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
/turf/open/floor/plating,
/area/station/security/brig)
"hFJ" = (
@@ -15383,9 +15384,13 @@
},
/area/station/hallway/primary/fore)
"hXy" = (
-/obj/machinery/vending/security,
+/obj/machinery/camera/autoname/directional/west,
+/obj/structure/rack,
+/obj/item/shield/riot/ds,
+/obj/item/shield/riot/ds,
+/obj/item/shield/riot/ds,
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"hXF" = (
/obj/machinery/light/directional/north,
/turf/open/floor/deadspace/random/golf_brown,
@@ -15727,6 +15732,7 @@
/area/station/command/heads_quarters/hos)
"ijc" = (
/obj/structure/overfloor_catwalk/iron_dark,
+/turf/open/floor/plating,
/area/aegis/mining)
"ijj" = (
/obj/structure/table,
@@ -15770,12 +15776,6 @@
},
/turf/open/floor/plating,
/area/station/maintenance/port/lesser)
-"ike" = (
-/obj/machinery/door/airlock{
- name = "Bathroom"
- },
-/turf/closed/wall,
-/area/station/commons/dorms/barracks/male)
"ikn" = (
/obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible,
/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{
@@ -16935,7 +16935,7 @@
/obj/structure/table/reinforced,
/obj/item/storage/box/firingpins,
/turf/open/floor/deadspace/random/slides_end,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"iMP" = (
/obj/structure/cable/yellow{
icon_state = "3"
@@ -17645,7 +17645,7 @@
dir = 8
},
/turf/open/floor/deadspace/random/slides,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"jfJ" = (
/obj/machinery/light/directional/north,
/turf/open/openspace,
@@ -17921,7 +17921,7 @@
/obj/machinery/conveyor{
id = "Storage Upper"
},
-/obj/structure/overfloor_catwalk/iron_dark,
+/turf/open/openspace,
/area/aegis/surface)
"jnF" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -18210,6 +18210,7 @@
"juq" = (
/obj/structure/reagent_dispensers/watertank,
/obj/structure/overfloor_catwalk/iron_dark,
+/turf/open/floor/deadspace/grater,
/area/aegis/mining)
"juE" = (
/obj/effect/decal/cleanable/generic,
@@ -18953,7 +18954,7 @@
/turf/open/floor/deadspace/random/slides{
dir = 1
},
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"jPM" = (
/obj/machinery/light/floor/has_bulb,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -19538,7 +19539,7 @@
"kgw" = (
/obj/structure/sign/warning,
/turf/closed/wall/r_wall,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"kgA" = (
/obj/structure/window/reinforced/spawner/west,
/obj/structure/flora/rock/pile,
@@ -21843,15 +21844,13 @@
/turf/open/floor/deadspace/random/golf_brown,
/area/station/cargo)
"lnQ" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/cable/yellow{
icon_state = "3"
},
/obj/structure/overfloor_catwalk/iron_dark,
+/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
/area/station/security/brig)
"lnU" = (
@@ -22099,11 +22098,11 @@
/turf/open/floor/carpet/royalblack,
/area/station/cargo/lobby)
"ltY" = (
-/obj/structure/disposalpipe/segment{
- dir = 6
+/obj/machinery/vending/security,
+/turf/open/floor/deadspace/random/slides{
+ dir = 4
},
-/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/security/lockers)
"luf" = (
/obj/structure/table/wood/fancy/green,
/obj/machinery/fax_machine,
@@ -22134,7 +22133,7 @@
dir = 4
},
/turf/open/floor/deadspace/random/maint_center,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"luO" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron/ported/lino,
@@ -22267,6 +22266,7 @@
icon_state = "12"
},
/obj/structure/overfloor_catwalk/iron_dark,
+/turf/open/floor/deadspace/random/maint_center,
/area/station/security/checkpoint/customs)
"lwY" = (
/obj/machinery/power/apc/auto_name/directional/south,
@@ -23067,7 +23067,7 @@
dir = 8
},
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"lTd" = (
/obj/structure/rack,
/obj/effect/spawner/random/maintenance,
@@ -24126,7 +24126,7 @@
"mvd" = (
/obj/machinery/door/airlock/medical{
name = "Morgue";
- req_access_txt = "6"
+ req_access_txt = "4;6"
},
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -24257,7 +24257,7 @@
dir = 1
},
/turf/open/floor/deadspace/mono,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"myz" = (
/obj/effect/decal/cleanable/blood,
/turf/open/floor/deadspace/random/slides{
@@ -24652,9 +24652,6 @@
/turf/open/floor/deadspace/med/med_plating,
/area/station/medical/medbay/aft)
"mFC" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/cable/yellow{
@@ -25167,7 +25164,7 @@
"mUY" = (
/obj/structure/stairs/north,
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"mVh" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -25343,11 +25340,16 @@
},
/area/station/medical/coldroom)
"naH" = (
-/obj/machinery/vending/cigarette,
-/obj/machinery/camera/autoname/directional/west,
/obj/machinery/light/directional/south,
+/obj/structure/rack,
+/obj/item/clothing/suit/armor/riot,
+/obj/item/clothing/suit/armor/riot,
+/obj/item/clothing/suit/armor/riot,
+/obj/item/clothing/head/helmet/riot,
+/obj/item/clothing/head/helmet/riot,
+/obj/item/clothing/head/helmet/riot,
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"naS" = (
/obj/structure/table,
/obj/effect/spawner/random/engineering/tool,
@@ -25801,7 +25803,7 @@
icon_state = "3"
},
/turf/open/floor/deadspace/mono,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"nmx" = (
/obj/structure/railing{
dir = 1
@@ -26270,11 +26272,12 @@
"nCB" = (
/obj/effect/decal/cleanable/blood,
/obj/structure/overfloor_catwalk/iron_dark,
+/turf/open/floor/plating,
/area/aegis/mining)
"nCH" = (
-/obj/structure/closet/firecloset,
+/obj/structure/closet/secure_closet/lethalshots,
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"nCL" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -26481,6 +26484,7 @@
icon_state = "2"
},
/obj/structure/overfloor_catwalk/iron_dark,
+/turf/open/floor/deadspace/random/maint_center,
/area/station/security/checkpoint/customs)
"nHr" = (
/turf/open/floor/deadspace/random/slides{
@@ -26517,7 +26521,9 @@
"nHS" = (
/obj/machinery/light/directional/south,
/obj/machinery/camera/autoname/directional/south,
-/turf/open/floor/deadspace/mono,
+/turf/open/floor/deadspace/random/slides{
+ dir = 4
+ },
/area/station/security/brig)
"nHW" = (
/obj/machinery/computer/mechpad{
@@ -27444,6 +27450,10 @@
/area/station/science/lab)
"ogu" = (
/obj/structure/disposalpipe/segment,
+/obj/machinery/door/airlock/highsecurity{
+ req_one_access_txt = "1;3";
+ name = "Morgue / Riot Control"
+ },
/turf/open/floor/deadspace/mono,
/area/station/security/brig)
"ogx" = (
@@ -27709,7 +27719,10 @@
/turf/open/floor/iron/dark,
/area/station/science/genetics)
"olE" = (
-/turf/open/floor/deadspace/mono,
+/obj/machinery/vending/cigarette,
+/turf/open/floor/deadspace/random/slides{
+ dir = 4
+ },
/area/station/security/brig)
"olQ" = (
/obj/machinery/firealarm/directional/north,
@@ -28655,14 +28668,14 @@
/area/station/service/chapel)
"oIt" = (
/obj/effect/decal/cleanable/dirt,
-/obj/structure/disposalpipe/junction/flip{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable/yellow{
icon_state = "5"
},
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
/turf/open/floor/deadspace/random/maint_center,
/area/station/security/brig)
"oIw" = (
@@ -29299,7 +29312,7 @@
/turf/open/floor/deadspace/random/slides{
dir = 1
},
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"oZk" = (
/obj/structure/fluff/empty_sleeper,
/obj/machinery/light/small/directional/north,
@@ -29531,7 +29544,7 @@
/obj/structure/rack/shelf,
/obj/item/mod/control/pre_equipped/ds/pcsi,
/turf/open/floor/deadspace/random/slides,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"pdV" = (
/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/machinery/light_switch/directional/north,
@@ -29677,13 +29690,11 @@
/turf/open/floor/deadspace/random/rectangles,
/area/station/engineering/break_room)
"phv" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/light/directional/north,
+/obj/structure/barricade/security,
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"phz" = (
/obj/machinery/power/apc/auto_name/directional/east,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -30420,7 +30431,7 @@
icon_state = "12"
},
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"pzP" = (
/obj/machinery/door/window{
dir = 4
@@ -30453,7 +30464,7 @@
/area/station/maintenance/port/lesser)
"pAQ" = (
/turf/closed/wall/r_wall,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"pAV" = (
/obj/structure/frame/computer,
/obj/effect/turf_decal/box,
@@ -30494,7 +30505,7 @@
/area/station/tcommsat/server)
"pBD" = (
/turf/open/floor/deadspace/random/maint_center,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"pBH" = (
/turf/closed/wall/r_wall,
/area/station/medical/psychology)
@@ -30939,7 +30950,7 @@
},
/obj/structure/overfloor_catwalk/iron_dark,
/turf/open/floor/plating/reinforced,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"pNc" = (
/obj/machinery/air_sensor/plasma_tank,
/obj/machinery/camera/directional/east{
@@ -31992,12 +32003,6 @@
},
/turf/open/floor/deadspace/random/golf_brown,
/area/station/cargo/sorting)
-"qqh" = (
-/obj/machinery/conveyor{
- id = "Storage Upper"
- },
-/turf/open/floor/plating,
-/area/aegis/surface)
"qqt" = (
/obj/structure/closet/firecloset,
/obj/effect/turf_decal/bot,
@@ -32208,8 +32213,9 @@
/area/station/command/heads_quarters/cmo)
"qvC" = (
/obj/machinery/light/directional/east,
+/obj/structure/barricade/security,
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"qvK" = (
/obj/item/camera,
/obj/structure/table,
@@ -32317,7 +32323,7 @@
},
/obj/structure/overfloor_catwalk/iron_dark,
/turf/open/floor/plating/reinforced,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"qym" = (
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plating,
@@ -32493,7 +32499,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/structure/overfloor_catwalk/iron_dark,
/turf/open/floor/plating/reinforced,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"qCI" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -32701,7 +32707,7 @@
/area/station/security/courtroom)
"qIC" = (
/turf/open/floor/deadspace/random/slides,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"qII" = (
/obj/structure/chair{
dir = 4
@@ -32871,7 +32877,7 @@
icon_state = "3"
},
/turf/open/floor/deadspace/random/maint_center,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"qMr" = (
/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible,
/obj/machinery/atmospherics/components/binary/pump/on{
@@ -33943,7 +33949,7 @@
icon_state = "8"
},
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"rwv" = (
/obj/machinery/power/emitter/welded{
dir = 8
@@ -35085,6 +35091,7 @@
"rZt" = (
/obj/structure/reagent_dispensers/fueltank,
/obj/structure/overfloor_catwalk/iron_dark,
+/turf/open/floor/deadspace/grater,
/area/aegis/mining)
"rZF" = (
/obj/machinery/light/small/directional/north,
@@ -36909,6 +36916,22 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/deadspace/random/rectangles,
/area/station/engineering/atmos)
+"sVV" = (
+/obj/structure/rack,
+/obj/item/clothing/suit/armor/swat,
+/obj/item/clothing/suit/armor/swat,
+/obj/item/clothing/suit/armor/swat,
+/obj/item/clothing/shoes/combat/swat,
+/obj/item/clothing/shoes/combat/swat,
+/obj/item/clothing/shoes/combat/swat,
+/obj/item/clothing/mask/gas/sechailer/swat,
+/obj/item/clothing/mask/gas/sechailer/swat,
+/obj/item/clothing/mask/gas/sechailer/swat,
+/obj/item/clothing/head/helmet/swat,
+/obj/item/clothing/head/helmet/swat,
+/obj/item/clothing/head/helmet/swat,
+/turf/open/floor/iron/dark,
+/area/station/ai_monitored/security/armory)
"sVZ" = (
/obj/machinery/light/floor/has_bulb,
/turf/open/floor/deadspace/cable,
@@ -38104,7 +38127,7 @@
/turf/open/floor/deadspace/random/slides{
dir = 1
},
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"tDH" = (
/obj/effect/turf_decal/stripes/corner{
dir = 1
@@ -38134,16 +38157,13 @@
/turf/open/floor/iron/showroomfloor,
/area/station/commons/dorms/laundry)
"tFb" = (
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable/yellow{
icon_state = "9"
},
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"tFf" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable/yellow{
@@ -38151,7 +38171,7 @@
},
/obj/structure/overfloor_catwalk/iron_dark,
/turf/open/floor/plating/reinforced,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"tFo" = (
/obj/item/clothing/head/collectable/hardhat,
/obj/structure/table,
@@ -38410,10 +38430,14 @@
/turf/open/floor/plating,
/area/station/hallway/secondary/exit)
"tMZ" = (
-/obj/structure/closet/emcloset,
/obj/machinery/light/directional/south,
+/obj/structure/rack,
+/obj/item/clothing/head/helmet/marine/security,
+/obj/item/clothing/head/helmet/marine/security,
+/obj/item/clothing/suit/armor/vest/marine/security,
+/obj/item/clothing/suit/armor/vest/marine/security,
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"tNb" = (
/turf/open/floor/deadspace/med/med_plating,
/area/station/medical/pharmacy)
@@ -38502,6 +38526,7 @@
icon_state = "6"
},
/obj/structure/overfloor_catwalk/iron_dark,
+/turf/open/openspace,
/area/station/service/chapel/funeral)
"tPR" = (
/obj/item/clothing/suit/xenos,
@@ -38624,7 +38649,7 @@
icon_state = "12"
},
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"tTB" = (
/obj/structure/cable/yellow{
icon_state = "3"
@@ -38725,7 +38750,7 @@
"tWx" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"tWy" = (
/obj/effect/landmark/event_spawn,
/turf/open/floor/deadspace/random/slides{
@@ -39026,7 +39051,7 @@
icon_state = "3"
},
/turf/open/floor/deadspace/random/maint_center,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"ueJ" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/deadspace/random/tech{
@@ -39224,7 +39249,7 @@
/obj/structure/window/reinforced/spawner/west,
/obj/structure/overfloor_catwalk/iron_dark,
/turf/open/floor/plating/reinforced,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"ukm" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable/yellow{
@@ -39493,6 +39518,7 @@
/area/station/science/robotics/lab)
"urL" = (
/obj/structure/closet/secure_closet/ds/captains,
+/obj/item/shield/riot/ds/advanced,
/turf/open/floor/deadspace/hardwood,
/area/station/command/heads_quarters/captain/private)
"urV" = (
@@ -40157,7 +40183,7 @@
"uKI" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/deadspace/random/slides,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"uKR" = (
/obj/structure/sign/cec/deck/medical{
pixel_y = -32
@@ -40581,24 +40607,15 @@
"uWK" = (
/obj/structure/rack,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/item/shield/riot{
- pixel_x = 3;
- pixel_y = -3
- },
-/obj/item/shield/riot{
- pixel_x = 3;
- pixel_y = -3
- },
-/obj/item/shield/riot{
- pixel_x = 3;
- pixel_y = -3
- },
/obj/structure/window/reinforced/spawner/east,
/obj/structure/cable/yellow{
icon_state = "3"
},
+/obj/item/shield/riot/ds/advanced,
+/obj/item/shield/riot/ds/advanced,
+/obj/item/shield/riot/ds/advanced,
/turf/open/floor/deadspace/random/maint_center,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"uWL" = (
/obj/structure/chair/office{
dir = 8
@@ -40722,7 +40739,7 @@
},
/obj/structure/window/reinforced/spawner/west,
/turf/open/floor/deadspace/random/maint_center,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"uZE" = (
/obj/machinery/vending/drugs,
/obj/machinery/airalarm/directional/north,
@@ -40793,7 +40810,7 @@
/obj/item/ammo_box/magazine/divet,
/obj/structure/window/reinforced/spawner/west,
/turf/open/floor/deadspace/random/maint_center,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"vci" = (
/obj/machinery/air_sensor/air_tank,
/obj/machinery/camera/directional/east{
@@ -40961,6 +40978,7 @@
/obj/item/reagent_containers/spray/cleaner,
/obj/item/reagent_containers/spray/cleaner,
/obj/structure/overfloor_catwalk/iron_dark,
+/turf/open/openspace,
/area/station/service/chapel/funeral)
"vfU" = (
/obj/structure/chair/stool/bar/directional/north,
@@ -41762,7 +41780,7 @@
"vyl" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/deadspace/random/maint_center,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"vyu" = (
/obj/structure/table/reinforced/rglass,
/obj/effect/floor_decal/ds/spline/fancy/wood/cee,
@@ -43983,7 +44001,7 @@
icon_state = "12"
},
/turf/open/floor/iron/dark,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"wFP" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -44040,7 +44058,7 @@
/obj/item/ammo_box/magazine/divet/ap,
/obj/structure/window/reinforced/spawner/west,
/turf/open/floor/deadspace/random/maint_center,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"wGL" = (
/obj/machinery/status_display/evac/directional/east,
/obj/effect/turf_decal/tile/neutral{
@@ -44293,11 +44311,10 @@
/turf/open/floor/deadspace/random/rectangles,
/area/station/engineering/main)
"wOs" = (
-/obj/structure/lattice,
/obj/machinery/conveyor{
id = "Storage Upper"
},
-/turf/open/floor/plating,
+/turf/open/misc/asteroid,
/area/aegis/surface)
"wOy" = (
/obj/structure/table,
@@ -45531,11 +45548,10 @@
/turf/open/floor/iron/white,
/area/station/science/research)
"xtC" = (
-/obj/structure/table/reinforced,
/obj/structure/window/reinforced/spawner,
-/obj/item/storage/box/evidence,
+/obj/structure/closet/firecloset,
/turf/open/floor/deadspace/mono,
-/area/station/security/checkpoint/medical)
+/area/station/ai_monitored/security/armory)
"xua" = (
/turf/closed/wall,
/area/station/engineering/atmos/storage/gas)
@@ -45946,7 +45962,7 @@
/obj/item/mod/control/pre_equipped/ds/pcsi,
/obj/machinery/light/directional/east,
/turf/open/floor/deadspace/random/slides,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"xEO" = (
/obj/effect/turf_decal/tile/neutral/opposingcorners,
/obj/structure/cable/yellow{
@@ -46509,7 +46525,7 @@
icon_state = "3"
},
/turf/open/floor/deadspace/random/maint_center,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"xQo" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -46634,7 +46650,7 @@
/obj/item/pen,
/obj/machinery/door/firedoor,
/turf/open/floor/deadspace/mono,
-/area/station/ai_monitored/security/armory)
+/area/station/ai_monitored/security/armory/upper)
"xTo" = (
/obj/machinery/light/small/directional/west,
/turf/open/floor/deadspace/random/rectangles,
@@ -46801,6 +46817,7 @@
icon_state = "2"
},
/obj/structure/overfloor_catwalk/iron_dark,
+/turf/open/openspace,
/area/station/service/chapel/funeral)
"xXl" = (
/obj/machinery/door/window/left/directional/west{
@@ -55570,10 +55587,10 @@ dBD
dBD
hhr
mUY
-hht
-hht
+guq
+guq
fIr
-emn
+guq
hXy
hhr
dBD
@@ -55886,9 +55903,9 @@ hhr
pzK
eBj
xtC
-bYn
-hht
-hXy
+tWx
+guq
+amr
hhr
dBD
dBD
@@ -56041,11 +56058,11 @@ dBD
dBD
hhr
wFM
-hht
-baO
-bYn
-hht
-hhr
+guq
+hdo
+tWx
+guq
+bVx
hhr
dBD
dBD
@@ -56201,7 +56218,8 @@ tTy
fBM
baO
bLm
-hht
+guq
+emn
hhr
dBD
dBD
@@ -56211,7 +56229,6 @@ dBD
dBD
dBD
dBD
-dBD
jyZ
jyZ
"}
@@ -56357,8 +56374,9 @@ hhr
rwm
dLt
hhr
-bYn
-hht
+tWx
+guq
+sVV
hhr
dBD
dBD
@@ -56368,7 +56386,6 @@ dBD
dBD
dBD
dBD
-dBD
jyZ
jyZ
"}
@@ -56511,12 +56528,12 @@ dBD
dBD
dBD
hhr
-ltY
-hdo
-hdo
-bVx
hht
-hhr
+hht
+hht
+tWx
+guq
+bYn
hhr
dBD
dBD
@@ -56672,7 +56689,7 @@ phv
tWx
tWx
tWx
-hht
+guq
tMZ
hhr
dBD
@@ -56829,7 +56846,7 @@ ejR
lTa
qvC
hht
-hht
+guq
nCH
hhr
dBD
@@ -75286,7 +75303,7 @@ pnM
dBD
dBD
dBD
-dBD
+qjS
dBD
dBD
dBD
@@ -75608,7 +75625,7 @@ dBD
dBD
dBD
dBD
-kCR
+qjS
kCR
kCR
kCR
@@ -75930,7 +75947,7 @@ kCR
kCR
kCR
kCR
-kCR
+qjS
kCR
kCR
kCR
@@ -77186,7 +77203,7 @@ kCR
kCR
kCR
kCR
-kCR
+qjS
kCR
kCR
kCR
@@ -80518,9 +80535,9 @@ rMR
mzN
eMD
bJB
-cvV
-cvV
-cvV
+mzN
+mzN
+mzN
dfq
dBD
dBD
@@ -81581,7 +81598,7 @@ tBi
eHz
gqY
rQa
-ike
+rBy
uWf
mkC
uWf
@@ -82209,7 +82226,7 @@ uJn
eHz
rxH
nEa
-bBw
+cUY
piu
rSh
piu
@@ -84458,7 +84475,7 @@ sXb
kLn
twY
iJW
-sha
+ltY
kKR
dBD
dBD
@@ -85074,7 +85091,7 @@ bcd
dil
dil
wnZ
-dIM
+foa
dil
dil
dil
@@ -85086,7 +85103,7 @@ dIM
dil
dil
sCe
-ais
+olE
oXR
dBD
dBD
@@ -85231,7 +85248,7 @@ pwj
gmj
mSR
roz
-dIM
+foa
bHM
oXR
oXR
@@ -85545,7 +85562,7 @@ ses
tHx
vVj
roz
-dIM
+foa
uFS
sys
onQ
@@ -85702,7 +85719,7 @@ rGz
rGz
kmP
roz
-dIM
+foa
tLj
oXR
oXR
@@ -86810,14 +86827,14 @@ xCP
oXR
roz
dIM
-ais
nHS
oXR
oXR
oXR
oXR
+oXR
aig
-amr
+hdA
oJH
bgy
bgy
@@ -87125,7 +87142,7 @@ oXR
aqZ
dIM
ais
-olE
+oXR
oXR
oXR
oXR
@@ -106076,7 +106093,7 @@ kCR
kCR
dBD
dBD
-xNw
+dBD
dBD
dBD
dBD
@@ -106232,8 +106249,8 @@ kCR
kCR
xNw
xNw
-xNw
-xNw
+dBD
+dBD
dBD
dBD
dBD
@@ -107962,7 +107979,7 @@ jnE
jnE
jnE
wOs
-qqh
+wOs
nFQ
dNu
dNu
diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm
index d9fdf63a1d2..3a03cde9725 100644
--- a/code/_onclick/hud/alert.dm
+++ b/code/_onclick/hud/alert.dm
@@ -567,6 +567,83 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
final.Turn(difference)
animate(src, transform = final, time = 5, loop = 0)
+/atom/movable/screen/alert/necrosense
+ name = "Necro Sense"
+ desc = "Allows you to find those who are not whole."
+ icon_state = "cult_sense" //TODO : get our own sprites
+ alerttooltipstyle = "cult"
+ var/angle = 0
+ var/mob/living/carbon/human/necromorph/Cviewer = null
+
+/atom/movable/screen/alert/necrosense/Initialize(mapload)
+ . = ..()
+ START_PROCESSING(SSprocessing, src)
+
+/atom/movable/screen/alert/necrosense/Destroy()
+ Cviewer = null
+ STOP_PROCESSING(SSprocessing, src)
+ return ..()
+
+/atom/movable/screen/alert/necrosense/process()
+ var/mob/living/carbon/human/necromorph/sensor = owner
+ var/mob/target = sensor.sense_target
+
+ if(!sensor.mind)
+ return
+ if(!sensor.sense_target)
+ return
+ if(target.stat == DEAD)
+ to_chat(sensor, "Your target has died.")
+ sensor.searching = FALSE
+ sensor.sense_target = null
+ sensor.clear_alert("necrosense")
+
+ var/turf/P = get_turf(target)
+ var/turf/Q = get_turf(sensor)
+ if(!P || !Q || (P.z != Q.z)) //The target is on a different Z level, we cannot sense that far.
+ icon_state = "runed_sense2"
+ desc = "You can no longer sense your target's presence."
+ sensor.searching = FALSE
+ sensor.sense_target = null
+ return
+ if(isliving(target))
+ var/mob/living/real_target = target
+ desc = "You are currently tracking [real_target.real_name] in [get_area_name(target)]."
+ else
+ desc = "You are currently tracking [target] in [get_area_name(target)]."
+ var/target_angle = get_angle(Q, P)
+ var/target_dist = get_dist(P, Q)
+ cut_overlays()
+ switch(target_dist)
+ if(0 to 1)
+ icon_state = "runed_sense2"
+ if(2 to 8)
+ icon_state = "arrow8"
+ if(9 to 15)
+ icon_state = "arrow7"
+ if(16 to 22)
+ icon_state = "arrow6"
+ if(23 to 29)
+ icon_state = "arrow5"
+ if(30 to 36)
+ icon_state = "arrow4"
+ if(37 to 43)
+ icon_state = "arrow3"
+ if(44 to 50)
+ icon_state = "arrow2"
+ if(51 to 57)
+ icon_state = "arrow1"
+ if(58 to 64)
+ icon_state = "arrow0"
+ if(65 to 400)
+ icon_state = "arrow"
+ var/difference = target_angle - angle
+ angle = target_angle
+ if(!difference)
+ return
+ var/matrix/final = matrix(transform)
+ final.Turn(difference)
+ animate(src, transform = final, time = 5, loop = 0)
//GUARDIANS
diff --git a/code/datums/components/caltrop.dm b/code/datums/components/caltrop.dm
index bf736b99b4a..bbd0dc4ad36 100644
--- a/code/datums/components/caltrop.dm
+++ b/code/datums/components/caltrop.dm
@@ -91,7 +91,7 @@
if(!istype(O))
return
- if(O.bodypart_flags & BP_NO_PAIN)
+ if(O.bodytype & BODYTYPE_ROBOTIC)
return
if (!(flags & CALTROP_BYPASS_SHOES))
diff --git a/code/datums/storage/storage.dm b/code/datums/storage/storage.dm
index 45cb8b072f2..e221763cea2 100644
--- a/code/datums/storage/storage.dm
+++ b/code/datums/storage/storage.dm
@@ -723,6 +723,9 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches)
if(ismob(over_object))
if(over_object != user)
return
+ //If we don't check for necros they can get guns through backpack inventories
+ if(isnecromorph(over_object))
+ return
INVOKE_ASYNC(src, PROC_REF(open_storage), user)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
index 07a261fd7d0..4bdb2304800 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
@@ -31,13 +31,14 @@
new /obj/item/clothing/mask/muzzle/breath(src)
/obj/structure/closet/secure_closet/medical3
- name = "'s locker"
+ name = "medical locker"
req_access = list(ACCESS_SURGERY)
icon_state = "med_secure"
/obj/structure/closet/secure_closet/medical3/PopulateContents()
..()
new /obj/item/radio/headset/headset_med(src)
+ new /obj/item/healthanalyzer(src)
new /obj/item/defibrillator/loaded(src)
new /obj/item/clothing/gloves/color/latex/nitrile(src)
new /obj/item/storage/belt/medical(src)
diff --git a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm
index b32a3be15c2..b4b54f4f14e 100644
--- a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm
+++ b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm
@@ -16,7 +16,6 @@
var/volume = 0
///Used to track if anything of note has happen while running process_atmos()
var/excited = TRUE
- biomass_produce = BIOMASS_HARVEST_SMALL
/obj/machinery/portable_atmospherics/Initialize(mapload)
. = ..()
diff --git a/code/modules/atmospherics/machinery/portable/scrubber.dm b/code/modules/atmospherics/machinery/portable/scrubber.dm
index d01553d9605..3e0b8627a2c 100644
--- a/code/modules/atmospherics/machinery/portable/scrubber.dm
+++ b/code/modules/atmospherics/machinery/portable/scrubber.dm
@@ -163,7 +163,6 @@
var/movable = FALSE
use_overlays = FALSE
- biomass_produce = BIOMASS_HARVEST_MEDIUM
/obj/machinery/portable_atmospherics/scrubber/huge/movable
movable = TRUE
diff --git a/code/modules/client/preferences/loadout/loadout_item/neck.dm b/code/modules/client/preferences/loadout/loadout_item/neck.dm
index 9ddf38a1b35..aed08da6108 100644
--- a/code/modules/client/preferences/loadout/loadout_item/neck.dm
+++ b/code/modules/client/preferences/loadout/loadout_item/neck.dm
@@ -80,4 +80,4 @@
path = /obj/item/clothing/neck/tie/horrible
/datum/loadout_item/neck/link_scryer
- path = /obj/item/clothing/neck/link_scryer
+ path = /obj/item/clothing/neck/link_scryer/loaded
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index f24e36f852a..1c9ca38643f 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -223,6 +223,9 @@ Works together with spawning an observer, noted above.
if(!ghost.client?.prefs || ghost.client.prefs.read_preference(/datum/preference/toggle/monochrome_ghost))
ghost.add_client_colour(/datum/client_colour/ghostmono)
+ if(ismarkereye(usr)) //So signals don't float around if someone ghosts insteads of leaving horde
+ qdel(src)
+
return ghost
/mob/living/ghostize(can_reenter_corpse = TRUE, admin_ghost)
diff --git a/code/modules/mob/living/simple_animal/hostile/regalrat.dm b/code/modules/mob/living/simple_animal/hostile/regalrat.dm
index c9171699197..797619ee2c3 100644
--- a/code/modules/mob/living/simple_animal/hostile/regalrat.dm
+++ b/code/modules/mob/living/simple_animal/hostile/regalrat.dm
@@ -309,10 +309,6 @@
/mob/living/simple_animal/hostile/rat/death(gibbed, cause_of_death = "Unknown")
if(!ckey)
..(TRUE)
- if(!gibbed)
- var/obj/item/food/deadmouse/mouse = new(loc)
- mouse.icon_state = icon_dead
- mouse.name = name
SSmobs.cheeserats -= src // remove rats on death
return ..()
diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
index 67983f2eca6..62e22e951bd 100644
--- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
@@ -91,7 +91,7 @@
taste_description = "bitterness"
reagent_state = LIQUID
color = "#00bfff"
- overdose_threshold = 60
+ overdose_threshold = 45
metabolization_rate = 0.1
value = 3.5
@@ -107,7 +107,8 @@
/datum/reagent/medicine/inaprovaline/affect_blood(mob/living/carbon/C, removed)
APPLY_CHEM_EFFECT(C, CE_STABLE, 1)
- APPLY_CHEM_EFFECT(C, CE_PAINKILLER, 30)
+ APPLY_CHEM_EFFECT(C, CE_PAINKILLER, 40)
+ C.adjustBruteLoss(-2 * removed, updating_health = FALSE) //This is effectively 0.2 heal due to metab
/datum/reagent/medicine/inaprovaline/overdose_start(mob/living/carbon/C)
C.add_movespeed_modifier(/datum/movespeed_modifier/inaprovaline)
@@ -119,8 +120,8 @@
. = ..()
if(prob(5))
C.set_slurring_if_lower(10 SECONDS)
- if(prob(2))
- C.drowsyness = max(C.drowsyness, 5)
+ C.adjustOrganLoss(ORGAN_SLOT_EYES, 0.2, updating_health = FALSE)
+ APPLY_CHEM_EFFECT(C, CE_PAINKILLER, 80) //Im invincible! ...Why do I feel funny?
/datum/reagent/medicine/bicaridine
name = "Bicaridine"
diff --git a/code/modules/reagents/chemistry/recipes/gateway.dm b/code/modules/reagents/chemistry/recipes/gateway.dm
index 139d619d3c1..cb43d1f6147 100644
--- a/code/modules/reagents/chemistry/recipes/gateway.dm
+++ b/code/modules/reagents/chemistry/recipes/gateway.dm
@@ -1,8 +1,4 @@
// Reagents whose primary purpose is to be upgraded to another reagent.
-/datum/chemical_reaction/acetone
- results = list(/datum/reagent/acetone = 3)
- required_reagents = list(/datum/reagent/fuel/oil = 1, /datum/reagent/fuel = 1, /datum/reagent/oxygen = 1)
-
/datum/chemical_reaction/oil
results = list(/datum/reagent/fuel/oil = 3)
required_reagents = list(/datum/reagent/fuel = 1, /datum/reagent/hydrogen = 1, /datum/reagent/carbon = 1)
diff --git a/code/modules/reagents/chemistry/recipes/medicine.dm b/code/modules/reagents/chemistry/recipes/medicine.dm
index c45a24c52ee..bc0ee2a50fa 100644
--- a/code/modules/reagents/chemistry/recipes/medicine.dm
+++ b/code/modules/reagents/chemistry/recipes/medicine.dm
@@ -1,7 +1,7 @@
/datum/chemical_reaction/inaprovaline
results = list(/datum/reagent/medicine/inaprovaline = 3)
- required_reagents = list(/datum/reagent/acetone = 1, /datum/reagent/carbon = 1, /datum/reagent/consumable/sugar = 1, /datum/reagent/phenol = 1)
+ required_reagents = list(/datum/reagent/acetone = 1, /datum/reagent/carbon = 1, /datum/reagent/medicine/morphine = 1)
/datum/chemical_reaction/dylovene
results = list(/datum/reagent/medicine/dylovene = 3)
@@ -100,7 +100,7 @@
/datum/chemical_reaction/morphine
results = list(/datum/reagent/medicine/morphine = 2)
- required_reagents = list(/datum/reagent/carbon = 2, /datum/reagent/hydrogen = 2, /datum/reagent/consumable/ethanol = 1, /datum/reagent/oxygen = 1)
+ required_reagents = list(/datum/reagent/carbon = 2, /datum/reagent/nitrogen = 2, /datum/reagent/consumable/ethanol = 1, /datum/reagent/oxygen = 1)
required_temp = 480
/datum/chemical_reaction/imidazoline
diff --git a/code/modules/slapcrafting/recipes/components/metal_shaping.dm b/code/modules/slapcrafting/recipes/components/metal_shaping.dm
index d120daedf5c..35452f227ed 100644
--- a/code/modules/slapcrafting/recipes/components/metal_shaping.dm
+++ b/code/modules/slapcrafting/recipes/components/metal_shaping.dm
@@ -12,7 +12,7 @@
/datum/slapcraft_recipe/metal_ball
- name = "metal pipe"
+ name = "metal ball"
examine_hint = "You could form this into a ball, starting by heating it with a welder..."
category = SLAP_CAT_COMPONENTS
can_disassemble = FALSE
diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm
index 03c6a35c206..454b43202c4 100644
--- a/code/modules/surgery/bodyparts/_bodyparts.dm
+++ b/code/modules/surgery/bodyparts/_bodyparts.dm
@@ -1100,10 +1100,10 @@
/obj/item/bodypart/proc/get_modified_bleed_rate()
var/bleed_rate = cached_bleed_rate
if(owner.body_position == LYING_DOWN)
- bleed_rate *= 0.60
+ bleed_rate *= 0.5 //laying cuts bloodloss by half
if(HAS_TRAIT(src, TRAIT_BODYPART_GRABBED))
- bleed_rate *= 0.3
+ bleed_rate *= 0.3 //Apply the pressure!
if(bandage)
bleed_rate *= bandage.absorption_rate_modifier
diff --git a/deadspace/code/__DEFINES/colors.dm b/deadspace/code/__DEFINES/colors.dm
index d5ece87929a..5e59031e105 100644
--- a/deadspace/code/__DEFINES/colors.dm
+++ b/deadspace/code/__DEFINES/colors.dm
@@ -7,9 +7,6 @@
#define COLOR_BLOOD_HUMAN "#a10808"
#define COLOR_BLOOD_NECRO "#583001"
-#define COLOR_NECRO_YELLOW "#ffff00"
-#define COLOR_NECRO_DARK_YELLOW "#aaaa00"
-#define COLOR_MARKER_RED "#ff4444"
#define COLOR_HARVESTER_RED rgb(255, 68, 68, 128)
#define COLOR_BIOMASS_GREEN "#82bf26"
#define COLOR_BIOLUMINESCENT_ORANGE "#ffb347"
diff --git a/deadspace/code/__DEFINES/layers.dm b/deadspace/code/__DEFINES/layers.dm
index 07892d7d439..49849e18d5d 100644
--- a/deadspace/code/__DEFINES/layers.dm
+++ b/deadspace/code/__DEFINES/layers.dm
@@ -1,6 +1,6 @@
-#define MARKER_SIGNAL_PLANE 250
+#define MARKER_SIGNAL_PLANE 505
-#define OBSCURITY_PLANE 210
+#define OBSCURITY_PLANE 503
-#define OBSCURITY_MASKING_PLANE 215
+#define OBSCURITY_MASKING_PLANE 504
#define OBSCURITY_MASKING_RENDER_TARGET "*OBSCURITY_MASKING_RENDER_TARGET"
diff --git a/deadspace/code/biomass/source_types.dm b/deadspace/code/biomass/source_types.dm
index 592db389fe8..97fcd7fd72e 100644
--- a/deadspace/code/biomass/source_types.dm
+++ b/deadspace/code/biomass/source_types.dm
@@ -1,6 +1,6 @@
/datum/biomass_source/baseline
remaining_mass = INFINITY //Never runs out
- mass_per_tick = 0.5
+ mass_per_tick = 0.3
/// It's not supposed to ever deplet
/datum/biomass_source/baseline/absorb_biomass(delta_time)
diff --git a/deadspace/code/corruption/corruption.dm b/deadspace/code/corruption/corruption.dm
index 924fc76912d..36008a67ea7 100644
--- a/deadspace/code/corruption/corruption.dm
+++ b/deadspace/code/corruption/corruption.dm
@@ -207,7 +207,7 @@
/obj/structure/corruption/proc/on_nearby_turf_change(turf/source, path, list/new_baseturfs, flags, list/post_change_callbacks)
if(isopenspaceturf(source))
- if(ispath(/turf/open/openspace))
+ if(ispath(path, /turf/open/openspace) || ispath(path, /turf/open/space/openspace))
return
UnregisterSignal(GetBelow(source), list(COMSIG_TURF_CHANGE, COMSIG_TURF_NECRO_CORRUPTED, COMSIG_TURF_NECRO_UNCORRUPTED))
@@ -220,7 +220,7 @@
else
dirs_to_spread &= ~get_dir(loc, source)
UnregisterSignal(source, list(COMSIG_TURF_NECRO_CORRUPTED, COMSIG_TURF_NECRO_UNCORRUPTED))
- if(ispath(/turf/open/openspace))
+ if(ispath(path, /turf/open/openspace) || ispath(path, /turf/open/space/openspace))
register_turf(GetBelow(source), get_dir(loc, source))
update_spread_state()
@@ -228,10 +228,14 @@
/obj/structure/corruption/proc/on_nearby_turf_corrupted(turf/source)
dirs_to_spread &= ~get_dir(loc, source)
update_spread_state()
+ UnregisterSignal(source, COMSIG_TURF_NECRO_CORRUPTED)
+ RegisterSignal(source, COMSIG_TURF_NECRO_UNCORRUPTED, PROC_REF(on_nearby_turf_uncorrupted))
/obj/structure/corruption/proc/on_nearby_turf_uncorrupted(turf/source)
dirs_to_spread |= get_dir(loc, source)
update_spread_state()
+ UnregisterSignal(source, COMSIG_TURF_NECRO_UNCORRUPTED)
+ RegisterSignal(source, COMSIG_TURF_NECRO_CORRUPTED, PROC_REF(on_nearby_turf_corrupted))
/obj/structure/corruption/proc/on_master_delete()
master.corruption -= src
diff --git a/deadspace/code/corruption/structures/cyst.dm b/deadspace/code/corruption/structures/cyst.dm
index 40cc641efb5..33e44a2d18b 100644
--- a/deadspace/code/corruption/structures/cyst.dm
+++ b/deadspace/code/corruption/structures/cyst.dm
@@ -23,7 +23,7 @@
return ..()
/obj/structure/necromorph/cyst/proc/on_entered(atom/source, mob/living/carbon/human/arrived)
- if(!ready || isnecromorph(arrived) || isprojectile(arrived))
+ if(!ready || isnecromorph(arrived) || isprojectile(arrived) || !arrived.stat == CONSCIOUS)
return
var/angle = SIMPLIFY_DEGREES(get_angle(src, arrived) - dir2angle(src.dir))
if(angle > CYST_SHOOT_ANGLE*0.5)
diff --git a/deadspace/code/corruption/structures/harvester.dm b/deadspace/code/corruption/structures/harvester.dm
index 627c525cad9..8b458c29a87 100644
--- a/deadspace/code/corruption/structures/harvester.dm
+++ b/deadspace/code/corruption/structures/harvester.dm
@@ -2,11 +2,13 @@
/obj/structure/necromorph/harvester
name = "harvester"
- icon = 'deadspace/icons/effects/corruption96x96.dmi'
- icon_state = "whole"
+ icon = 'deadspace/icons/effects/harvester_new.dmi'
+ icon_state = "closed"
density = TRUE
- pixel_x = -32
- base_pixel_x = -32
+ pixel_x = -16
+ base_pixel_x = -16
+ pixel_y = -8
+ base_pixel_y = -8
var/active = FALSE
var/biomass_per_tick = 0
var/list/controlled_atoms
@@ -15,13 +17,11 @@
/obj/structure/necromorph/harvester/Initialize(mapload, obj/structure/marker/new_master)
.=..()
- AddComponent(/datum/component/seethrough, SEE_THROUGH_MAP_THREE_X_THREE)
+ AddComponent(/datum/component/seethrough, SEE_THROUGH_MAP_DEFAULT_TWO_TALL)
if(!new_master)
return INITIALIZE_HINT_QDEL
marker = new_master
controlled_atoms = list()
- icon_state = "harvester"
- update_icon(UPDATE_OVERLAYS)
/obj/structure/necromorph/harvester/LateInitialize()
..()
@@ -41,26 +41,9 @@
marker = null
return ..()
-/obj/structure/necromorph/harvester/update_overlays()
- .=..()
- var/static/our_overlays
- if (isnull(our_overlays))
- our_overlays = list(
- mutable_appearance(icon, "tentacle_1"),
- mutable_appearance(icon, "tentacle_2"),
- mutable_appearance(icon, "tentacle_3"),
- mutable_appearance(icon, "tentacle_4"),
- mutable_appearance(icon, "beak"),
- mutable_appearance(icon, "beak_closed"),
- )
- if(active)
- . += our_overlays[1]
- . += our_overlays[2]
- . += our_overlays[3]
- . += our_overlays[4]
- . += our_overlays[5]
- else
- . += our_overlays[6]
+/obj/structure/necromorph/harvester/update_icon_state()
+ icon_state = (active ? "active" : "closed")
+ return ..()
/obj/structure/necromorph/harvester/on_turf_corrupted()
..()
@@ -76,7 +59,11 @@
REMOVE_TRAIT(controlled, TRAIT_PRODUCES_BIOMASS, src)
controlled.remove_filter("harvester_glow")
controlled_atoms.Cut()
- update_icon(UPDATE_OVERLAYS)
+ update_icon_state()
+ light_power = 0
+ light_inner_range = 0
+ light_outer_range = 0
+ update_light()
/obj/structure/necromorph/harvester/proc/activate()
if(active)
@@ -94,7 +81,12 @@
biomass_per_tick += controlled.biomass_produce
FOR_DVIEW_END
our_source = marker.add_biomass_source(/datum/biomass_source/harvester, src)
- update_icon(UPDATE_OVERLAYS)
+ update_icon_state()
+ light_power = 0.5
+ light_inner_range = 2
+ light_outer_range = 5
+ light_color = "#bcb10d"
+ update_light()
/obj/structure/necromorph/harvester/proc/on_controlled_delete(atom/movable/controlled, force)
SIGNAL_HANDLER
diff --git a/deadspace/code/corruption/structures/maw.dm b/deadspace/code/corruption/structures/maw.dm
index ed37c0090e0..ec68195a47c 100644
--- a/deadspace/code/corruption/structures/maw.dm
+++ b/deadspace/code/corruption/structures/maw.dm
@@ -6,7 +6,7 @@
desc = "A disgusting mass of throbbing flesh and gnashing teeth, it looks like something out of a nightmare."
desc_controls = "Drag a body onto the maw to begin biomass consumption. Will grab the living if they step on it."
icon = 'deadspace/icons/effects/corruption.dmi'
- icon_state = "maw"
+ icon_state = "maw_new"
density = FALSE
max_integrity = 30
can_buckle = TRUE
@@ -27,7 +27,7 @@
/obj/structure/necromorph/maw/update_icon_state()
..()
- icon_state = length(buckled_mobs) ? "maw_active" : "maw"
+ icon_state = length(buckled_mobs) ? "maw_new_active" : "maw_new"
///The signal handler that starts the process of grabbing
/obj/structure/necromorph/maw/proc/maw_grabbing(datum/source, atom/movable/AM)
diff --git a/deadspace/code/corruption/structures/nest.dm b/deadspace/code/corruption/structures/nest.dm
index 189264117ac..9d0f0684c26 100644
--- a/deadspace/code/corruption/structures/nest.dm
+++ b/deadspace/code/corruption/structures/nest.dm
@@ -9,6 +9,10 @@
base_pixel_x = -16
pixel_y = -16
base_pixel_y = -16
+ light_power = 0.5
+ light_inner_range = 1
+ light_outer_range = 3
+ light_color = "#bcb10d"
///Type, not a reference
var/datum/necro_class/spawning_necromorph
var/biomass_spent = 0
@@ -69,7 +73,7 @@
to_chat(user, span_notice("Wait [timeleft(timer_id)/(1 SECONDS)] seconds before the nest produces [initial(spawning_necromorph.display_name)]"))
return
if(tgui_alert(user, "Are you sure you want to possess [initial(spawning_necromorph.display_name)]", "Nest", list("Yes", "No")) == "Yes")
- if(QDELING(src) || available_necromorphs == 0)
+ if(QDELING(src) || available_necromorphs <= 0)
return
var/type_to_spawn = initial(spawning_necromorph.necromorph_type_path)
available_necromorphs--
diff --git a/deadspace/code/marker/abilities/scry.dm b/deadspace/code/marker/abilities/scry.dm
index 35c57f7b10b..066ac3f7412 100644
--- a/deadspace/code/marker/abilities/scry.dm
+++ b/deadspace/code/marker/abilities/scry.dm
@@ -20,10 +20,6 @@
/obj/effect/temp_visual/scry
anchored = TRUE
- light_color = "#ffff00"
- light_inner_range = 1
- light_outer_range = 4
- light_power = 1
duration = 1 MINUTES
/obj/effect/temp_visual/scry/Initialize(mapload, datum/markernet/visual_net)
@@ -35,3 +31,17 @@
/obj/effect/temp_visual/scry/can_see_marker()
return RANGE_TURFS(6, src)
+
+/datum/action/cooldown/necro/psy/sense
+ name = "Sense Survivors"
+ desc = "Senses for living survivors and sentient creatures in the world. The Marker automatically does this on activation. Recommend to use if the necromorphs cannot find the last survivors."
+ button_icon_state = "scry"
+ cost = 250
+ cooldown_time = 20 MINUTES //You probably only have to use this ability once in a round, so the cooldown will be big
+ click_through_static = TRUE
+ marker_flags = SIGNAL_ABILITY_POST_ACTIVATION|SIGNAL_ABILITY_MARKER_ONLY
+
+//This just is a roundabout way for the master signal to add to the survivor list mid-round
+/datum/action/cooldown/necro/psy/sense/Activate(atom/target)
+ var/mob/camera/marker_signal/caller = owner
+ caller.marker.sense_survivors()
diff --git a/deadspace/code/marker/marker.dm b/deadspace/code/marker/marker.dm
index 74f85091852..9781adebc78 100644
--- a/deadspace/code/marker/marker.dm
+++ b/deadspace/code/marker/marker.dm
@@ -14,6 +14,7 @@
necro_spawn_atoms += src
AddComponent(AddComponent(/datum/component/seethrough, SEE_THROUGH_MAP_MARKER))
+ soundloop = new(src, FALSE)
START_PROCESSING(SSobj, src)
/obj/structure/marker/Destroy()
@@ -29,7 +30,9 @@
signal.show_message(span_userdanger("You feel like your connection with the Marker breaks!"))
qdel(signal)
marker_signals = null
+ QDEL_LIST(unwhole)
QDEL_NULL(markernet)
+ QDEL_NULL(soundloop)
.=..()
/obj/structure/marker/update_icon_state()
@@ -86,6 +89,11 @@
necromorphs -= necro
necro.marker = null
+/obj/structure/marker/proc/sense_survivors()
+ for(var/mob/living/survivors as anything in GLOB.player_list) //We look for any mob with a client
+ if(survivors.stat != DEAD && !isnecromorph(survivors) && is_station_level(survivors.loc?.z))
+ unwhole |= survivors //Using |= prevents duplicates in the list, but is a little slower
+
/obj/structure/marker/proc/activate()
if(active)
return
@@ -93,6 +101,7 @@
change_marker_biomass(250) //Marker given a biomass injection, enough for a small team and some growing
change_signal_biomass(50) //Signals given biomass injection for general spreading
add_biomass_source(/datum/biomass_source/baseline, src) //Base income for marker
+ sense_survivors() //Checks for survivors for sense
for(var/mob/camera/marker_signal/eye as anything in marker_signals)
for(var/datum/action/cooldown/necro/psy/ability as anything in eye.abilities)
if((ability.marker_flags & SIGNAL_ABILITY_PRE_ACTIVATION))
@@ -106,6 +115,12 @@
ability.Grant(eye)
new /datum/corruption_node/atom/marker(src, src)
update_icon(UPDATE_ICON_STATE)
+ light_power = 1
+ light_inner_range = 2
+ light_outer_range = 10
+ light_color = "#EC3232"
+ update_light()
+ soundloop.start()
/obj/structure/marker/can_see_marker()
return RANGE_TURFS(12, src)
diff --git a/deadspace/code/marker/marker_defines.dm b/deadspace/code/marker/marker_defines.dm
index cca3e92b9b2..366a1c83ef7 100644
--- a/deadspace/code/marker/marker_defines.dm
+++ b/deadspace/code/marker/marker_defines.dm
@@ -14,6 +14,8 @@ GLOBAL_LIST_EMPTY(necromorph_markers)
base_pixel_x = -33
move_resist = MOVE_FORCE_OVERPOWERING
density = TRUE
+ ///The loopingsound for when marker activates
+ var/datum/looping_sound/marker/soundloop
var/active = FALSE
///Whether we should use necroqueue when spawning necromorphs
var/use_necroqueue = TRUE
@@ -22,6 +24,8 @@ GLOBAL_LIST_EMPTY(necromorph_markers)
var/datum/markernet/markernet
var/list/marker_signals = list()
var/list/necromorphs = list()
+ ///checks mobs with clients when marker activates and adds them to a list, used for sense
+ var/list/unwhole = list()
/// Biomass stored
var/marker_biomass = 0
/// Biomass signals can use
@@ -44,3 +48,12 @@ GLOBAL_LIST_EMPTY(necromorph_markers)
var/list/corruption_eyes
/// When was the last time all signals were alerted by an eye
var/last_eye_notify
+
+/datum/looping_sound/marker
+ mid_sounds = 'deadspace/sound/effects/markerthrob.ogg'
+ mid_length = 9.5 SECONDS
+ volume = 50
+ ignore_walls = FALSE
+ extra_range = 20
+ falloff_exponent = 5
+ falloff_distance = 8
diff --git a/deadspace/code/marker/markernet/marker_static.dm b/deadspace/code/marker/markernet/marker_static.dm
index 4a7829a60f1..0ee51099917 100644
--- a/deadspace/code/marker/markernet/marker_static.dm
+++ b/deadspace/code/marker/markernet/marker_static.dm
@@ -23,6 +23,10 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/cameranet_static)
update_o(view)
RegisterSignal(owner.client, COMSIG_VIEW_SET, PROC_REF(on_view_change))
+//The static doesn't need to be used
+/atom/movable/screen/cameranet_static/can_usr_use(mob/user)
+ return FALSE
+
/atom/movable/screen/cameranet_static/proc/on_view_change(datum/source, new_size)
SIGNAL_HANDLER
update_o(new_size)
diff --git a/deadspace/code/modules/weapons/guns/pulse_rifle.dm b/deadspace/code/modules/weapons/guns/pulse_rifle.dm
index 5e2ba97d018..c0c335773eb 100644
--- a/deadspace/code/modules/weapons/guns/pulse_rifle.dm
+++ b/deadspace/code/modules/weapons/guns/pulse_rifle.dm
@@ -228,7 +228,7 @@ Projectiles effects
/obj/effect/projectile/pulse/hv
icon_state = "muzzle_pulse_hv"
light_power = 0.6
- light_color = COLOR_MARKER_RED
+ light_color = "#ff4444"
/obj/effect/projectile/pulse/df
icon_state = "muzzle_pulse_light"
diff --git a/deadspace/code/necromorph/abilities/sense.dm b/deadspace/code/necromorph/abilities/sense.dm
index 6e72ca3485d..ce5e9adfa24 100644
--- a/deadspace/code/necromorph/abilities/sense.dm
+++ b/deadspace/code/necromorph/abilities/sense.dm
@@ -1,67 +1,57 @@
-/datum/action/cooldown/necro/sense
- name = "Sense"
- desc = "Reveals nearby living creatures around you to yourself."
- cooldown_time = 7 SECONDS
- activate_keybind = COMSIG_KB_NECROMORPH_ABILITY_SENSE_DOWN
- var/duration = 5 SECONDS
- var/list/image/trackers = null
-
-/datum/action/cooldown/necro/sense/Destroy()
- if(trackers)
- remove_trackers()
- return ..()
-
-/datum/action/cooldown/necro/sense/Activate(atom/target)
- if(trackers)
- remove_trackers()
-
- var/closest_human = 0
- var/list/can_see = list()
- for(var/mob/living/found as anything in GLOB.mob_living_list)
- if(found.stat == DEAD)
- continue
- if(found.z != owner.z)
- continue
- if(ishuman(found))
- closest_human = min(closest_human, GET_TRUE_DIST(found, owner))
- if(!IN_GIVEN_RANGE(found, owner, 5))
- continue
- //We don't need necromorphs in here
- if(faction_check(owner.faction, found.faction))
- continue
- can_see += found
-
- trackers = list()
- for(var/mob/living/found as anything in can_see)
- var/image/added = image('icons/effects/effects.dmi', get_turf(found), "impact_laser")
- added.alpha = 128
- trackers += added
- owner.client?.images += added
-
- addtimer(CALLBACK(src, PROC_REF(remove_trackers)), duration, TIMER_OVERRIDE|TIMER_UNIQUE)
-
- if(closest_human > 0)
- to_chat(owner, span_notice("There is a living human [closest_human]m away!"))
+/datum/action/innate/sense
+ name = "Sense the Unwhole"
+ desc = "They cannot stop what is coming. Use to sense those who are not Whole."
+ button_icon = 'icons/mob/actions/actions_cult.dmi' //TODO : Get our own sense button sprites
+ background_icon_state = "bg_demon"
+ buttontooltipstyle = "cult"
+ button_icon_state = "cult_mark"
+
+//This is rewritten cultist harvester code kitbashed into the original sense code
+//It works well enough for our purposes
+/datum/action/innate/sense/Activate()
+ var/mob/living/carbon/human/necromorph/sensor = owner
+ var/thelist = sensor.marker.unwhole
+ if(sensor.marker == null)
+ return
+ if(sensor.searching)
+ desc = "They cannot stop what is coming. Use to sense those who are not Whole."
+ button_icon_state = "cult_mark"
+ sensor.searching = FALSE
+ sensor.sense_target = null
+ to_chat(sensor, "You are no longer sensing.")
+ sensor.clear_alert("necrosense")
+ return
else
- to_chat(owner, span_notice("There are no living prey on this floor"))
-
- var/mob/living/carbon/human/necromorph/necro = owner
- necro.play_necro_sound(SOUND_SPEECH, VOLUME_MID, TRUE, 3)
- play_effects()
-
-/datum/action/cooldown/necro/sense/proc/play_effects()
+ for(var/mob/living/found in thelist)
+ found = pick(thelist)
+ if(QDELETED(found))
+ LAZYREMOVE(found, thelist) //He's dead, remove him from the list
+ continue
+ if(found.stat == DEAD)
+ LAZYREMOVE(found, thelist) //He's dead, remove him from the list
+ continue
+ if(found.z != owner.z)
+ continue //If we're not on the same floor ignore it
+ sensor.sense_target = found
+ to_chat(sensor, "You are now tracking your prey, [found.real_name] - find [found.p_them()]!")
+ if(!sensor.sense_target)
+ to_chat(sensor, "There is nobody on this floor.")
+ return
+ desc = "Activate to stop sensing."
+ button_icon_state = "sintouch"
+ sensor.searching = TRUE
+ sensor.throw_alert("necrosense", /atom/movable/screen/alert/necrosense)
+ sensor.play_necro_sound(SOUND_SPEECH, VOLUME_MID, TRUE, 3)
+ play_effects()
+
+/datum/action/innate/sense/proc/play_effects()
set waitfor = FALSE
var/obj/effect/temp_visual/circle = new /obj/effect/temp_visual/expanding_circle(owner.loc, 2 SECONDS, 2)
circle.pixel_y += 40 //Offset it so it appears to be at our mob's head
- sleep(4)
+ sleep(7)
circle = new /obj/effect/temp_visual/expanding_circle(owner.loc, 2 SECONDS, 2)
circle.pixel_y += 40
- sleep(4)
+ sleep(7)
circle = new /obj/effect/temp_visual/expanding_circle(owner.loc, 2 SECONDS, 2)
circle.pixel_y += 40
-
-/datum/action/cooldown/necro/sense/proc/remove_trackers()
- for(var/image/tracker as anything in trackers)
- owner.client?.images -= tracker
- trackers = null
diff --git a/deadspace/code/necromorph/necromorphs/necro_defines.dm b/deadspace/code/necromorph/necromorphs/necro_defines.dm
index 961e5924665..288692b2e21 100644
--- a/deadspace/code/necromorph/necromorphs/necro_defines.dm
+++ b/deadspace/code/necromorph/necromorphs/necro_defines.dm
@@ -46,6 +46,12 @@
/// whether the necromorph has been selected by the marker as a leader.
var/marker_chosen_lead
+ /// is the necromorph using sense?
+ var/searching = FALSE
+
+ ///The mob the necromorph is targeting with sense
+ var/sense_target = null
+
/// Notification spam controls
var/recent_notice = 0
var/notice_delay = 2 SECONDS
diff --git a/deadspace/code/necromorph/necromorphs/necromorph.dm b/deadspace/code/necromorph/necromorphs/necromorph.dm
index 4e0822f4f27..9c31487a22c 100644
--- a/deadspace/code/necromorph/necromorphs/necromorph.dm
+++ b/deadspace/code/necromorph/necromorphs/necromorph.dm
@@ -27,7 +27,8 @@
return
//This had to be moved from species due to code improvements
-/mob/living/carbon/human/necromorph/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked, mob/living/carbon/human/necromorph/H, forced = FALSE, spread_damage = FALSE, sharpness = NONE, attack_direction = null, attacking_item)
+/mob/living/carbon/human/necromorph/apply_damage(damage, damagetype = BRUTE, def_zone = null, blocked, forced = FALSE, spread_damage = FALSE, sharpness = NONE, attack_direction = null, attacking_item)
+ var/mob/living/carbon/human/necromorph/H = src
if(H.dodge_shield > 0)
// Calculate amount of the damage that was blocked by the shield
var/dodged_damage = min(H.dodge_shield, damage, damage * (100 - blocked) / 100)
diff --git a/deadspace/code/necromorph/necromorphs/species.dm b/deadspace/code/necromorph/necromorphs/species.dm
index 9f9f0d20f77..eaa800bedba 100644
--- a/deadspace/code/necromorph/necromorphs/species.dm
+++ b/deadspace/code/necromorph/necromorphs/species.dm
@@ -101,6 +101,14 @@
/datum/species/necromorph/random_name(gender,unique,lastname)
return "[name] [rand(1, 999)]"
+//The natural healing of the necromorph
+/datum/species/necromorph/spec_life(mob/living/carbon/N, delta_time, times_fired)
+ if(N.stat == DEAD) //Dead necros don't heal
+ return
+ var/turf/my_turf = get_turf(N)
+ if(my_turf.necro_corrupted) //Not standing on corruption? No heals
+ N.heal_overall_damage(0.2 * delta_time, 0 * delta_time, BODYTYPE_ORGANIC)
+
//Does animations for regenerating a limb
/datum/species/necromorph/proc/regenerate_limb(mob/living/carbon/human/necromorph/H, limb, duration)
var/image/LR = image(initial(H.class.ui_icon), H, "[limb]_regen")
diff --git a/deadspace/code/necromorph/necromorphs/subtypes/brute.dm b/deadspace/code/necromorph/necromorphs/subtypes/brute.dm
index ef97fae5e58..39a0140a75f 100644
--- a/deadspace/code/necromorph/necromorphs/subtypes/brute.dm
+++ b/deadspace/code/necromorph/necromorphs/subtypes/brute.dm
@@ -97,7 +97,8 @@
stop_curl()
//Switched from species to mob due to code improvements
-/mob/living/carbon/human/necromorph/brute/apply_damage(damage, damagetype, def_zone, blocked, mob/living/carbon/human/necromorph/brute/H, forced, spread_damage, sharpness, attack_direction, attacking_item)
+/mob/living/carbon/human/necromorph/brute/apply_damage(damage, damagetype, def_zone, blocked, forced, spread_damage, sharpness, attack_direction, attacking_item)
+ var/mob/living/carbon/human/necromorph/brute/H = src
var/reduced = 0
switch(turn(attack_direction, dir2angle(H.dir)))
if(NORTH)
diff --git a/deadspace/code/necromorph/necromorphs/subtypes/e_infector.dm b/deadspace/code/necromorph/necromorphs/subtypes/e_infector.dm
index ddf35ddbf07..d203c2363b2 100644
--- a/deadspace/code/necromorph/necromorphs/subtypes/e_infector.dm
+++ b/deadspace/code/necromorph/necromorphs/subtypes/e_infector.dm
@@ -14,6 +14,7 @@
melee_damage_lower = 10
melee_damage_upper = 16
actions = list(
+ /datum/action/innate/sense,
)
minimap_icon = "e_infector"
diff --git a/deadspace/code/necromorph/necromorphs/subtypes/hunter.dm b/deadspace/code/necromorph/necromorphs/subtypes/hunter.dm
index 02a7d1a14c3..b51672155a2 100644
--- a/deadspace/code/necromorph/necromorphs/subtypes/hunter.dm
+++ b/deadspace/code/necromorph/necromorphs/subtypes/hunter.dm
@@ -29,7 +29,8 @@
return FALSE
return FALSE
-/mob/living/carbon/human/necromorph/hunter/apply_damage(damage, damagetype, def_zone, blocked, mob/living/carbon/human/necromorph/hunter/H, forced, spread_damage, sharpness, attack_direction, attacking_item)
+/mob/living/carbon/human/necromorph/hunter/apply_damage(damage, damagetype, def_zone, blocked, forced, spread_damage, sharpness, attack_direction, attacking_item)
+ var/mob/living/carbon/human/necromorph/hunter/H = src
if(H.health - damage <= 0)
H.handle_death_check()
. = ..()
@@ -51,6 +52,7 @@
/datum/action/cooldown/necro/swing/hunter,
// /datum/action/cooldown/necro/taunt/hunter,
/datum/action/cooldown/necro/regenerate/hunter,
+ /datum/action/innate/sense,
/datum/action/cooldown/necro/shout,
)
minimap_icon = "hunter"
diff --git a/deadspace/code/necromorph/necromorphs/subtypes/infector.dm b/deadspace/code/necromorph/necromorphs/subtypes/infector.dm
index 2e6886ba942..935a25a51ab 100644
--- a/deadspace/code/necromorph/necromorphs/subtypes/infector.dm
+++ b/deadspace/code/necromorph/necromorphs/subtypes/infector.dm
@@ -14,6 +14,7 @@
melee_damage_lower = 10
melee_damage_upper = 16
actions = list(
+ /datum/action/innate/sense,
)
minimap_icon = "infector"
diff --git a/deadspace/code/necromorph/necromorphs/subtypes/twitcher.dm b/deadspace/code/necromorph/necromorphs/subtypes/twitcher.dm
index d95543e9d26..16082a9d1c7 100644
--- a/deadspace/code/necromorph/necromorphs/subtypes/twitcher.dm
+++ b/deadspace/code/necromorph/necromorphs/subtypes/twitcher.dm
@@ -62,6 +62,7 @@
if(necro.stat == DEAD)
return //Don't want it generating dodge while dead
necro.dodge_pool = min(necro.dodge_pool + (0.6 * delta_time), necro.max_pool)
+ ..()
/datum/species/necromorph/twitcher/bullet_act(obj/projectile/P, mob/living/carbon/human/necromorph/twitcher/necro)
if(necro.stat == DEAD)
diff --git a/deadspace/code/necromorph/necromorphs/subtypes/ubermorph.dm b/deadspace/code/necromorph/necromorphs/subtypes/ubermorph.dm
index b46e312b002..28ccef518ae 100644
--- a/deadspace/code/necromorph/necromorphs/subtypes/ubermorph.dm
+++ b/deadspace/code/necromorph/necromorphs/subtypes/ubermorph.dm
@@ -26,8 +26,8 @@
armor = list(BLUNT = 75, PUNCTURE = 75, SLASH = 30, LASER = 10, ENERGY = 15, BOMB = 25, BIO = 100, FIRE = 80, ACID = 100)
actions = list(
/datum/action/cooldown/necro/charge/ubermorph,
- /datum/action/cooldown/necro/sense,
/datum/action/cooldown/necro/regenerate/ubermorph,
+ /datum/action/innate/sense,
// /datum/action/cooldown/necro/frenzy_shout/ubermorph,
)
minimap_icon = "ubermorph"
diff --git a/deadspace/sound/effects/markerthrob.ogg b/deadspace/sound/effects/markerthrob.ogg
index a8cb77e6f3d..0a39fc12d7e 100644
Binary files a/deadspace/sound/effects/markerthrob.ogg and b/deadspace/sound/effects/markerthrob.ogg differ