mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-15 18:14:22 +01:00
[MDB Ignore] Combines Cargobus consoles with Dept. Order Consoles, freeing all departments of 1 whole tile of space (#82210)
## About The Pull Request - Departmental orders are now an NTOS app - To download, they require `ACCESS_COMMAND`. - To use, they require one access from the department. - This means you cannot order things from not-your-department unless you have an ID. - When newly downloading the app, it will prompt a head of staff to insert an ID, to determine which department to be linked to. - Changes chat room overlay from the kind that AI uploads use to a new icon. - Minor refactors to department order in general.   ## Why It's Good For The Game These two computers are surprising waste spacers for two things which are tied together. So why not combine them? The lesser used cargobus chat is still there, and departmental orders are front and center. This gives mappers a ton more leeway when mapping departments out and is overall less clutter. ## Changelog 🆑 Melbert qol: Cargobus chat console and Departmental Order console are now combined into one. qol: Mod PCs active on the "chat client" apps no longer look like AI uploads (and now have their own sprite) refactor: Departmental order consoles were refactored a bit, report any oddities. /🆑
This commit is contained in:
@@ -2392,16 +2392,6 @@
|
||||
/obj/machinery/light/small/directional/west,
|
||||
/turf/open/floor/grass,
|
||||
/area/station/service/chapel)
|
||||
"aWC" = (
|
||||
/obj/machinery/computer/department_orders/engineering{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/light/small/directional/east,
|
||||
/turf/open/floor/plating,
|
||||
/area/station/engineering/break_room)
|
||||
"aXI" = (
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/station/science/lobby)
|
||||
@@ -3054,6 +3044,11 @@
|
||||
/obj/structure/closet/crate/miningcar,
|
||||
/turf/open/floor/iron,
|
||||
/area/station/hallway/secondary/dock)
|
||||
"blA" = (
|
||||
/obj/effect/turf_decal/tile/neutral/fourcorners,
|
||||
/obj/structure/table/reinforced,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/medical/medbay/central)
|
||||
"blG" = (
|
||||
/obj/effect/turf_decal/box/white{
|
||||
color = "#52B4E9"
|
||||
@@ -5050,6 +5045,22 @@
|
||||
/obj/effect/mapping_helpers/broken_floor,
|
||||
/turf/open/floor/plating,
|
||||
/area/station/maintenance/starboard/central)
|
||||
"bWw" = (
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/effect/turf_decal/tile/dark_red/half/contrasted{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/computer/security/telescreen/interrogation{
|
||||
dir = 8;
|
||||
name = "isolation room monitor";
|
||||
network = list("isolation");
|
||||
pixel_x = 30
|
||||
},
|
||||
/obj/machinery/photobooth/security,
|
||||
/turf/open/floor/iron,
|
||||
/area/station/security/execution/transfer)
|
||||
"bWJ" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
@@ -5426,11 +5437,6 @@
|
||||
/obj/effect/mapping_helpers/airlock/access/any/service/maintenance,
|
||||
/turf/open/floor/plating,
|
||||
/area/station/maintenance/central/greater)
|
||||
"ceK" = (
|
||||
/obj/effect/turf_decal/tile/neutral/fourcorners,
|
||||
/obj/structure/bed/medical/emergency,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/medical/medbay/central)
|
||||
"ceZ" = (
|
||||
/obj/structure/cable,
|
||||
/turf/open/floor/plating,
|
||||
@@ -12932,15 +12938,6 @@
|
||||
/obj/machinery/firealarm/directional/east,
|
||||
/turf/open/floor/circuit/red,
|
||||
/area/station/ai_monitored/turret_protected/ai)
|
||||
"eNV" = (
|
||||
/obj/machinery/modular_computer/preset/cargochat/engineering{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/station/engineering/break_room)
|
||||
"eOo" = (
|
||||
/obj/machinery/atmospherics/pipe/smart/simple/supply/visible{
|
||||
dir = 9
|
||||
@@ -16583,15 +16580,6 @@
|
||||
/obj/effect/spawner/random/structure/girder,
|
||||
/turf/open/floor/plating,
|
||||
/area/station/ai_monitored/turret_protected/aisat/maint)
|
||||
"gcf" = (
|
||||
/obj/effect/turf_decal/tile/neutral/fourcorners,
|
||||
/obj/machinery/computer/department_orders/medical{
|
||||
dir = 1
|
||||
},
|
||||
/obj/item/radio/intercom/directional/south,
|
||||
/obj/machinery/camera/autoname/directional/south,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/medical/medbay/central)
|
||||
"gcm" = (
|
||||
/obj/effect/spawner/random/structure/crate,
|
||||
/turf/open/floor/plating/rust,
|
||||
@@ -21100,28 +21088,6 @@
|
||||
},
|
||||
/turf/open/floor/iron,
|
||||
/area/station/hallway/primary/fore)
|
||||
"hBv" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
id = "hop";
|
||||
name = "Privacy Shutters"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/window/brigdoor/right/directional/east{
|
||||
name = "Head of Personnel's Desk";
|
||||
req_access = list("hop")
|
||||
},
|
||||
/obj/machinery/door/window/left/directional/west{
|
||||
name = "Reception Window"
|
||||
},
|
||||
/obj/structure/desk_bell{
|
||||
pixel_x = 7
|
||||
},
|
||||
/turf/open/floor/iron/textured_large,
|
||||
/area/station/command/heads_quarters/hop)
|
||||
"hBA" = (
|
||||
/obj/structure/cable,
|
||||
/obj/effect/spawner/structure/window,
|
||||
@@ -21427,6 +21393,14 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/station/maintenance/disposal/incinerator)
|
||||
"hIS" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/iron/half,
|
||||
/area/station/hallway/primary/central/fore)
|
||||
"hJd" = (
|
||||
/obj/structure/cable,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
@@ -22370,12 +22344,6 @@
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/medical/medbay/aft)
|
||||
"ibq" = (
|
||||
/obj/machinery/bluespace_vendor/directional/north,
|
||||
/obj/machinery/light/small/directional/west,
|
||||
/obj/machinery/photobooth,
|
||||
/turf/open/floor/iron/textured_large,
|
||||
/area/station/hallway/primary/central/fore)
|
||||
"ibv" = (
|
||||
/obj/item/kirbyplants/random,
|
||||
/turf/open/floor/iron,
|
||||
@@ -22724,6 +22692,12 @@
|
||||
},
|
||||
/turf/open/floor/iron,
|
||||
/area/station/hallway/secondary/dock)
|
||||
"iid" = (
|
||||
/obj/machinery/bluespace_vendor/directional/north,
|
||||
/obj/machinery/light/small/directional/west,
|
||||
/obj/machinery/photobooth,
|
||||
/turf/open/floor/iron/textured_large,
|
||||
/area/station/hallway/primary/central/fore)
|
||||
"iio" = (
|
||||
/obj/effect/turf_decal/tile/neutral/fourcorners,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -25223,19 +25197,6 @@
|
||||
/obj/structure/alien/weeds,
|
||||
/turf/open/floor/plating,
|
||||
/area/station/maintenance/starboard/greater)
|
||||
"jco" = (
|
||||
/obj/effect/turf_decal/stripes/corner{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/rnd/production/circuit_imprinter,
|
||||
/obj/machinery/camera{
|
||||
c_tag = "Engineering - Foyer - Starboard";
|
||||
dir = 9
|
||||
},
|
||||
/obj/effect/decal/cleanable/cobweb/cobweb2,
|
||||
/obj/machinery/airalarm/directional/east,
|
||||
/turf/open/floor/plating,
|
||||
/area/station/engineering/break_room)
|
||||
"jct" = (
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/door/airlock/external{
|
||||
@@ -26247,38 +26208,6 @@
|
||||
/obj/machinery/light/cold/directional/north,
|
||||
/turf/open/floor/iron/white/small,
|
||||
/area/station/medical/storage)
|
||||
"jxV" = (
|
||||
/obj/effect/turf_decal/tile/blue,
|
||||
/obj/machinery/modular_computer/preset/id,
|
||||
/obj/machinery/button/ticket_machine{
|
||||
pixel_x = 9;
|
||||
pixel_y = 23
|
||||
},
|
||||
/obj/machinery/button/door/directional/south{
|
||||
id = "hop";
|
||||
name = "Privacy Shutters Control";
|
||||
pixel_x = -2;
|
||||
pixel_y = 23;
|
||||
req_access = list("hop")
|
||||
},
|
||||
/obj/machinery/button/door/directional/south{
|
||||
id = "hopqueue";
|
||||
name = "Queue Shutters Control";
|
||||
pixel_x = -13;
|
||||
pixel_y = 23;
|
||||
req_access = list("hop")
|
||||
},
|
||||
/obj/machinery/button/flasher{
|
||||
id = "hopflash";
|
||||
pixel_x = -24;
|
||||
pixel_y = 6
|
||||
},
|
||||
/obj/machinery/button/photobooth{
|
||||
pixel_y = -6;
|
||||
pixel_x = -24
|
||||
},
|
||||
/turf/open/floor/iron/dark/textured_corner,
|
||||
/area/station/command/heads_quarters/hop)
|
||||
"jxZ" = (
|
||||
/obj/effect/turf_decal/siding/blue{
|
||||
dir = 6
|
||||
@@ -26479,17 +26408,6 @@
|
||||
},
|
||||
/turf/open/floor/iron/dark/small,
|
||||
/area/station/ai_monitored/security/armory)
|
||||
"jBx" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/siding/white{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/tank_holder/extinguisher,
|
||||
/obj/machinery/camera/autoname/directional/north,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/medical/medbay/central)
|
||||
"jBD" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/effect/mapping_helpers/broken_floor,
|
||||
@@ -30761,6 +30679,19 @@
|
||||
},
|
||||
/turf/open/floor/iron,
|
||||
/area/station/security/brig/entrance)
|
||||
"lbV" = (
|
||||
/obj/structure/table,
|
||||
/obj/effect/turf_decal/bot,
|
||||
/obj/machinery/light/small/directional/north,
|
||||
/obj/item/pen{
|
||||
pixel_x = 11
|
||||
},
|
||||
/obj/item/paper_bin{
|
||||
pixel_x = -7;
|
||||
pixel_y = 6
|
||||
},
|
||||
/turf/open/floor/iron/kitchen/small,
|
||||
/area/station/hallway/secondary/service)
|
||||
"lbW" = (
|
||||
/obj/structure/cable,
|
||||
/obj/structure/disposalpipe/segment{
|
||||
@@ -32601,6 +32532,16 @@
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/turf/open/floor/iron,
|
||||
/area/station/cargo/storage)
|
||||
"lGc" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/siding/white{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/camera/autoname/directional/north,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/medical/medbay/central)
|
||||
"lGe" = (
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
@@ -36398,6 +36339,11 @@
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/iron/dark/small,
|
||||
/area/station/ai_monitored/security/armory)
|
||||
"mVx" = (
|
||||
/obj/effect/turf_decal/tile/neutral/fourcorners,
|
||||
/obj/structure/tank_holder/extinguisher,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/medical/medbay/central)
|
||||
"mVC" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Departure Lounge Airlock"
|
||||
@@ -39333,14 +39279,6 @@
|
||||
/obj/machinery/light/small/directional/south,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/cargo/office)
|
||||
"nZg" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/iron/half,
|
||||
/area/station/hallway/primary/central/fore)
|
||||
"nZh" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/stock_parts/scanning_module{
|
||||
@@ -42849,6 +42787,11 @@
|
||||
/obj/machinery/computer/security/telescreen/entertainment/directional/west,
|
||||
/turf/open/floor/iron,
|
||||
/area/station/hallway/primary/aft)
|
||||
"pnh" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/effect/mapping_helpers/broken_floor,
|
||||
/turf/open/floor/iron/kitchen/small,
|
||||
/area/station/hallway/secondary/service)
|
||||
"pnn" = (
|
||||
/obj/structure/cable,
|
||||
/obj/structure/disposalpipe/segment{
|
||||
@@ -42868,6 +42811,22 @@
|
||||
/obj/machinery/firealarm/directional/south,
|
||||
/turf/open/floor/plating,
|
||||
/area/station/maintenance/starboard/greater)
|
||||
"pnG" = (
|
||||
/obj/effect/turf_decal/tile/neutral/fourcorners,
|
||||
/obj/structure/window/spawner/directional/west,
|
||||
/obj/machinery/camera/directional/south,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/paper_bin{
|
||||
pixel_x = 5;
|
||||
pixel_y = 8
|
||||
},
|
||||
/obj/item/pen{
|
||||
pixel_x = 6;
|
||||
pixel_y = 8
|
||||
},
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/medical/medbay/central)
|
||||
"pnM" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
|
||||
/turf/open/floor/iron/dark,
|
||||
@@ -43201,6 +43160,38 @@
|
||||
},
|
||||
/turf/open/floor/iron/white/textured_large,
|
||||
/area/station/medical/medbay/lobby)
|
||||
"psO" = (
|
||||
/obj/effect/turf_decal/tile/blue,
|
||||
/obj/machinery/modular_computer/preset/id,
|
||||
/obj/machinery/button/ticket_machine{
|
||||
pixel_x = 9;
|
||||
pixel_y = 23
|
||||
},
|
||||
/obj/machinery/button/door/directional/south{
|
||||
id = "hop";
|
||||
name = "Privacy Shutters Control";
|
||||
pixel_x = -2;
|
||||
pixel_y = 23;
|
||||
req_access = list("hop")
|
||||
},
|
||||
/obj/machinery/button/door/directional/south{
|
||||
id = "hopqueue";
|
||||
name = "Queue Shutters Control";
|
||||
pixel_x = -13;
|
||||
pixel_y = 23;
|
||||
req_access = list("hop")
|
||||
},
|
||||
/obj/machinery/button/flasher{
|
||||
id = "hopflash";
|
||||
pixel_x = -24;
|
||||
pixel_y = 6
|
||||
},
|
||||
/obj/machinery/button/photobooth{
|
||||
pixel_y = -6;
|
||||
pixel_x = -24
|
||||
},
|
||||
/turf/open/floor/iron/dark/textured_corner,
|
||||
/area/station/command/heads_quarters/hop)
|
||||
"psP" = (
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
@@ -43383,6 +43374,18 @@
|
||||
dir = 4
|
||||
},
|
||||
/area/station/science/research)
|
||||
"pvP" = (
|
||||
/obj/effect/turf_decal/tile/dark_red{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/siding/wideplating/dark/corner{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/modular_computer/preset/cargochat/security{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/iron,
|
||||
/area/station/security/brig/entrance)
|
||||
"pvR" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/machinery/light_switch/directional/south,
|
||||
@@ -44140,6 +44143,28 @@
|
||||
"pHJ" = (
|
||||
/turf/open/floor/plating/rust,
|
||||
/area/station/maintenance/starboard/greater)
|
||||
"pHL" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
id = "hop";
|
||||
name = "Privacy Shutters"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/window/brigdoor/right/directional/east{
|
||||
name = "Head of Personnel's Desk";
|
||||
req_access = list("hop")
|
||||
},
|
||||
/obj/machinery/door/window/left/directional/west{
|
||||
name = "Reception Window"
|
||||
},
|
||||
/obj/structure/desk_bell{
|
||||
pixel_x = 7
|
||||
},
|
||||
/turf/open/floor/iron/textured_large,
|
||||
/area/station/command/heads_quarters/hop)
|
||||
"pHM" = (
|
||||
/obj/effect/turf_decal/trimline/white/warning{
|
||||
dir = 4
|
||||
@@ -51916,12 +51941,6 @@
|
||||
/obj/machinery/light_switch/directional/north,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/science/genetics)
|
||||
"sbt" = (
|
||||
/obj/structure/table,
|
||||
/obj/effect/turf_decal/bot,
|
||||
/obj/machinery/light/small/directional/north,
|
||||
/turf/open/floor/iron/kitchen/small,
|
||||
/area/station/hallway/secondary/service)
|
||||
"sbx" = (
|
||||
/obj/structure/chair/sofa/bench/right{
|
||||
dir = 8
|
||||
@@ -53407,14 +53426,6 @@
|
||||
/obj/structure/flora/bush/flowers_yw/style_random,
|
||||
/turf/open/misc/sandy_dirt,
|
||||
/area/station/medical/medbay/lobby)
|
||||
"syE" = (
|
||||
/obj/effect/turf_decal/tile/neutral/fourcorners,
|
||||
/obj/structure/window/spawner/directional/west,
|
||||
/obj/machinery/vending/medical,
|
||||
/obj/machinery/camera/directional/south,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/medical/medbay/central)
|
||||
"syG" = (
|
||||
/obj/effect/spawner/xmastree,
|
||||
/turf/open/floor/grass,
|
||||
@@ -53666,15 +53677,6 @@
|
||||
},
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/science/ordnance/testlab)
|
||||
"sDD" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/effect/mapping_helpers/broken_floor,
|
||||
/obj/machinery/modular_computer/preset/cargochat/service{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/iron/kitchen/small,
|
||||
/area/station/hallway/secondary/service)
|
||||
"sDT" = (
|
||||
/obj/machinery/firealarm/directional/north,
|
||||
/obj/structure/cable,
|
||||
@@ -56097,13 +56099,6 @@
|
||||
"tuZ" = (
|
||||
/turf/closed/wall,
|
||||
/area/station/security/brig/entrance)
|
||||
"tvg" = (
|
||||
/obj/effect/turf_decal/tile/neutral/fourcorners,
|
||||
/obj/machinery/modular_computer/preset/cargochat/medical{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/medical/medbay/central)
|
||||
"tvM" = (
|
||||
/obj/structure/flora/bush/fullgrass/style_random,
|
||||
/obj/structure/flora/bush/flowers_br/style_random,
|
||||
@@ -56813,6 +56808,13 @@
|
||||
},
|
||||
/turf/open/floor/iron,
|
||||
/area/station/hallway/primary/port)
|
||||
"tGm" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/rnd/production/circuit_imprinter,
|
||||
/turf/open/floor/plating,
|
||||
/area/station/engineering/break_room)
|
||||
"tGp" = (
|
||||
/obj/machinery/light/small/directional/south,
|
||||
/turf/open/floor/engine,
|
||||
@@ -61463,12 +61465,6 @@
|
||||
/obj/effect/spawner/structure/window/reinforced/tinted,
|
||||
/turf/open/floor/plating,
|
||||
/area/station/science/server)
|
||||
"viC" = (
|
||||
/obj/machinery/computer/department_orders/science{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/iron/white,
|
||||
/area/station/science/research)
|
||||
"viK" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
@@ -64235,6 +64231,16 @@
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/turf/open/floor/plating,
|
||||
/area/station/maintenance/central/greater)
|
||||
"vYf" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/light/small/directional/east,
|
||||
/obj/machinery/modular_computer/preset/cargochat/engineering{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/station/engineering/break_room)
|
||||
"vYg" = (
|
||||
/obj/effect/turf_decal/stripes/corner{
|
||||
dir = 1
|
||||
@@ -64971,13 +64977,6 @@
|
||||
},
|
||||
/turf/open/floor/iron/cafeteria,
|
||||
/area/station/service/cafeteria)
|
||||
"wkl" = (
|
||||
/obj/effect/mapping_helpers/broken_floor,
|
||||
/obj/machinery/computer/department_orders/service,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/obj/structure/sign/poster/official/random/directional/north,
|
||||
/turf/open/floor/iron/kitchen/small,
|
||||
/area/station/hallway/secondary/service)
|
||||
"wkm" = (
|
||||
/obj/effect/turf_decal/tile/blue,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
@@ -65028,6 +65027,13 @@
|
||||
/obj/structure/flora/bush/flowers_pp/style_random,
|
||||
/turf/open/floor/grass,
|
||||
/area/station/service/chapel)
|
||||
"wlS" = (
|
||||
/obj/effect/mapping_helpers/broken_floor,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/obj/structure/sign/poster/official/random/directional/north,
|
||||
/obj/machinery/modular_computer/preset/cargochat/service,
|
||||
/turf/open/floor/iron/kitchen/small,
|
||||
/area/station/hallway/secondary/service)
|
||||
"wme" = (
|
||||
/obj/effect/spawner/random/structure/crate,
|
||||
/turf/open/floor/plating,
|
||||
@@ -65084,6 +65090,15 @@
|
||||
/obj/machinery/holopad,
|
||||
/turf/open/floor/iron/showroomfloor,
|
||||
/area/station/medical/surgery/theatre)
|
||||
"wmP" = (
|
||||
/obj/effect/turf_decal/tile/neutral/fourcorners,
|
||||
/obj/item/radio/intercom/directional/south,
|
||||
/obj/machinery/camera/autoname/directional/south,
|
||||
/obj/machinery/modular_computer/preset/cargochat/medical{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/medical/medbay/central)
|
||||
"wmS" = (
|
||||
/obj/structure/cable,
|
||||
/obj/effect/turf_decal/siding/red/corner{
|
||||
@@ -65637,22 +65652,6 @@
|
||||
"wuM" = (
|
||||
/turf/closed/wall,
|
||||
/area/station/command/heads_quarters/qm)
|
||||
"wvg" = (
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/effect/turf_decal/tile/dark_red/half/contrasted{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/computer/security/telescreen/interrogation{
|
||||
dir = 8;
|
||||
name = "isolation room monitor";
|
||||
network = list("isolation");
|
||||
pixel_x = 30
|
||||
},
|
||||
/obj/machinery/photobooth/security,
|
||||
/turf/open/floor/iron,
|
||||
/area/station/security/execution/transfer)
|
||||
"wvn" = (
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
@@ -70886,18 +70885,6 @@
|
||||
"xQJ" = (
|
||||
/turf/closed/wall,
|
||||
/area/station/service/abandoned_gambling_den/gaming)
|
||||
"xQK" = (
|
||||
/obj/effect/turf_decal/tile/dark_red{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/siding/wideplating/dark/corner{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/computer/department_orders/security{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/iron,
|
||||
/area/station/security/brig/entrance)
|
||||
"xQN" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
|
||||
@@ -72436,6 +72423,19 @@
|
||||
},
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/command/heads_quarters/rd)
|
||||
"ykX" = (
|
||||
/obj/effect/turf_decal/stripes/corner{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/camera{
|
||||
c_tag = "Engineering - Foyer - Starboard";
|
||||
dir = 9
|
||||
},
|
||||
/obj/effect/decal/cleanable/cobweb/cobweb2,
|
||||
/obj/machinery/airalarm/directional/east,
|
||||
/obj/structure/table/reinforced/titaniumglass,
|
||||
/turf/open/floor/plating,
|
||||
/area/station/engineering/break_room)
|
||||
"ykY" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/light/small/directional/east,
|
||||
@@ -89350,7 +89350,7 @@ oTH
|
||||
mhk
|
||||
xHB
|
||||
pOK
|
||||
sDD
|
||||
pnh
|
||||
iEX
|
||||
yfC
|
||||
aws
|
||||
@@ -89439,7 +89439,7 @@ ohR
|
||||
eoz
|
||||
eoz
|
||||
tTW
|
||||
wvg
|
||||
bWw
|
||||
tMS
|
||||
xIj
|
||||
vfN
|
||||
@@ -89605,7 +89605,7 @@ rkR
|
||||
mhk
|
||||
mhk
|
||||
mhk
|
||||
sbt
|
||||
lbV
|
||||
uAV
|
||||
tDT
|
||||
fDp
|
||||
@@ -89862,7 +89862,7 @@ rlz
|
||||
rHD
|
||||
qVR
|
||||
wCR
|
||||
wkl
|
||||
wlS
|
||||
tDP
|
||||
qbC
|
||||
lsJ
|
||||
@@ -91939,7 +91939,7 @@ cmT
|
||||
vJV
|
||||
qBN
|
||||
iKm
|
||||
xQK
|
||||
pvP
|
||||
vEP
|
||||
hji
|
||||
pCF
|
||||
@@ -92667,8 +92667,8 @@ xoS
|
||||
hwo
|
||||
hDC
|
||||
tsF
|
||||
ibq
|
||||
nZg
|
||||
iid
|
||||
hIS
|
||||
yat
|
||||
wCt
|
||||
lEa
|
||||
@@ -92925,7 +92925,7 @@ cmd
|
||||
qly
|
||||
uVT
|
||||
uVT
|
||||
hBv
|
||||
pHL
|
||||
xQw
|
||||
uVT
|
||||
jsN
|
||||
@@ -93181,7 +93181,7 @@ rto
|
||||
hwp
|
||||
qlP
|
||||
uVT
|
||||
jxV
|
||||
psO
|
||||
iri
|
||||
bah
|
||||
uVT
|
||||
@@ -94434,10 +94434,10 @@ gJA
|
||||
fBz
|
||||
eLE
|
||||
vxt
|
||||
jco
|
||||
ykX
|
||||
wJU
|
||||
aWC
|
||||
eNV
|
||||
vYf
|
||||
tGm
|
||||
wMm
|
||||
fiA
|
||||
wfn
|
||||
@@ -99931,7 +99931,7 @@ dDB
|
||||
xSO
|
||||
wHN
|
||||
xrC
|
||||
syE
|
||||
pnG
|
||||
sSQ
|
||||
vYj
|
||||
sSQ
|
||||
@@ -100188,7 +100188,7 @@ dDB
|
||||
xSO
|
||||
wuj
|
||||
xrC
|
||||
tvg
|
||||
blA
|
||||
sSQ
|
||||
vYj
|
||||
sSQ
|
||||
@@ -100445,7 +100445,7 @@ blb
|
||||
tFQ
|
||||
mXT
|
||||
mUg
|
||||
gcf
|
||||
wmP
|
||||
sSQ
|
||||
bbh
|
||||
sSQ
|
||||
@@ -100959,7 +100959,7 @@ pqa
|
||||
tFQ
|
||||
vLc
|
||||
xrC
|
||||
ceK
|
||||
mVx
|
||||
sSQ
|
||||
miA
|
||||
sSQ
|
||||
@@ -103527,7 +103527,7 @@ wfr
|
||||
wfr
|
||||
vLQ
|
||||
uSj
|
||||
jBx
|
||||
lGc
|
||||
haq
|
||||
wYA
|
||||
dCe
|
||||
@@ -115576,7 +115576,7 @@ wPK
|
||||
xfc
|
||||
vRh
|
||||
xUV
|
||||
viC
|
||||
rpk
|
||||
uMU
|
||||
eAn
|
||||
bZN
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -554,13 +554,6 @@
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/turf/open/floor/catwalk_floor,
|
||||
/area/station/maintenance/floor1/port/fore)
|
||||
"agJ" = (
|
||||
/obj/machinery/modular_computer/preset/cargochat/science,
|
||||
/obj/effect/turf_decal/tile/brown/opposingcorners,
|
||||
/obj/effect/turf_decal/tile/brown/opposingcorners,
|
||||
/obj/effect/turf_decal/stripes/white/line,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/science/circuits)
|
||||
"agK" = (
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
@@ -940,6 +933,12 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/station/science/xenobiology)
|
||||
"alG" = (
|
||||
/obj/machinery/photocopier,
|
||||
/turf/open/floor/iron/half{
|
||||
dir = 1
|
||||
},
|
||||
/area/station/engineering/lobby)
|
||||
"alK" = (
|
||||
/obj/machinery/modular_computer/preset/id{
|
||||
dir = 4
|
||||
@@ -1609,6 +1608,14 @@
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/open/floor/plating,
|
||||
/area/station/cargo/miningdock)
|
||||
"auj" = (
|
||||
/obj/effect/turf_decal/tile/brown/opposingcorners,
|
||||
/obj/effect/turf_decal/tile/brown/opposingcorners,
|
||||
/obj/effect/turf_decal/stripes/white/line,
|
||||
/obj/machinery/light/cold/no_nightlight/directional/north,
|
||||
/obj/machinery/module_duplicator,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/science/circuits)
|
||||
"aut" = (
|
||||
/obj/structure/reagent_dispensers/fueltank,
|
||||
/obj/effect/turf_decal/delivery/red,
|
||||
@@ -2413,14 +2420,6 @@
|
||||
},
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/science/lab)
|
||||
"aFI" = (
|
||||
/obj/machinery/computer/department_orders/medical{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue/fourcorners,
|
||||
/obj/machinery/light/cold/directional/south,
|
||||
/turf/open/floor/iron/white/textured,
|
||||
/area/station/medical/break_room)
|
||||
"aFJ" = (
|
||||
/obj/machinery/button/door/directional/north{
|
||||
id = "sm_bolt";
|
||||
@@ -2442,13 +2441,6 @@
|
||||
},
|
||||
/turf/open/floor/pod,
|
||||
/area/station/maintenance/floor4/port/fore)
|
||||
"aGj" = (
|
||||
/obj/effect/turf_decal/tile/brown/opposingcorners,
|
||||
/obj/effect/turf_decal/tile/brown/opposingcorners,
|
||||
/obj/effect/turf_decal/stripes/white/line,
|
||||
/obj/machinery/bci_implanter,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/science/circuits)
|
||||
"aGm" = (
|
||||
/obj/structure/chair/comfy/black{
|
||||
dir = 4
|
||||
@@ -2494,13 +2486,6 @@
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating,
|
||||
/area/station/maintenance/floor2/port/aft)
|
||||
"aGG" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/paper_bin,
|
||||
/turf/open/floor/iron/half{
|
||||
dir = 1
|
||||
},
|
||||
/area/station/engineering/lobby)
|
||||
"aGH" = (
|
||||
/turf/open/floor/plating,
|
||||
/area/station/maintenance/floor3/starboard/fore)
|
||||
@@ -4089,6 +4074,13 @@
|
||||
},
|
||||
/turf/open/space/openspace,
|
||||
/area/space/nearstation)
|
||||
"aZO" = (
|
||||
/obj/effect/turf_decal/bot,
|
||||
/obj/machinery/modular_computer/preset/cargochat/service{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/hallway/secondary/service)
|
||||
"aZX" = (
|
||||
/obj/machinery/light/directional/north,
|
||||
/turf/open/floor/iron/dark/side{
|
||||
@@ -7135,6 +7127,14 @@
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/open/floor/iron,
|
||||
/area/station/hallway/floor3/fore)
|
||||
"bLE" = (
|
||||
/obj/effect/turf_decal/tile/blue/fourcorners,
|
||||
/obj/machinery/light/cold/directional/south,
|
||||
/obj/machinery/modular_computer/preset/cargochat/medical{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/iron/white/textured,
|
||||
/area/station/medical/break_room)
|
||||
"bMa" = (
|
||||
/obj/structure/tank_dispenser/oxygen,
|
||||
/obj/effect/turf_decal/siding/thinplating_new,
|
||||
@@ -8709,15 +8709,6 @@
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/turf/open/floor/iron/white,
|
||||
/area/station/medical/storage)
|
||||
"cgv" = (
|
||||
/obj/structure/disposalpipe/trunk{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/disposal/bin/tagger,
|
||||
/turf/open/floor/iron/dark/side{
|
||||
dir = 10
|
||||
},
|
||||
/area/station/security/office)
|
||||
"cgw" = (
|
||||
/obj/effect/decal/cleanable/oil,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
@@ -9080,6 +9071,12 @@
|
||||
},
|
||||
/turf/open/floor/iron,
|
||||
/area/station/engineering/atmos/project)
|
||||
"ckt" = (
|
||||
/obj/item/kirbyplants/organic/plant10,
|
||||
/turf/open/floor/iron/dark/side{
|
||||
dir = 10
|
||||
},
|
||||
/area/station/security/office)
|
||||
"ckv" = (
|
||||
/obj/structure/cable,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
@@ -10755,6 +10752,21 @@
|
||||
/obj/machinery/space_heater,
|
||||
/turf/open/floor/pod/light,
|
||||
/area/station/maintenance/floor4/starboard/fore)
|
||||
"cHA" = (
|
||||
/obj/item/radio/intercom/directional/east,
|
||||
/obj/machinery/button/door/directional/south{
|
||||
id = "secmechbay";
|
||||
name = "Security Mech Garage Door Controls";
|
||||
req_access = list("security")
|
||||
},
|
||||
/obj/effect/turf_decal/trimline/brown/filled/end{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/modular_computer/preset/cargochat/security{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/iron,
|
||||
/area/station/security/office)
|
||||
"cHE" = (
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
@@ -13010,13 +13022,6 @@
|
||||
"dmU" = (
|
||||
/turf/open/floor/iron/dark/side,
|
||||
/area/station/hallway/secondary/entry)
|
||||
"dmZ" = (
|
||||
/obj/machinery/modular_computer/preset/cargochat/medical{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue/fourcorners,
|
||||
/turf/open/floor/iron/white/textured,
|
||||
/area/station/medical/break_room)
|
||||
"dnx" = (
|
||||
/obj/structure/girder,
|
||||
/turf/open/floor/plating,
|
||||
@@ -14530,6 +14535,11 @@
|
||||
/obj/effect/landmark/start/assistant,
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/area/station/service/kitchen/diner)
|
||||
"dIf" = (
|
||||
/obj/machinery/light/directional/south,
|
||||
/obj/structure/reagent_dispensers/watertank,
|
||||
/turf/open/floor/iron,
|
||||
/area/station/hallway/secondary/service)
|
||||
"dIh" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/spawner/random/structure/table_or_rack,
|
||||
@@ -14576,6 +14586,11 @@
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/turf/open/floor/iron/white,
|
||||
/area/station/science/ordnance/testlab)
|
||||
"dIK" = (
|
||||
/obj/effect/turf_decal/tile/blue/fourcorners,
|
||||
/obj/structure/table/reinforced/rglass,
|
||||
/turf/open/floor/iron/white/textured,
|
||||
/area/station/medical/break_room)
|
||||
"dIO" = (
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
@@ -14611,6 +14626,17 @@
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/station/service/bar/atrium)
|
||||
"dJm" = (
|
||||
/obj/machinery/firealarm/directional/south,
|
||||
/obj/machinery/camera/directional/south{
|
||||
c_tag = "Security - Office Aft"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/structure/cable,
|
||||
/obj/effect/turf_decal/tile/red/fourcorners,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/security/office)
|
||||
"dJo" = (
|
||||
/obj/effect/landmark/navigate_destination/gateway,
|
||||
/obj/effect/turf_decal/tile/blue/half/contrasted{
|
||||
@@ -14965,11 +14991,6 @@
|
||||
/obj/structure/frame/machine,
|
||||
/turf/open/floor/engine,
|
||||
/area/station/maintenance/floor1/port/aft)
|
||||
"dNU" = (
|
||||
/obj/machinery/photobooth,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/hallway/floor4/fore)
|
||||
"dOa" = (
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
@@ -16959,14 +16980,6 @@
|
||||
/obj/structure/cable/layer3,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/ai_monitored/turret_protected/aisat)
|
||||
"enP" = (
|
||||
/obj/machinery/module_duplicator,
|
||||
/obj/effect/turf_decal/tile/purple/opposingcorners,
|
||||
/obj/effect/turf_decal/siding/brown{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/iron/white,
|
||||
/area/station/science/circuits)
|
||||
"enX" = (
|
||||
/obj/effect/turf_decal/weather/dirt{
|
||||
dir = 5
|
||||
@@ -18052,6 +18065,15 @@
|
||||
},
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/hallway/floor1/aft)
|
||||
"eEq" = (
|
||||
/obj/effect/turf_decal/bot,
|
||||
/obj/machinery/power/apc/auto_name/directional/east,
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/computer/order_console/cook{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/hallway/secondary/service)
|
||||
"eEr" = (
|
||||
/obj/item/radio/intercom/directional/east,
|
||||
/turf/open/floor/wood,
|
||||
@@ -21221,6 +21243,13 @@
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/station/service/kitchen)
|
||||
"fAM" = (
|
||||
/obj/effect/turf_decal/tile/brown/opposingcorners,
|
||||
/obj/effect/turf_decal/tile/brown/opposingcorners,
|
||||
/obj/effect/turf_decal/stripes/white/line,
|
||||
/obj/machinery/component_printer,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/science/circuits)
|
||||
"fAP" = (
|
||||
/obj/effect/turf_decal/trimline/purple/filled/corner{
|
||||
dir = 1
|
||||
@@ -24371,13 +24400,6 @@
|
||||
/obj/machinery/door/firedoor,
|
||||
/turf/open/floor/iron/smooth_large,
|
||||
/area/station/maintenance/floor2/starboard/aft)
|
||||
"gqN" = (
|
||||
/obj/effect/turf_decal/bot,
|
||||
/obj/machinery/power/apc/auto_name/directional/east,
|
||||
/obj/structure/cable,
|
||||
/obj/structure/reagent_dispensers/watertank,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/hallway/secondary/service)
|
||||
"gqO" = (
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
@@ -26374,6 +26396,17 @@
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/carpet/green,
|
||||
/area/station/service/abandoned_gambling_den)
|
||||
"gRL" = (
|
||||
/obj/effect/turf_decal/tile/brown{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/yellow{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/siding/thinplating_new,
|
||||
/obj/structure/closet/crate/bin,
|
||||
/turf/open/floor/iron/dark/textured,
|
||||
/area/station/engineering/lobby)
|
||||
"gRQ" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/light/broken/directional/west,
|
||||
@@ -28600,6 +28633,11 @@
|
||||
/obj/machinery/power/apc/auto_name/directional/north,
|
||||
/turf/open/floor/wood/large,
|
||||
/area/station/service/library/lounge)
|
||||
"hwk" = (
|
||||
/obj/machinery/photobooth,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/hallway/floor4/fore)
|
||||
"hwr" = (
|
||||
/obj/structure/railing,
|
||||
/obj/effect/turf_decal/trimline/red/filled/line,
|
||||
@@ -29850,20 +29888,6 @@
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/turf/open/floor/iron/textured_large,
|
||||
/area/station/cargo/storage)
|
||||
"hLW" = (
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/machinery/duct,
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/security/office)
|
||||
"hLX" = (
|
||||
/turf/open/floor/iron/white/small,
|
||||
/area/station/medical/chemistry)
|
||||
@@ -31287,13 +31311,6 @@
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/security/checkpoint/second)
|
||||
"ifZ" = (
|
||||
/obj/structure/rack,
|
||||
/obj/effect/turf_decal/tile/brown/opposingcorners,
|
||||
/obj/effect/turf_decal/tile/brown/opposingcorners,
|
||||
/obj/effect/turf_decal/stripes/white/line,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/science/circuits)
|
||||
"igd" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/cable,
|
||||
@@ -32771,6 +32788,26 @@
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/pod/light,
|
||||
/area/station/maintenance/floor1/port/aft)
|
||||
"izL" = (
|
||||
/obj/structure/table,
|
||||
/obj/machinery/button/ticket_machine{
|
||||
pixel_x = -24;
|
||||
pixel_y = -6
|
||||
},
|
||||
/obj/item/stamp/head/hop{
|
||||
pixel_x = 8;
|
||||
pixel_y = 5
|
||||
},
|
||||
/obj/item/flashlight/lamp{
|
||||
pixel_x = -4;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/machinery/button/photobooth{
|
||||
pixel_y = 6;
|
||||
pixel_x = -24
|
||||
},
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/command/heads_quarters/hop)
|
||||
"izN" = (
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
@@ -36954,19 +36991,6 @@
|
||||
/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
|
||||
/turf/open/floor/engine/co2,
|
||||
/area/station/engineering/atmos)
|
||||
"jEw" = (
|
||||
/obj/machinery/computer/department_orders/engineering{
|
||||
department_delivery_areas = list(/area/station/engineering/lobby)
|
||||
},
|
||||
/obj/effect/turf_decal/tile/brown{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/yellow{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/siding/thinplating_new,
|
||||
/turf/open/floor/iron/dark/textured,
|
||||
/area/station/engineering/lobby)
|
||||
"jEO" = (
|
||||
/obj/effect/spawner/random/structure/crate,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
@@ -40382,6 +40406,14 @@
|
||||
/obj/machinery/firealarm/directional/north,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/science/cytology)
|
||||
"kwS" = (
|
||||
/obj/effect/turf_decal/tile/purple/opposingcorners,
|
||||
/obj/effect/turf_decal/siding/brown{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table,
|
||||
/turf/open/floor/iron/white,
|
||||
/area/station/science/circuits)
|
||||
"kxf" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
@@ -41356,11 +41388,6 @@
|
||||
},
|
||||
/turf/open/floor/iron/white,
|
||||
/area/station/science/lobby)
|
||||
"kJp" = (
|
||||
/obj/structure/table,
|
||||
/obj/effect/turf_decal/tile/purple/opposingcorners,
|
||||
/turf/open/floor/iron/white,
|
||||
/area/station/science/circuits)
|
||||
"kJq" = (
|
||||
/turf/open/floor/iron/kitchen,
|
||||
/area/station/service/kitchen/abandoned)
|
||||
@@ -43552,21 +43579,6 @@
|
||||
/obj/effect/spawner/random/maintenance/two,
|
||||
/turf/open/floor/pod/light,
|
||||
/area/station/maintenance/floor4/starboard/aft)
|
||||
"lku" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
dir = 10
|
||||
},
|
||||
/obj/machinery/computer/department_orders/security{
|
||||
dir = 8
|
||||
},
|
||||
/obj/item/radio/intercom/directional/east,
|
||||
/obj/machinery/button/door/directional/south{
|
||||
id = "secmechbay";
|
||||
name = "Security Mech Garage Door Controls";
|
||||
req_access = list("security")
|
||||
},
|
||||
/turf/open/floor/iron,
|
||||
/area/station/security/office)
|
||||
"lkA" = (
|
||||
/obj/effect/turf_decal/trimline/red/filled/line,
|
||||
/obj/structure/disposalpipe/segment{
|
||||
@@ -50785,13 +50797,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/station/medical/abandoned)
|
||||
"naW" = (
|
||||
/obj/machinery/computer/department_orders/service{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/bot,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/hallway/secondary/service)
|
||||
"nba" = (
|
||||
/obj/effect/turf_decal/trimline/green/filled/line{
|
||||
dir = 10
|
||||
@@ -50879,6 +50884,14 @@
|
||||
},
|
||||
/turf/open/floor/iron/white/herringbone,
|
||||
/area/station/medical/patients_rooms)
|
||||
"nck" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 5
|
||||
},
|
||||
/turf/open/floor/iron/dark/side{
|
||||
dir = 8
|
||||
},
|
||||
/area/station/security/office)
|
||||
"ncl" = (
|
||||
/obj/structure/dresser,
|
||||
/turf/open/floor/carpet/red,
|
||||
@@ -54369,6 +54382,13 @@
|
||||
},
|
||||
/turf/open/floor/pod/dark,
|
||||
/area/station/maintenance/floor3/port)
|
||||
"nUW" = (
|
||||
/obj/effect/turf_decal/tile/brown/opposingcorners,
|
||||
/obj/effect/turf_decal/tile/brown/opposingcorners,
|
||||
/obj/effect/turf_decal/stripes/white/line,
|
||||
/obj/structure/table,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/science/circuits)
|
||||
"nVi" = (
|
||||
/obj/structure/cable,
|
||||
/obj/structure/disposalpipe/segment{
|
||||
@@ -54430,14 +54450,6 @@
|
||||
},
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/service/hydroponics)
|
||||
"nVN" = (
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/effect/turf_decal/tile/red/diagonal_edge,
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/photobooth/security,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/security/prison/visit)
|
||||
"nVP" = (
|
||||
/obj/structure/cable/multilayer/multiz,
|
||||
/turf/open/floor/plating,
|
||||
@@ -57773,11 +57785,6 @@
|
||||
/obj/machinery/light/dim/directional/west,
|
||||
/turf/open/floor/wood/large,
|
||||
/area/station/security/prison/safe)
|
||||
"oPv" = (
|
||||
/obj/machinery/component_printer,
|
||||
/obj/effect/turf_decal/tile/purple/opposingcorners,
|
||||
/turf/open/floor/iron/white,
|
||||
/area/station/science/circuits)
|
||||
"oPA" = (
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/effect/turf_decal/tile/blue/fourcorners,
|
||||
@@ -65015,6 +65022,10 @@
|
||||
/obj/machinery/newscaster/directional/north,
|
||||
/turf/open/floor/wood,
|
||||
/area/station/medical/psychology)
|
||||
"qGy" = (
|
||||
/obj/machinery/airalarm/directional/east,
|
||||
/turf/open/floor/iron,
|
||||
/area/station/hallway/secondary/service)
|
||||
"qGC" = (
|
||||
/obj/effect/spawner/structure/window/hollow/end{
|
||||
dir = 8
|
||||
@@ -68445,11 +68456,6 @@
|
||||
dir = 8
|
||||
},
|
||||
/area/station/hallway/floor1/aft)
|
||||
"rDw" = (
|
||||
/turf/open/floor/iron/dark/side{
|
||||
dir = 4
|
||||
},
|
||||
/area/station/security/office)
|
||||
"rDD" = (
|
||||
/obj/structure/transit_tube/curved/flipped{
|
||||
dir = 8
|
||||
@@ -69186,6 +69192,14 @@
|
||||
"rPi" = (
|
||||
/turf/closed/wall,
|
||||
/area/station/cargo/office)
|
||||
"rPn" = (
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/effect/turf_decal/tile/red/diagonal_edge,
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/photobooth/security,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/security/prison/visit)
|
||||
"rPr" = (
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
@@ -69416,6 +69430,23 @@
|
||||
dir = 4
|
||||
},
|
||||
/area/station/engineering/storage/tech)
|
||||
"rSl" = (
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/machinery/duct,
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/security/office)
|
||||
"rSu" = (
|
||||
/obj/structure/railing/corner{
|
||||
dir = 1
|
||||
@@ -70842,6 +70873,11 @@
|
||||
dir = 8
|
||||
},
|
||||
/area/station/security/courtroom)
|
||||
"snB" = (
|
||||
/obj/effect/turf_decal/tile/purple/opposingcorners,
|
||||
/obj/structure/table,
|
||||
/turf/open/floor/iron/white,
|
||||
/area/station/science/circuits)
|
||||
"snI" = (
|
||||
/obj/effect/turf_decal/trimline/green/arrow_ccw,
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
|
||||
@@ -74285,16 +74321,6 @@
|
||||
/obj/effect/landmark/start/botanist,
|
||||
/turf/open/floor/iron,
|
||||
/area/station/service/hydroponics)
|
||||
"tfk" = (
|
||||
/obj/machinery/computer/department_orders/science{
|
||||
department_delivery_areas = list(/area/station/science/lobby,/area/station/science/robotics/lab)
|
||||
},
|
||||
/obj/effect/turf_decal/tile/brown/opposingcorners,
|
||||
/obj/effect/turf_decal/tile/brown/opposingcorners,
|
||||
/obj/effect/turf_decal/stripes/white/line,
|
||||
/obj/machinery/light/cold/no_nightlight/directional/north,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/science/circuits)
|
||||
"tfo" = (
|
||||
/obj/effect/turf_decal/trimline/white/line{
|
||||
dir = 8
|
||||
@@ -74728,15 +74754,6 @@
|
||||
},
|
||||
/turf/open/floor/circuit,
|
||||
/area/station/science/xenobiology)
|
||||
"tlX" = (
|
||||
/obj/machinery/modular_computer/preset/civilian{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/iron/dark/smooth_large,
|
||||
/area/station/science/lobby)
|
||||
"tlZ" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
|
||||
dir = 8
|
||||
@@ -78100,18 +78117,6 @@
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating,
|
||||
/area/station/medical/abandoned)
|
||||
"ufI" = (
|
||||
/obj/machinery/firealarm/directional/south,
|
||||
/obj/machinery/camera/directional/south{
|
||||
c_tag = "Security - Office Aft"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/obj/structure/cable,
|
||||
/obj/effect/turf_decal/tile/red/fourcorners,
|
||||
/obj/item/kirbyplants/organic/plant10,
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/security/office)
|
||||
"ufL" = (
|
||||
/obj/structure/railing/corner{
|
||||
dir = 1
|
||||
@@ -78880,26 +78885,6 @@
|
||||
/obj/machinery/vending/wallmed/directional/west,
|
||||
/turf/open/floor/iron/white,
|
||||
/area/station/hallway/floor2/fore)
|
||||
"uqF" = (
|
||||
/obj/structure/table,
|
||||
/obj/machinery/button/ticket_machine{
|
||||
pixel_x = -24;
|
||||
pixel_y = -6
|
||||
},
|
||||
/obj/item/stamp/head/hop{
|
||||
pixel_x = 8;
|
||||
pixel_y = 5
|
||||
},
|
||||
/obj/item/flashlight/lamp{
|
||||
pixel_x = -4;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/machinery/button/photobooth{
|
||||
pixel_y = 6;
|
||||
pixel_x = -24
|
||||
},
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/command/heads_quarters/hop)
|
||||
"uqT" = (
|
||||
/obj/effect/turf_decal/trimline/green/filled/line{
|
||||
dir = 6
|
||||
@@ -82554,6 +82539,12 @@
|
||||
/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
|
||||
/turf/open/floor/pod/light,
|
||||
/area/station/maintenance/floor1/starboard/fore)
|
||||
"vnq" = (
|
||||
/obj/effect/turf_decal/tile/purple/opposingcorners,
|
||||
/obj/item/radio/intercom/directional/south,
|
||||
/obj/machinery/bci_implanter,
|
||||
/turf/open/floor/iron/white,
|
||||
/area/station/science/circuits)
|
||||
"vnt" = (
|
||||
/obj/effect/decal/cleanable/blood/old,
|
||||
/turf/open/floor/plating,
|
||||
@@ -83132,6 +83123,11 @@
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/open/floor/carpet/red,
|
||||
/area/station/service/theater)
|
||||
"vti" = (
|
||||
/obj/effect/turf_decal/tile/purple/opposingcorners,
|
||||
/obj/structure/rack,
|
||||
/turf/open/floor/iron/white,
|
||||
/area/station/science/circuits)
|
||||
"vtj" = (
|
||||
/obj/structure/table,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
@@ -83232,13 +83228,6 @@
|
||||
},
|
||||
/turf/open/floor/iron/dark,
|
||||
/area/station/science/ordnance/testlab)
|
||||
"vuC" = (
|
||||
/obj/machinery/light/directional/south,
|
||||
/obj/machinery/computer/order_console/cook{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/iron,
|
||||
/area/station/hallway/secondary/service)
|
||||
"vuD" = (
|
||||
/obj/effect/turf_decal/trimline/white/filled/line,
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
|
||||
@@ -83274,16 +83263,6 @@
|
||||
},
|
||||
/turf/open/floor/catwalk_floor,
|
||||
/area/station/maintenance/floor3/port/fore)
|
||||
"vuQ" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
dir = 9
|
||||
},
|
||||
/obj/machinery/modular_computer/preset/cargochat/security{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/light/directional/east,
|
||||
/turf/open/floor/iron,
|
||||
/area/station/security/office)
|
||||
"vuU" = (
|
||||
/obj/structure/cable,
|
||||
/obj/structure/disposalpipe/segment{
|
||||
@@ -83776,13 +83755,6 @@
|
||||
/obj/effect/decal/cleanable/wrapping,
|
||||
/turf/open/floor/pod/light,
|
||||
/area/station/maintenance/floor4/starboard/fore)
|
||||
"vAP" = (
|
||||
/obj/machinery/modular_computer/preset/cargochat/service{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/airalarm/directional/east,
|
||||
/turf/open/floor/iron,
|
||||
/area/station/hallway/secondary/service)
|
||||
"vAS" = (
|
||||
/obj/effect/mapping_helpers/airlock/access/any/supply/mining,
|
||||
/obj/machinery/door/airlock/multi_tile/public/glass{
|
||||
@@ -85311,6 +85283,14 @@
|
||||
},
|
||||
/turf/open/floor/iron/checker,
|
||||
/area/station/cargo/miningdock)
|
||||
"vWs" = (
|
||||
/obj/machinery/light/directional/east,
|
||||
/obj/machinery/disposal/bin/tagger,
|
||||
/obj/structure/disposalpipe/trunk{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/iron,
|
||||
/area/station/security/office)
|
||||
"vWw" = (
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/station/security/office)
|
||||
@@ -85344,6 +85324,15 @@
|
||||
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
|
||||
/turf/open/floor/iron/textured_large,
|
||||
/area/station/hallway/secondary/entry)
|
||||
"vWK" = (
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/modular_computer/preset/cargochat/science{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/iron/dark/smooth_large,
|
||||
/area/station/science/lobby)
|
||||
"vWQ" = (
|
||||
/obj/effect/turf_decal/siding/wood{
|
||||
dir = 8
|
||||
@@ -87324,12 +87313,6 @@
|
||||
"wuL" = (
|
||||
/turf/closed/wall,
|
||||
/area/station/commons/dorms/apartment2)
|
||||
"wuM" = (
|
||||
/obj/structure/table,
|
||||
/obj/effect/turf_decal/tile/purple/opposingcorners,
|
||||
/obj/item/radio/intercom/directional/south,
|
||||
/turf/open/floor/iron/white,
|
||||
/area/station/science/circuits)
|
||||
"wuZ" = (
|
||||
/obj/structure/rack,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
@@ -137769,7 +137752,7 @@ wfT
|
||||
wfT
|
||||
wRe
|
||||
wmU
|
||||
jEw
|
||||
gRL
|
||||
nDw
|
||||
bhp
|
||||
jPh
|
||||
@@ -139059,7 +139042,7 @@ fXd
|
||||
pLJ
|
||||
eLQ
|
||||
rBP
|
||||
aGG
|
||||
alG
|
||||
wKT
|
||||
rBP
|
||||
uMl
|
||||
@@ -182213,9 +182196,9 @@ kyM
|
||||
xWf
|
||||
xuv
|
||||
xuv
|
||||
enP
|
||||
oPv
|
||||
kJp
|
||||
kwS
|
||||
snB
|
||||
vti
|
||||
sxl
|
||||
naI
|
||||
lNN
|
||||
@@ -182469,14 +182452,14 @@ bDr
|
||||
bDr
|
||||
ctI
|
||||
xuv
|
||||
agJ
|
||||
nUW
|
||||
hKm
|
||||
sSz
|
||||
sSz
|
||||
sSz
|
||||
kik
|
||||
sSz
|
||||
wuM
|
||||
vnq
|
||||
xuv
|
||||
jBm
|
||||
cNm
|
||||
@@ -182726,7 +182709,7 @@ wwu
|
||||
bFq
|
||||
ctI
|
||||
xuv
|
||||
tfk
|
||||
auj
|
||||
hKm
|
||||
qgQ
|
||||
gsn
|
||||
@@ -182983,7 +182966,7 @@ hrW
|
||||
gLD
|
||||
ctI
|
||||
xuv
|
||||
aGj
|
||||
fAM
|
||||
hKm
|
||||
qTK
|
||||
ifA
|
||||
@@ -183240,7 +183223,7 @@ rua
|
||||
rua
|
||||
cwq
|
||||
xuv
|
||||
ifZ
|
||||
nUW
|
||||
hKm
|
||||
qTK
|
||||
qTK
|
||||
@@ -186076,7 +186059,7 @@ hMV
|
||||
lIL
|
||||
fFu
|
||||
kEF
|
||||
tlX
|
||||
vWK
|
||||
ngk
|
||||
jFJ
|
||||
fko
|
||||
@@ -186353,8 +186336,8 @@ uXA
|
||||
hLz
|
||||
enl
|
||||
ljf
|
||||
naW
|
||||
gqN
|
||||
aZO
|
||||
eEq
|
||||
qbr
|
||||
nNT
|
||||
bMJ
|
||||
@@ -189707,7 +189690,7 @@ wVY
|
||||
sIH
|
||||
hWV
|
||||
kpR
|
||||
aFI
|
||||
bLE
|
||||
lcv
|
||||
aal
|
||||
ydS
|
||||
@@ -189964,7 +189947,7 @@ iGY
|
||||
stS
|
||||
wzJ
|
||||
fXb
|
||||
dmZ
|
||||
dIK
|
||||
lcv
|
||||
cKs
|
||||
cMh
|
||||
@@ -250605,7 +250588,7 @@ gBr
|
||||
sRh
|
||||
tUG
|
||||
ris
|
||||
vuC
|
||||
dIf
|
||||
gyr
|
||||
sng
|
||||
iHx
|
||||
@@ -251890,7 +251873,7 @@ wxM
|
||||
sVv
|
||||
ogg
|
||||
wuC
|
||||
vAP
|
||||
qGy
|
||||
gyr
|
||||
vwc
|
||||
gMz
|
||||
@@ -318437,7 +318420,7 @@ nPE
|
||||
qPv
|
||||
pJV
|
||||
iag
|
||||
uqF
|
||||
izL
|
||||
iqy
|
||||
mKs
|
||||
ryE
|
||||
@@ -318698,7 +318681,7 @@ ipn
|
||||
fpn
|
||||
uGO
|
||||
mCJ
|
||||
dNU
|
||||
hwk
|
||||
btT
|
||||
hIb
|
||||
uSW
|
||||
@@ -319234,8 +319217,8 @@ eOy
|
||||
exp
|
||||
lnl
|
||||
uYM
|
||||
eOy
|
||||
cgv
|
||||
nck
|
||||
ckt
|
||||
eNj
|
||||
ftt
|
||||
eNj
|
||||
@@ -319491,7 +319474,7 @@ kOc
|
||||
kQu
|
||||
nRI
|
||||
aHo
|
||||
hLW
|
||||
rSl
|
||||
iXK
|
||||
xOI
|
||||
cAJ
|
||||
@@ -319748,7 +319731,7 @@ aQS
|
||||
vko
|
||||
mBg
|
||||
dPf
|
||||
rDw
|
||||
mBg
|
||||
pse
|
||||
oQu
|
||||
odH
|
||||
@@ -320005,8 +319988,8 @@ fQA
|
||||
fQA
|
||||
fNA
|
||||
ebz
|
||||
vuQ
|
||||
lku
|
||||
vWs
|
||||
cHA
|
||||
eNj
|
||||
kcw
|
||||
hvb
|
||||
@@ -320261,7 +320244,7 @@ sMB
|
||||
sMB
|
||||
aEh
|
||||
fNA
|
||||
ufI
|
||||
dJm
|
||||
dnU
|
||||
dnU
|
||||
aRU
|
||||
@@ -326689,7 +326672,7 @@ gDx
|
||||
iIb
|
||||
ftZ
|
||||
tBk
|
||||
nVN
|
||||
rPn
|
||||
wKi
|
||||
akt
|
||||
rbr
|
||||
|
||||
+10300
-10306
File diff suppressed because it is too large
Load Diff
@@ -594,28 +594,3 @@
|
||||
/obj/item/circuitboard/computer/exodrone_console
|
||||
name = "Exploration Drone Control Console"
|
||||
build_path = /obj/machinery/computer/exodrone_control_console
|
||||
|
||||
/obj/item/circuitboard/computer/service_orders
|
||||
name = "Service Order"
|
||||
greyscale_colors = CIRCUIT_COLOR_SUPPLY
|
||||
build_path = /obj/machinery/computer/department_orders/service
|
||||
|
||||
/obj/item/circuitboard/computer/engineering_orders
|
||||
name = "Engineering Order"
|
||||
greyscale_colors = CIRCUIT_COLOR_SUPPLY
|
||||
build_path = /obj/machinery/computer/department_orders/engineering
|
||||
|
||||
/obj/item/circuitboard/computer/science_orders
|
||||
name = "Science Order"
|
||||
greyscale_colors = CIRCUIT_COLOR_SUPPLY
|
||||
build_path = /obj/machinery/computer/department_orders/science
|
||||
|
||||
/obj/item/circuitboard/computer/security_orders
|
||||
name = "Security Order"
|
||||
greyscale_colors = CIRCUIT_COLOR_SUPPLY
|
||||
build_path = /obj/machinery/computer/department_orders/security
|
||||
|
||||
/obj/item/circuitboard/computer/medical_orders
|
||||
name = "Medical Order"
|
||||
greyscale_colors = CIRCUIT_COLOR_SUPPLY
|
||||
build_path = /obj/machinery/computer/department_orders/medical
|
||||
|
||||
@@ -1,277 +0,0 @@
|
||||
|
||||
///cooldown for each department, assoc type 2 cooldown. global, so rebuilding the console doesn't refresh the cd
|
||||
GLOBAL_LIST_INIT(department_order_cooldowns, list(
|
||||
/obj/machinery/computer/department_orders/service = 0,
|
||||
/obj/machinery/computer/department_orders/engineering = 0,
|
||||
/obj/machinery/computer/department_orders/science = 0,
|
||||
/obj/machinery/computer/department_orders/security = 0,
|
||||
/obj/machinery/computer/department_orders/medical = 0,
|
||||
))
|
||||
|
||||
/obj/machinery/computer/department_orders
|
||||
name = "department order console"
|
||||
desc = "Used to order supplies for a department. Crates ordered this way will be locked until they reach their destination."
|
||||
icon_screen = "supply"
|
||||
light_color = COLOR_BRIGHT_ORANGE
|
||||
///reference to the order we've made UNTIL it gets sent on the supply shuttle. this is so heads can cancel it
|
||||
var/datum/supply_order/department_order
|
||||
///access required to override an order - this should be a head of staff for the department
|
||||
var/override_access
|
||||
///where this computer expects deliveries to need to go, passed onto orders. it will see if the FIRST one exists, then try a fallback. if no fallbacks it throws an error
|
||||
var/list/department_delivery_areas = list()
|
||||
///which groups this computer can order from
|
||||
var/list/dep_groups = list()
|
||||
/// If this departmental order console currently is on cooldown.
|
||||
var/on_cooldown = FALSE
|
||||
|
||||
/// Our radio object we use to talk to our department.
|
||||
var/obj/item/radio/radio
|
||||
/// The radio key typepath that will be instantiated and inserted into our radio.
|
||||
var/obj/item/encryptionkey/radio_key_typepath
|
||||
/// The radio channel we will speak into by default.
|
||||
var/radio_channel
|
||||
|
||||
/obj/machinery/computer/department_orders/Initialize(mapload, obj/item/circuitboard/board)
|
||||
. = ..()
|
||||
// All maps should have ONLY ONE of each order console roundstart
|
||||
REGISTER_REQUIRED_MAP_ITEM(1, 1)
|
||||
|
||||
if (radio_channel && radio_key_typepath)
|
||||
radio = new(src)
|
||||
radio.keyslot = new radio_key_typepath
|
||||
radio.subspace_transmission = TRUE
|
||||
radio.canhear_range = 0
|
||||
radio.recalculateChannels()
|
||||
|
||||
if(mapload) //check for mapping errors
|
||||
for(var/delivery_area_type in department_delivery_areas)
|
||||
if(GLOB.areas_by_type[delivery_area_type])
|
||||
return
|
||||
//every area fallback didn't exist on this map so throw a mapping error and set some generic area that uuuh please exist okay
|
||||
log_mapping("[src] has no valid areas to deliver to on this map, add some more fallback areas to its \"department_delivery_areas\" var.")
|
||||
department_delivery_areas = list(/area/station/hallway/primary/central) //if this doesn't exist like honestly fuck your map man
|
||||
|
||||
/obj/machinery/computer/department_orders/Destroy()
|
||||
QDEL_NULL(radio)
|
||||
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/department_orders/ui_interact(mob/user, datum/tgui/ui)
|
||||
. = ..()
|
||||
ui = SStgui.try_update_ui(user, src, ui)
|
||||
if(!ui)
|
||||
ui = new(user, src, "DepartmentOrders")
|
||||
ui.open()
|
||||
|
||||
/obj/machinery/computer/department_orders/ui_data(mob/user)
|
||||
var/list/data = list()
|
||||
var/cooldown = GLOB.department_order_cooldowns[type] - world.time
|
||||
if(cooldown < 0)
|
||||
data["time_left"] = 0
|
||||
else
|
||||
data["time_left"] = DisplayTimeText(cooldown, 1)
|
||||
data["can_override"] = department_order ? TRUE : FALSE
|
||||
return data
|
||||
|
||||
/obj/machinery/computer/department_orders/ui_static_data(mob/user)
|
||||
var/list/data = list()
|
||||
var/list/supply_data = list() //each item in this needs to be a Category
|
||||
for(var/pack_key in SSshuttle.supply_packs)
|
||||
var/datum/supply_pack/pack = SSshuttle.supply_packs[pack_key]
|
||||
//skip groups we do not offer
|
||||
if(!(pack.group in dep_groups))
|
||||
continue
|
||||
//find which group this belongs to, make the group if it doesn't exist
|
||||
var/list/target_group
|
||||
for(var/list/possible_group in supply_data)
|
||||
if(possible_group["name"] == pack.group)
|
||||
target_group = possible_group
|
||||
break
|
||||
if(!target_group)
|
||||
target_group = list(
|
||||
"name" = pack.group,
|
||||
"packs" = list(),
|
||||
)
|
||||
supply_data += list(target_group)
|
||||
//skip packs we should not show, even if we should show the group
|
||||
if((pack.hidden && !(obj_flags & EMAGGED)) || (pack.special && !pack.special_enabled) || pack.drop_pod_only || pack.goody)
|
||||
continue
|
||||
//finally the pack data itself
|
||||
target_group["packs"] += list(list(
|
||||
"name" = pack.name,
|
||||
"cost" = pack.get_cost(),
|
||||
"id" = pack.id,
|
||||
"desc" = pack.desc || pack.name, // If there is a description, use it. Otherwise use the pack's name.
|
||||
))
|
||||
data["supplies"] = supply_data
|
||||
return data
|
||||
|
||||
/obj/machinery/computer/department_orders/ui_act(action, list/params)
|
||||
. = ..()
|
||||
|
||||
if(!isliving(usr))
|
||||
return
|
||||
var/mob/living/orderer = usr
|
||||
|
||||
var/obj/item/card/id/id_card = orderer.get_idcard(hand_first = TRUE)
|
||||
|
||||
//needs to come BEFORE preventing actions!
|
||||
if(action == "override_order")
|
||||
if(!(override_access in id_card.GetAccess()))
|
||||
balloon_alert(usr, "requires head of staff access!")
|
||||
playsound(src, 'sound/machines/buzz-sigh.ogg', 30, TRUE)
|
||||
return
|
||||
|
||||
if(department_order && (department_order in SSshuttle.shopping_list))
|
||||
GLOB.department_order_cooldowns[type] = 0
|
||||
SSshuttle.shopping_list -= department_order
|
||||
department_order = null
|
||||
UnregisterSignal(SSshuttle, COMSIG_SUPPLY_SHUTTLE_BUY)
|
||||
return TRUE
|
||||
|
||||
if(GLOB.department_order_cooldowns[type] > world.time)
|
||||
return
|
||||
|
||||
if(!check_access(id_card))
|
||||
balloon_alert(usr, "access denied!")
|
||||
playsound(src, 'sound/machines/buzz-sigh.ogg', 30, TRUE)
|
||||
return
|
||||
|
||||
. = TRUE
|
||||
var/id = params["id"]
|
||||
id = text2path(id) || id
|
||||
var/datum/supply_pack/pack = SSshuttle.supply_packs[id]
|
||||
if(!pack)
|
||||
say("Something went wrong!")
|
||||
CRASH("requested supply pack id \"[id]\" not found!")
|
||||
if((pack.hidden && !(obj_flags & EMAGGED)) || (pack.special && !pack.special_enabled) || pack.drop_pod_only || pack.goody)
|
||||
return
|
||||
var/name = "*None Provided*"
|
||||
var/rank = "*None Provided*"
|
||||
var/ckey = usr.ckey
|
||||
if(ishuman(usr))
|
||||
var/mob/living/carbon/human/human_orderer = usr
|
||||
name = human_orderer.get_authentification_name()
|
||||
rank = human_orderer.get_assignment(hand_first = TRUE)
|
||||
else if(HAS_SILICON_ACCESS(usr))
|
||||
name = usr.real_name
|
||||
rank = "Silicon"
|
||||
//already have a signal to finalize the order
|
||||
var/already_signalled = department_order ? TRUE : FALSE
|
||||
var/chosen_delivery_area
|
||||
for(var/delivery_area_type in department_delivery_areas)
|
||||
if(GLOB.areas_by_type[delivery_area_type])
|
||||
chosen_delivery_area = delivery_area_type
|
||||
break
|
||||
|
||||
if(SSshuttle.supply.get_order_count(pack) == OVER_ORDER_LIMIT)
|
||||
playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE)
|
||||
say("ERROR: No more then [CARGO_MAX_ORDER] of any pack may be ordered at once")
|
||||
return
|
||||
|
||||
department_order = new(
|
||||
pack = pack,
|
||||
orderer = name,
|
||||
orderer_rank = rank,
|
||||
orderer_ckey = ckey,
|
||||
reason = "",
|
||||
paying_account = null,
|
||||
department_destination = chosen_delivery_area,
|
||||
coupon = null,
|
||||
manifest_can_fail = FALSE,
|
||||
)
|
||||
SSshuttle.shopping_list += department_order
|
||||
if(!already_signalled)
|
||||
RegisterSignal(SSshuttle, COMSIG_SUPPLY_SHUTTLE_BUY, PROC_REF(finalize_department_order))
|
||||
say("Order processed. Cargo will deliver the crate when it comes in on their shuttle. NOTICE: Heads of staff may override the order.")
|
||||
calculate_cooldown(pack.cost)
|
||||
|
||||
///signal when the supply shuttle begins to spawn orders. we forget the current order preventing it from being overridden (since it's already past the point of no return on undoing the order)
|
||||
/obj/machinery/computer/department_orders/proc/finalize_department_order(datum/subsystem)
|
||||
SIGNAL_HANDLER
|
||||
if(department_order && (department_order in SSshuttle.shopping_list))
|
||||
department_order = null
|
||||
UnregisterSignal(subsystem, COMSIG_SUPPLY_SHUTTLE_BUY)
|
||||
|
||||
/obj/machinery/computer/department_orders/proc/calculate_cooldown(credits)
|
||||
//minimum almost the lowest value of a crate
|
||||
var/min = CARGO_CRATE_VALUE * 1.6
|
||||
//maximum fairly expensive crate at 3000
|
||||
var/max = CARGO_CRATE_VALUE * 15
|
||||
credits = clamp(credits, min, max)
|
||||
var/time_y = (credits - min)/(max - min) + 1 //convert to between 1 and 2
|
||||
time_y = 10 MINUTES * time_y
|
||||
GLOB.department_order_cooldowns[type] = world.time + time_y
|
||||
|
||||
/obj/machinery/computer/department_orders/process()
|
||||
. = ..()
|
||||
if (!.)
|
||||
return FALSE
|
||||
|
||||
if (GLOB.department_order_cooldowns[type] > world.time)
|
||||
on_cooldown = TRUE
|
||||
else if (on_cooldown)
|
||||
radio?.talk_into(src, "Order cooldown has expired! A new order may now be placed!", radio_channel)
|
||||
playsound(src, 'sound/machines/ping.ogg', 30, TRUE)
|
||||
on_cooldown = FALSE
|
||||
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/computer/department_orders/service
|
||||
name = "service order console"
|
||||
circuit = /obj/item/circuitboard/computer/service_orders
|
||||
department_delivery_areas = list(/area/station/hallway/secondary/service, /area/station/service/bar/atrium)
|
||||
override_access = ACCESS_HOP
|
||||
req_one_access = list(ACCESS_SERVICE)
|
||||
dep_groups = list("Service", "Food & Hydroponics", "Livestock", "Costumes & Toys")
|
||||
radio_key_typepath = /obj/item/encryptionkey/headset_service
|
||||
radio_channel = RADIO_CHANNEL_SERVICE
|
||||
|
||||
/obj/machinery/computer/department_orders/engineering
|
||||
name = "engineering order console"
|
||||
circuit = /obj/item/circuitboard/computer/engineering_orders
|
||||
department_delivery_areas = list(/area/station/engineering/main)
|
||||
override_access = ACCESS_CE
|
||||
req_one_access = REGION_ACCESS_ENGINEERING
|
||||
dep_groups = list("Engineering", "Engine Construction", "Canisters & Materials")
|
||||
radio_key_typepath = /obj/item/encryptionkey/headset_eng
|
||||
radio_channel = RADIO_CHANNEL_ENGINEERING
|
||||
|
||||
/obj/machinery/computer/department_orders/science
|
||||
name = "science order console"
|
||||
circuit = /obj/item/circuitboard/computer/science_orders
|
||||
department_delivery_areas = list(/area/station/science/research)
|
||||
override_access = ACCESS_RD
|
||||
req_one_access = REGION_ACCESS_RESEARCH
|
||||
dep_groups = list("Science", "Livestock", "Canisters & Materials")
|
||||
radio_key_typepath = /obj/item/encryptionkey/headset_sci
|
||||
radio_channel = RADIO_CHANNEL_SCIENCE
|
||||
|
||||
/obj/machinery/computer/department_orders/security
|
||||
name = "security order console"
|
||||
circuit = /obj/item/circuitboard/computer/security_orders
|
||||
department_delivery_areas = list(
|
||||
/area/station/security/office,
|
||||
/area/station/security/brig,
|
||||
/area/station/security/brig/upper,
|
||||
)
|
||||
override_access = ACCESS_HOS
|
||||
req_one_access = REGION_ACCESS_SECURITY
|
||||
dep_groups = list("Security", "Armory")
|
||||
radio_key_typepath = /obj/item/encryptionkey/headset_sec
|
||||
radio_channel = RADIO_CHANNEL_SECURITY
|
||||
|
||||
/obj/machinery/computer/department_orders/medical
|
||||
name = "medical order console"
|
||||
circuit = /obj/item/circuitboard/computer/medical_orders
|
||||
department_delivery_areas = list(
|
||||
/area/station/medical/medbay/central,
|
||||
/area/station/medical/medbay,
|
||||
/area/station/medical/treatment_center,
|
||||
/area/station/medical/storage,
|
||||
)
|
||||
override_access = ACCESS_CMO
|
||||
req_one_access = REGION_ACCESS_MEDBAY
|
||||
dep_groups = list("Medical")
|
||||
radio_key_typepath = /obj/item/encryptionkey/headset_med
|
||||
radio_channel = RADIO_CHANNEL_MEDICAL
|
||||
@@ -18,7 +18,24 @@
|
||||
var/list/department_jobs = list()
|
||||
/// For separatists, what independent name prefix does their nation get named?
|
||||
var/list/nation_prefixes = list()
|
||||
/// List of /area types that are considered part of this department's "delivery" area.
|
||||
/// Acts as a priority system, where first items are picked first.
|
||||
var/list/department_delivery_areas = list()
|
||||
/// List of categories in the cargo console that are associated with this department.
|
||||
var/list/associated_cargo_groups = list()
|
||||
/// The single access associated with the head of staff of this department.
|
||||
var/head_of_staff_access
|
||||
/// A list of generic access flags people in this department generally have.
|
||||
var/list/department_access = list()
|
||||
|
||||
/datum/job_department/New()
|
||||
. = ..()
|
||||
for(var/delivery_area_type in department_delivery_areas)
|
||||
if(GLOB.areas_by_type[delivery_area_type])
|
||||
return
|
||||
//every area fallback didn't exist on this map so throw a mapping error and set some generic area that uuuh please exist okay
|
||||
log_mapping("[type] has no valid areas to deliver to on this map, add some more fallback areas to its \"department_delivery_areas\" var.")
|
||||
department_delivery_areas = list(/area/station/hallway/primary/central) //if this doesn't exist like honestly fuck your map man
|
||||
|
||||
/// Handles adding jobs to the department and setting up the job bitflags.
|
||||
/datum/job_department/proc/add_job(datum/job/job)
|
||||
@@ -76,6 +93,14 @@
|
||||
label_class = "security"
|
||||
ui_color = "#d46a78"
|
||||
nation_prefixes = list("Securi", "Beepski", "Shitcuri", "Red", "Stunba", "Flashbango", "Flasha", "Stanfordi")
|
||||
department_delivery_areas = list(
|
||||
/area/station/security/office,
|
||||
/area/station/security/brig,
|
||||
/area/station/security/brig/upper,
|
||||
)
|
||||
associated_cargo_groups = list("Security", "Armory")
|
||||
head_of_staff_access = ACCESS_HOS
|
||||
department_access = REGION_ACCESS_SECURITY
|
||||
|
||||
/datum/job_department/engineering
|
||||
department_name = DEPARTMENT_ENGINEERING
|
||||
@@ -86,7 +111,10 @@
|
||||
label_class = "engineering"
|
||||
ui_color = "#dfb567"
|
||||
nation_prefixes = list("Atomo", "Engino", "Power", "Teleco")
|
||||
|
||||
department_delivery_areas = list(/area/station/engineering/main)
|
||||
associated_cargo_groups = list("Engineering", "Engine Construction", "Canisters & Materials")
|
||||
head_of_staff_access = ACCESS_CE
|
||||
department_access = REGION_ACCESS_ENGINEERING
|
||||
|
||||
/datum/job_department/medical
|
||||
department_name = DEPARTMENT_MEDICAL
|
||||
@@ -97,7 +125,15 @@
|
||||
label_class = "medical"
|
||||
ui_color = "#65b2bd"
|
||||
nation_prefixes = list("Mede", "Healtha", "Recova", "Chemi", "Viro", "Psych")
|
||||
|
||||
department_delivery_areas = list(
|
||||
/area/station/medical/medbay/central,
|
||||
/area/station/medical/medbay,
|
||||
/area/station/medical/treatment_center,
|
||||
/area/station/medical/storage,
|
||||
)
|
||||
associated_cargo_groups = list("Medical")
|
||||
head_of_staff_access = ACCESS_CMO
|
||||
department_access = REGION_ACCESS_MEDBAY
|
||||
|
||||
/datum/job_department/science
|
||||
department_name = DEPARTMENT_SCIENCE
|
||||
@@ -108,6 +144,10 @@
|
||||
label_class = "science"
|
||||
ui_color = "#c973c9"
|
||||
nation_prefixes = list("Sci", "Griffa", "Geneti", "Explosi", "Mecha", "Xeno", "Nani", "Cyto")
|
||||
department_delivery_areas = list(/area/station/science/research)
|
||||
associated_cargo_groups = list("Science", "Livestock", "Canisters & Materials")
|
||||
head_of_staff_access = ACCESS_RD
|
||||
department_access = REGION_ACCESS_RESEARCH
|
||||
|
||||
|
||||
/datum/job_department/cargo
|
||||
@@ -119,7 +159,8 @@
|
||||
label_class = "supply"
|
||||
ui_color = "#cf9c6c"
|
||||
nation_prefixes = list("Cargo", "Guna", "Suppli", "Mule", "Crate", "Ore", "Mini", "Shaf")
|
||||
|
||||
head_of_staff_access = ACCESS_QM
|
||||
department_access = REGION_ACCESS_SUPPLY
|
||||
|
||||
/datum/job_department/service
|
||||
department_name = DEPARTMENT_SERVICE
|
||||
@@ -130,7 +171,10 @@
|
||||
label_class = "service"
|
||||
ui_color = "#7cc46a"
|
||||
nation_prefixes = list("Honka", "Boozo", "Fatu", "Danka", "Mimi", "Libra", "Jani", "Religi")
|
||||
|
||||
department_delivery_areas = list(/area/station/hallway/secondary/service, /area/station/service/bar/atrium)
|
||||
associated_cargo_groups = list("Service", "Food & Hydroponics", "Livestock", "Costumes & Toys")
|
||||
head_of_staff_access = ACCESS_HOP
|
||||
department_access = list(ACCESS_SERVICE)
|
||||
|
||||
/datum/job_department/silicon
|
||||
department_name = DEPARTMENT_SILICON
|
||||
|
||||
@@ -80,42 +80,69 @@
|
||||
|
||||
// ===== CARGO CHAT CONSOLES =====
|
||||
/obj/machinery/modular_computer/preset/cargochat
|
||||
name = "cargo chatroom console"
|
||||
desc = "A stationary computer. This one comes preloaded with a chatroom for your cargo requests."
|
||||
name = "cargo interfacing console"
|
||||
desc = "A stationary computer that comes pre-loaded with software to interface with the cargo department."
|
||||
starting_programs = list(
|
||||
/datum/computer_file/program/chatclient,
|
||||
)
|
||||
|
||||
///Used in Initialize to set the chat client name.
|
||||
var/console_department
|
||||
/// What department type is assigned to this console?
|
||||
var/datum/job_department/department_type
|
||||
|
||||
/obj/machinery/modular_computer/preset/cargochat/Initialize(mapload)
|
||||
add_starting_software()
|
||||
. = ..()
|
||||
setup_starting_software()
|
||||
REGISTER_REQUIRED_MAP_ITEM(1, 1)
|
||||
if(department_type)
|
||||
name = "[lowertext(initial(department_type.department_name))] [name]"
|
||||
cpu.name = name
|
||||
|
||||
/obj/machinery/modular_computer/preset/cargochat/proc/add_starting_software()
|
||||
starting_programs += /datum/computer_file/program/department_order
|
||||
|
||||
/obj/machinery/modular_computer/preset/cargochat/proc/setup_starting_software()
|
||||
if(!department_type)
|
||||
return
|
||||
|
||||
var/datum/computer_file/program/chatclient/chatprogram = cpu.find_file_by_name("ntnrc_client")
|
||||
chatprogram.username = "[lowertext(console_department)]_department"
|
||||
cpu.active_program = chatprogram
|
||||
chatprogram.username = "[lowertext(initial(department_type.department_name))]_department"
|
||||
cpu.idle_threads += chatprogram
|
||||
|
||||
var/datum/computer_file/program/department_order/orderprogram = cpu.find_file_by_name("dept_order")
|
||||
orderprogram.set_linked_department(department_type)
|
||||
cpu.active_program = orderprogram
|
||||
update_appearance(UPDATE_ICON)
|
||||
|
||||
/obj/machinery/modular_computer/preset/cargochat/service
|
||||
console_department = "Service"
|
||||
department_type = /datum/job_department/service
|
||||
|
||||
/obj/machinery/modular_computer/preset/cargochat/engineering
|
||||
console_department = "Engineering"
|
||||
department_type = /datum/job_department/engineering
|
||||
|
||||
/obj/machinery/modular_computer/preset/cargochat/science
|
||||
console_department = "Science"
|
||||
department_type = /datum/job_department/science
|
||||
|
||||
/obj/machinery/modular_computer/preset/cargochat/security
|
||||
console_department = "Security"
|
||||
department_type = /datum/job_department/security
|
||||
|
||||
/obj/machinery/modular_computer/preset/cargochat/medical
|
||||
console_department = "Medical"
|
||||
department_type = /datum/job_department/medical
|
||||
|
||||
|
||||
//ONE PER MAP PLEASE, IT MAKES A CARGOBUS FOR EACH ONE OF THESE
|
||||
/obj/machinery/modular_computer/preset/cargochat/cargo
|
||||
console_department = "Cargo"
|
||||
name = "department chatroom console"
|
||||
desc = "A stationary computer. This one comes preloaded with a chatroom for incoming cargo requests. You may moderate it from this computer."
|
||||
department_type = /datum/job_department/cargo
|
||||
name = "departmental interfacing console"
|
||||
desc = "A stationary computer that comes pre-loaded with software to interface with incoming departmental cargo requests."
|
||||
|
||||
/obj/machinery/modular_computer/preset/cargochat/cargo/add_starting_software()
|
||||
starting_programs += /datum/computer_file/program/bounty_board
|
||||
starting_programs += /datum/computer_file/program/budgetorders
|
||||
starting_programs += /datum/computer_file/program/shipping
|
||||
|
||||
/obj/machinery/modular_computer/preset/cargochat/cargo/setup_starting_software()
|
||||
var/datum/computer_file/program/chatclient/chatprogram = cpu.find_file_by_name("ntnrc_client")
|
||||
cpu.active_program = chatprogram
|
||||
update_appearance(UPDATE_ICON)
|
||||
// Rest of the chat program setup is done in LateInit
|
||||
|
||||
/obj/machinery/modular_computer/preset/cargochat/cargo/LateInitialize()
|
||||
. = ..()
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
can_run_on_flags = PROGRAM_LAPTOP | PROGRAM_PDA
|
||||
size = 10
|
||||
tgui_id = "NtosCargo"
|
||||
program_icon = FA_ICON_CART_FLATBED
|
||||
///Are you actually placing orders with it?
|
||||
var/requestonly = TRUE
|
||||
///Can the tablet see or buy illegal stuff?
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
filename = "ntnrc_client"
|
||||
filedesc = "Chat Client"
|
||||
downloader_category = PROGRAM_CATEGORY_DEVICE
|
||||
program_open_overlay = "command"
|
||||
extended_desc = "This program allows communication over NTNRC network"
|
||||
program_open_overlay = "text"
|
||||
extended_desc = "This program allows communication over NTNRC network."
|
||||
size = 8
|
||||
ui_header = "ntnrc_idle.gif"
|
||||
program_flags = PROGRAM_ON_NTNET_STORE | PROGRAM_REQUIRES_NTNET
|
||||
tgui_id = "NtosNetChat"
|
||||
program_icon = "comment-alt"
|
||||
program_icon = FA_ICON_COMMENT_ALT
|
||||
alert_able = TRUE
|
||||
|
||||
///The user's screen name.
|
||||
|
||||
@@ -0,0 +1,274 @@
|
||||
/datum/computer_file/program/department_order
|
||||
filename = "dept_order"
|
||||
filedesc = "Departmental Orders"
|
||||
can_run_on_flags = PROGRAM_CONSOLE
|
||||
downloader_category = PROGRAM_CATEGORY_SUPPLY
|
||||
program_open_overlay = "request"
|
||||
extended_desc = "Allows for departments to order supplied from Cargo for free, with a cooldown between orders."
|
||||
size = 10
|
||||
tgui_id = "NtosDeptOrder"
|
||||
program_icon = FA_ICON_CART_FLATBED
|
||||
alert_able = TRUE
|
||||
|
||||
// Filled via set_linked_department. Also serves as "who can cancel the order".
|
||||
download_access = list(ACCESS_COMMAND)
|
||||
// Anyone can open, not everyone can use.
|
||||
run_access = list()
|
||||
/// Filled via set_linked_department. Serves as "who can place orders".
|
||||
VAR_PRIVATE/list/use_access = list()
|
||||
|
||||
/// The department we are linked to, typepath.
|
||||
VAR_PRIVATE/datum/job_department/linked_department
|
||||
/// Stores the time when we can next place an order for each department.
|
||||
VAR_PRIVATE/static/list/department_cooldowns = list(
|
||||
/datum/job_department/engineering = 0,
|
||||
/datum/job_department/medical = 0,
|
||||
/datum/job_department/science = 0,
|
||||
/datum/job_department/security = 0,
|
||||
/datum/job_department/service = 0,
|
||||
)
|
||||
/// Reference to the order we've made UNTIL it gets sent on the supply shuttle. this is so heads can cancel it
|
||||
VAR_PRIVATE/datum/supply_order/department_order
|
||||
/// Our radio object we use to talk to our department.
|
||||
VAR_PRIVATE/obj/item/radio/radio
|
||||
/// The radio channel we will speak into by default.
|
||||
VAR_PRIVATE/radio_channel
|
||||
/// Maps what department gets what encryption key
|
||||
/// I could've put this on the job department datum but it felt unnecessary
|
||||
VAR_PRIVATE/static/list/dept_to_radio = list(
|
||||
/datum/job_department/engineering = /obj/item/encryptionkey/headset_eng,
|
||||
/datum/job_department/medical = /obj/item/encryptionkey/headset_med,
|
||||
/datum/job_department/science = /obj/item/encryptionkey/headset_sci,
|
||||
/datum/job_department/security = /obj/item/encryptionkey/headset_sec,
|
||||
/datum/job_department/service = /obj/item/encryptionkey/headset_service,
|
||||
)
|
||||
|
||||
/// Sets the passed department type as the active department for this computer file.
|
||||
/datum/computer_file/program/department_order/proc/set_linked_department(datum/job_department/department)
|
||||
linked_department = department
|
||||
var/datum/job_department/linked_department_real = SSjob.get_department_type(linked_department)
|
||||
// Heads of staff can download
|
||||
download_access |= linked_department_real.head_of_staff_access
|
||||
// Heads of staff + anyone in the dept can run it
|
||||
use_access |= linked_department_real.head_of_staff_access
|
||||
use_access |= linked_department_real.department_access
|
||||
// Also set up the radio
|
||||
if(dept_to_radio[linked_department])
|
||||
if(!isnull(radio))
|
||||
QDEL_NULL(radio)
|
||||
var/picked_key = dept_to_radio[linked_department] || /obj/item/encryptionkey/headset_cargo
|
||||
radio = new(computer)
|
||||
radio.keyslot = new picked_key()
|
||||
radio.subspace_transmission = TRUE
|
||||
radio.canhear_range = 0
|
||||
radio.recalculateChannels()
|
||||
radio_channel = radio.keyslot.channels[1]
|
||||
computer.update_static_data_for_all_viewers()
|
||||
|
||||
/datum/computer_file/program/department_order/Destroy()
|
||||
QDEL_NULL(radio)
|
||||
return ..()
|
||||
|
||||
/datum/computer_file/program/department_order/ui_interact(mob/user, datum/tgui/ui)
|
||||
check_cooldown()
|
||||
|
||||
/datum/computer_file/program/department_order/ui_data(mob/user)
|
||||
var/list/data = list()
|
||||
data["no_link"] = !linked_department
|
||||
data["id_inside"] = !!computer.computer_id_slot
|
||||
data["time_left"] = department_cooldowns[linked_department] ? DisplayTimeText(max(department_cooldowns[linked_department] - world.time, 0), 1) : null
|
||||
data["can_override"] = !!department_order
|
||||
return data
|
||||
|
||||
/datum/computer_file/program/department_order/ui_static_data(mob/user)
|
||||
var/datum/job_department/linked_department_real = SSjob.get_department_type(linked_department)
|
||||
if(isnull(linked_department_real))
|
||||
return list("supplies" = list())
|
||||
|
||||
var/list/data = list()
|
||||
|
||||
var/list/supply_data = list()
|
||||
for(var/group in linked_department_real.associated_cargo_groups)
|
||||
supply_data[group] = list()
|
||||
|
||||
for(var/pack_key in SSshuttle.supply_packs)
|
||||
var/datum/supply_pack/pack = SSshuttle.supply_packs[pack_key]
|
||||
if(!islist(supply_data[pack.group]) || !can_see_pack(pack))
|
||||
continue
|
||||
|
||||
UNTYPED_LIST_ADD(supply_data[pack.group], list(
|
||||
"name" = pack.name,
|
||||
"cost" = pack.get_cost(),
|
||||
"id" = pack.id,
|
||||
"desc" = pack.desc || pack.name, // If there is a description, use it. Otherwise use the pack's name.
|
||||
))
|
||||
|
||||
var/list/supply_data_flattened = list()
|
||||
for(var/group in supply_data)
|
||||
UNTYPED_LIST_ADD(supply_data_flattened, list(
|
||||
"name" = group,
|
||||
"packs" = supply_data[group],
|
||||
))
|
||||
|
||||
data["supplies"] = supply_data_flattened
|
||||
return data
|
||||
|
||||
/// Checks if we can "see" the passed supply pack
|
||||
/datum/computer_file/program/department_order/proc/can_see_pack(datum/supply_pack/to_check)
|
||||
PROTECTED_PROC(TRUE)
|
||||
if(to_check.hidden && !(computer.obj_flags & EMAGGED))
|
||||
return FALSE
|
||||
if(to_check.special && !to_check.special_enabled)
|
||||
return FALSE
|
||||
if(to_check.drop_pod_only)
|
||||
return FALSE
|
||||
if(to_check.goody)
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/// Looks through all possible departments and finds one this ID card "corresponds" to.
|
||||
/datum/computer_file/program/department_order/proc/find_department_to_link(obj/item/card/id/id_card)
|
||||
PROTECTED_PROC(TRUE)
|
||||
if(id_card.type != /obj/item/card/id/advanced/silver)
|
||||
// I don't want to introduce weird "access order" behavior with Captain's ID / Chameleon ids / etc, so only silver IDs work
|
||||
return null
|
||||
var/list/access_to_depts = list()
|
||||
for(var/datum/job_department/department as anything in department_cooldowns)
|
||||
access_to_depts[initial(department.head_of_staff_access)] = department
|
||||
for(var/access_key in id_card.GetAccess())
|
||||
if(access_to_depts[access_key])
|
||||
return access_to_depts[access_key]
|
||||
return null
|
||||
|
||||
/datum/computer_file/program/department_order/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
|
||||
. = ..()
|
||||
if(.)
|
||||
return .
|
||||
|
||||
var/mob/living/orderer = ui.user
|
||||
if(!istype(orderer))
|
||||
return .
|
||||
|
||||
if(action == "link")
|
||||
if(!isnull(linked_department))
|
||||
return TRUE
|
||||
|
||||
var/new_dept_type = find_department_to_link(computer.computer_id_slot)
|
||||
if(isnull(new_dept_type))
|
||||
computer.physical.balloon_alert(orderer, "no department found!")
|
||||
playsound(computer, 'sound/machines/buzz-sigh.ogg', 30, TRUE)
|
||||
else
|
||||
computer.physical.balloon_alert(orderer, "linked")
|
||||
playsound(computer, 'sound/machines/ping.ogg', 30, TRUE)
|
||||
set_linked_department(new_dept_type)
|
||||
return TRUE
|
||||
|
||||
if(isnull(linked_department))
|
||||
return TRUE
|
||||
|
||||
var/obj/item/card/id/id_card = computer.computer_id_slot || orderer.get_idcard(hand_first = TRUE)
|
||||
var/list/id_card_access = id_card?.GetAccess() || list()
|
||||
|
||||
if(length(use_access & id_card_access) <= 0)
|
||||
computer.physical.balloon_alert(orderer, "access denied!")
|
||||
playsound(computer, 'sound/machines/buzz-sigh.ogg', 30, TRUE)
|
||||
return TRUE
|
||||
|
||||
if(action == "override_order")
|
||||
if(isnull(department_order) || !(department_order in SSshuttle.shopping_list))
|
||||
return TRUE
|
||||
if(length(download_access & id_card_access) <= 0)
|
||||
computer.physical.balloon_alert(orderer, "requires head of staff access!")
|
||||
playsound(computer, 'sound/machines/buzz-sigh.ogg', 30, TRUE)
|
||||
return TRUE
|
||||
|
||||
department_cooldowns[linked_department] = 0
|
||||
SSshuttle.shopping_list -= department_order
|
||||
department_order = null
|
||||
UnregisterSignal(SSshuttle, COMSIG_SUPPLY_SHUTTLE_BUY)
|
||||
return TRUE
|
||||
|
||||
if(department_cooldowns[linked_department] > world.time)
|
||||
return TRUE
|
||||
|
||||
submit_order(orderer, params["id"])
|
||||
return TRUE
|
||||
|
||||
/datum/computer_file/program/department_order/proc/submit_order(mob/living/orderer, id)
|
||||
id = text2path(id) || id
|
||||
|
||||
var/datum/job_department/linked_department_real = SSjob.get_department_type(linked_department)
|
||||
var/datum/supply_pack/pack = SSshuttle.supply_packs[id]
|
||||
if(isnull(pack))
|
||||
computer.physical.say("Something went wrong!")
|
||||
CRASH("requested supply pack id \"[id]\" not found!")
|
||||
if(!can_see_pack(pack) || !(pack.group in linked_department_real.associated_cargo_groups))
|
||||
return
|
||||
var/name = "*None Provided*"
|
||||
var/rank = "*None Provided*"
|
||||
var/ckey = orderer.ckey
|
||||
if(ishuman(orderer))
|
||||
var/mob/living/carbon/human/human_orderer = orderer
|
||||
name = human_orderer.get_authentification_name()
|
||||
rank = human_orderer.get_assignment(hand_first = TRUE)
|
||||
else if(HAS_SILICON_ACCESS(orderer))
|
||||
name = orderer.real_name
|
||||
rank = "Silicon"
|
||||
var/already_signalled = !!department_order
|
||||
var/chosen_delivery_area
|
||||
for(var/delivery_area_type in linked_department_real.department_delivery_areas)
|
||||
if(GLOB.areas_by_type[delivery_area_type])
|
||||
chosen_delivery_area = delivery_area_type
|
||||
break
|
||||
|
||||
if(SSshuttle.supply.get_order_count(pack) == OVER_ORDER_LIMIT)
|
||||
playsound(computer, 'sound/machines/buzz-sigh.ogg', 50, FALSE)
|
||||
computer.physical.say("ERROR: No more then [CARGO_MAX_ORDER] of any pack may be ordered at once!")
|
||||
return
|
||||
|
||||
department_order = new(
|
||||
pack = pack,
|
||||
orderer = name,
|
||||
orderer_rank = rank,
|
||||
orderer_ckey = ckey,
|
||||
reason = "Departmental Order",
|
||||
paying_account = null,
|
||||
department_destination = chosen_delivery_area,
|
||||
coupon = null,
|
||||
manifest_can_fail = FALSE,
|
||||
)
|
||||
SSshuttle.shopping_list += department_order
|
||||
if(!already_signalled)
|
||||
RegisterSignal(SSshuttle, COMSIG_SUPPLY_SHUTTLE_BUY, PROC_REF(finalize_department_order))
|
||||
computer.physical.say("Order processed. Cargo will deliver the crate when it comes in on their shuttle. NOTICE: Heads of staff may override the order.")
|
||||
calculate_cooldown(pack.cost)
|
||||
|
||||
///signal when the supply shuttle begins to spawn orders. we forget the current order preventing it from being overridden (since it's already past the point of no return on undoing the order)
|
||||
/datum/computer_file/program/department_order/proc/finalize_department_order(datum/subsystem)
|
||||
SIGNAL_HANDLER
|
||||
if(!isnull(department_order) && (department_order in SSshuttle.shopping_list))
|
||||
department_order = null
|
||||
UnregisterSignal(subsystem, COMSIG_SUPPLY_SHUTTLE_BUY)
|
||||
|
||||
/datum/computer_file/program/department_order/proc/calculate_cooldown(credits)
|
||||
//minimum almost the lowest value of a crate
|
||||
var/min = CARGO_CRATE_VALUE * 1.6
|
||||
//maximum fairly expensive crate at 3000
|
||||
var/max = CARGO_CRATE_VALUE * 15
|
||||
credits = clamp(credits, min, max)
|
||||
var/time_y = (credits - min)/(max - min) + 1 //convert to between 1 and 2
|
||||
time_y = 10 MINUTES * time_y
|
||||
department_cooldowns[linked_department] = world.time + time_y
|
||||
|
||||
/datum/computer_file/program/department_order/process_tick(seconds_per_tick)
|
||||
if(!check_cooldown() || alert_silenced || !alert_able)
|
||||
return
|
||||
radio?.talk_into(computer, "Order cooldown has expired! A new order may now be placed!", radio_channel)
|
||||
computer.alert_call(src, "Order cooldown expired!", 'sound/machines/ping.ogg')
|
||||
|
||||
/// Checks if the cooldown is up and resets it if so.
|
||||
/datum/computer_file/program/department_order/proc/check_cooldown()
|
||||
if(department_cooldowns[linked_department] > 0 && department_cooldowns[linked_department] <= world.time)
|
||||
department_cooldowns[linked_department] = 0
|
||||
return TRUE
|
||||
return FALSE
|
||||
@@ -9,7 +9,7 @@
|
||||
filename = "nt_messenger"
|
||||
filedesc = "Direct Messenger"
|
||||
downloader_category = PROGRAM_CATEGORY_DEVICE
|
||||
program_open_overlay = "command"
|
||||
program_open_overlay = "text"
|
||||
extended_desc = "This program allows old-school communication with other modular devices."
|
||||
size = 0
|
||||
undeletable = TRUE // It comes by default in tablets, can't be downloaded, takes no space and should obviously not be able to be deleted.
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
/// More detailed information about each item (mainly, how much of each should exist) is set on a per item basis
|
||||
/datum/unit_test/required_map_items/proc/setup_expected_types()
|
||||
expected_types += subtypesof(/obj/item/stamp/head)
|
||||
expected_types += subtypesof(/obj/machinery/computer/department_orders)
|
||||
expected_types += subtypesof(/obj/machinery/modular_computer/preset/cargochat)
|
||||
|
||||
expected_types += /mob/living/basic/parrot/poly
|
||||
expected_types += /mob/living/basic/pet/dog/corgi/ian
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 131 KiB After Width: | Height: | Size: 134 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 92 KiB |
+1
-1
@@ -3525,7 +3525,6 @@
|
||||
#include "code\modules\cargo\bounty.dm"
|
||||
#include "code\modules\cargo\centcom_podlauncher.dm"
|
||||
#include "code\modules\cargo\coupon.dm"
|
||||
#include "code\modules\cargo\department_order.dm"
|
||||
#include "code\modules\cargo\exports.dm"
|
||||
#include "code\modules\cargo\expressconsole.dm"
|
||||
#include "code\modules\cargo\gondolapod.dm"
|
||||
@@ -5122,6 +5121,7 @@
|
||||
#include "code\modules\modular_computers\file_system\programs\cargoship.dm"
|
||||
#include "code\modules\modular_computers\file_system\programs\coupon.dm"
|
||||
#include "code\modules\modular_computers\file_system\programs\crewmanifest.dm"
|
||||
#include "code\modules\modular_computers\file_system\programs\dept_order.dm"
|
||||
#include "code\modules\modular_computers\file_system\programs\emojipedia.dm"
|
||||
#include "code\modules\modular_computers\file_system\programs\file_browser.dm"
|
||||
#include "code\modules\modular_computers\file_system\programs\frontier.dm"
|
||||
|
||||
+77
-34
@@ -3,6 +3,7 @@ import { useState } from 'react';
|
||||
|
||||
import { useBackend } from '../backend';
|
||||
import {
|
||||
Blink,
|
||||
Box,
|
||||
Button,
|
||||
Dimmer,
|
||||
@@ -13,17 +14,18 @@ import {
|
||||
Tabs,
|
||||
Tooltip,
|
||||
} from '../components';
|
||||
import { Window } from '../layouts';
|
||||
import { NtosWindow } from '../layouts';
|
||||
|
||||
// 15x crate value
|
||||
const COST_UPPER_BOUND = 3000;
|
||||
|
||||
type typePath = string;
|
||||
|
||||
type Pack = {
|
||||
name: string;
|
||||
cost: number;
|
||||
id: string;
|
||||
desc: string;
|
||||
goody: string;
|
||||
cost: number;
|
||||
id: typePath;
|
||||
};
|
||||
|
||||
type Category = {
|
||||
@@ -33,8 +35,10 @@ type Category = {
|
||||
|
||||
type Info = {
|
||||
can_override: BooleanLike;
|
||||
time_left: number;
|
||||
time_left: string | null;
|
||||
supplies: Category[];
|
||||
no_link: BooleanLike;
|
||||
id_inside: BooleanLike;
|
||||
};
|
||||
|
||||
const CooldownEstimate = (props) => {
|
||||
@@ -54,45 +58,60 @@ const CooldownEstimate = (props) => {
|
||||
);
|
||||
};
|
||||
|
||||
export const DepartmentOrders = (props) => {
|
||||
export const DepartmentOrderContent = (props) => {
|
||||
const { data } = useBackend<Info>();
|
||||
const { time_left } = data;
|
||||
const { no_link, time_left } = data;
|
||||
if (!data) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (no_link) {
|
||||
return <NoLinkDimmer />;
|
||||
}
|
||||
if (time_left) {
|
||||
return <CooldownDimmer />;
|
||||
}
|
||||
|
||||
return (
|
||||
<Window title="Department Orders" width={620} height={580}>
|
||||
<Window.Content>
|
||||
{(!!time_left && <CooldownDimmer />) || (
|
||||
<Stack vertical fill>
|
||||
<Stack.Item grow>
|
||||
<Stack fill vertical>
|
||||
<Stack.Item>
|
||||
<NoticeBox info>
|
||||
As employees of Nanotrasen, the selection of orders here are
|
||||
completely free of charge, only incurring a cooldown on the
|
||||
service. Cheaper items will make you wait for less time
|
||||
before Nanotrasen allows another purchase, to encourage
|
||||
tasteful spending.
|
||||
</NoticeBox>
|
||||
</Stack.Item>
|
||||
<Stack.Item grow>
|
||||
<DepartmentCatalog />
|
||||
</Stack.Item>
|
||||
</Stack>
|
||||
</Stack.Item>
|
||||
</Stack>
|
||||
)}
|
||||
</Window.Content>
|
||||
</Window>
|
||||
<Stack vertical fill>
|
||||
<Stack.Item grow>
|
||||
<Stack fill vertical>
|
||||
<Stack.Item>
|
||||
<NoticeBox info>
|
||||
As employees of Nanotrasen, the selection of orders here are
|
||||
completely free of charge, only incurring a cooldown on the
|
||||
service. Cheaper items will make you wait for less time before
|
||||
Nanotrasen allows another purchase, to encourage tasteful
|
||||
spending.
|
||||
</NoticeBox>
|
||||
</Stack.Item>
|
||||
<Stack.Item grow>
|
||||
<DepartmentCatalog />
|
||||
</Stack.Item>
|
||||
</Stack>
|
||||
</Stack.Item>
|
||||
</Stack>
|
||||
);
|
||||
};
|
||||
|
||||
const CooldownDimmer = (props) => {
|
||||
export const NtosDeptOrder = () => {
|
||||
return (
|
||||
<NtosWindow title="Department Orders" width={620} height={580}>
|
||||
<NtosWindow.Content>
|
||||
<DepartmentOrderContent />
|
||||
</NtosWindow.Content>
|
||||
</NtosWindow>
|
||||
);
|
||||
};
|
||||
|
||||
const CooldownDimmer = () => {
|
||||
const { act, data } = useBackend<Info>();
|
||||
const { can_override, time_left } = data;
|
||||
return (
|
||||
<Dimmer>
|
||||
<Stack vertical>
|
||||
<Stack.Item textAlign="center">
|
||||
<Icon color="orange" name="route" size={20} />
|
||||
<Icon color="bug" name="route" size={20} />
|
||||
</Stack.Item>
|
||||
<Stack.Item fontSize="18px" color="orange">
|
||||
Ready for another order in {time_left}...
|
||||
@@ -119,7 +138,31 @@ const CooldownDimmer = (props) => {
|
||||
);
|
||||
};
|
||||
|
||||
const DepartmentCatalog = (props) => {
|
||||
const NoLinkDimmer = () => {
|
||||
const { act, data } = useBackend<Info>();
|
||||
const { id_inside } = data;
|
||||
return (
|
||||
<Dimmer>
|
||||
<Stack vertical>
|
||||
<Stack.Item textAlign="center">
|
||||
<Blink>
|
||||
<Icon color="red" name="exclamation" size={16} opacity={0.8} />
|
||||
</Blink>
|
||||
</Stack.Item>
|
||||
<Stack.Item textAlign="center" fontSize="22px" color="red">
|
||||
Unlinked!
|
||||
</Stack.Item>
|
||||
<Stack.Item textAlign="center" fontSize="14px" color="red">
|
||||
<Button disabled={!id_inside} onClick={() => act('link')}>
|
||||
Please insert a silver Head of Staff ID and press to continue.
|
||||
</Button>
|
||||
</Stack.Item>
|
||||
</Stack>
|
||||
</Dimmer>
|
||||
);
|
||||
};
|
||||
|
||||
const DepartmentCatalog = () => {
|
||||
const { act, data } = useBackend<Info>();
|
||||
const { supplies } = data;
|
||||
const [tabCategory, setTabCategory] = useState(supplies[0]);
|
||||
Reference in New Issue
Block a user