mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-29 06:57:42 +01:00
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into FlagBearerFluff
This commit is contained in:
@@ -37,9 +37,9 @@ actual development.
|
||||
* Document and explain your pull requests thoroughly. Detail what each commit changes,
|
||||
and why it changes it. We do not want to have to read all of you commit names to figure
|
||||
out what your pull request is about.
|
||||
* Any pull request that is not solely composed of fixes or non gameplay-affecting
|
||||
refactors must have a changelog. Inline changelogs are supported through the format
|
||||
described [here](https://github.com/ParadiseSS13/Paradise/pull/3291#issuecomment-172950466)
|
||||
* Any pull request must have a changelog, this is to allow us to know when a PR is deployed
|
||||
on the live server. Inline changelogs are supported through the format described
|
||||
[here](https://github.com/ParadiseSS13/Paradise/pull/3291#issuecomment-172950466)
|
||||
and should be used rather than manually edited .yml file changelogs.
|
||||
* Pull requests should not have any merge commits except in the case of fixing merge
|
||||
conflicts for an existing pull request. New pull requests should not have any merge
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
**What does this PR do:**
|
||||
Include a small to medium description of what your PR changes. Feel free to give it a little flourish if you want to show off a new feature more completely.
|
||||
|
||||
**Images of sprite/map changes (IF APPLICABLE):**
|
||||
If you did not make a map or sprite edit, you may leave this section blank. You may include a gif of your feature if you want
|
||||
|
||||
**Changelog:**
|
||||
*Remove this line, and appropriate fields from the changelog*
|
||||
:cl: name here
|
||||
add: Added new things
|
||||
del: Removed old things
|
||||
tweak: tweaked a few things
|
||||
balance: rebalanced something
|
||||
fix: fixed a few things
|
||||
wip: added a few works in progress
|
||||
soundadd: added a new sound thingy
|
||||
sounddel: removed an old sound thingy
|
||||
imageadd: added some icons and images
|
||||
imagedel: deleted some icons and images
|
||||
spellcheck: fixed a few typos
|
||||
experiment: added an experimental thingy
|
||||
/:cl:
|
||||
|
||||
@@ -134,7 +134,7 @@ CREATE TABLE `SS13_death` (
|
||||
DROP TABLE IF EXISTS `SS13_donators`;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `donators` (
|
||||
CREATE TABLE `SS13_donators` (
|
||||
`patreon_name` varchar(32) NOT NULL,
|
||||
`tier` int(2),
|
||||
`ckey` varchar(32) COMMENT 'Manual Field',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
"a" = (/turf/space,/area/space)
|
||||
"b" = (/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/ruin/powered)
|
||||
"b" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/ruin/powered)
|
||||
"c" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/ruin/powered)
|
||||
"d" = (/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/ruin/powered)
|
||||
"d" = (/turf/space,/turf/simulated/shuttle/wall{dir = 2; icon_state = "diagonalWall3"},/area/ruin/powered)
|
||||
"e" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "propulsion"; tag = "icon-propulsion (EAST)"},/turf/space,/area/ruin/powered)
|
||||
"f" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/turf/simulated/floor/plating,/area/ruin/powered)
|
||||
"g" = (/obj/structure/table/wood,/obj/item/clothing/under/shorts/black,/turf/simulated/shuttle/floor{tag = "icon-floor5"; icon_state = "floor5"},/area/ruin/powered)
|
||||
@@ -24,22 +24,22 @@
|
||||
"x" = (/obj/machinery/door_control{name = "Strange Ship Door Control"; pixel_x = 6; pixel_y = 0; id = "strange ship"},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/ruin/powered)
|
||||
"y" = (/obj/machinery/light,/turf/simulated/shuttle/floor{tag = "icon-floor5"; icon_state = "floor5"},/area/ruin/powered)
|
||||
"z" = (/mob/living/simple_animal/bot/medbot,/turf/simulated/shuttle/floor{tag = "icon-floor5"; icon_state = "floor5"},/area/ruin/powered)
|
||||
"A" = (/turf/simulated/shuttle/wall{dir = 2; icon_state = "diagonalWall3"},/area/ruin/powered)
|
||||
"A" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/ruin/powered)
|
||||
"B" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor{tag = "icon-floor5"; icon_state = "floor5"},/area/ruin/powered)
|
||||
"C" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/ruin/powered)
|
||||
"C" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/ruin/powered)
|
||||
"D" = (/obj/machinery/light,/obj/structure/stool/bed,/turf/simulated/shuttle/floor{tag = "icon-floor5"; icon_state = "floor5"},/area/ruin/powered)
|
||||
|
||||
(1,1,1) = {"
|
||||
aabcccccdaaaa
|
||||
aabcccccAaaaa
|
||||
aefghijkcaaaa
|
||||
aeflhhhhccccd
|
||||
aeflhhhhccccA
|
||||
bccccmhhcmhjc
|
||||
cnophhhhqhhrc
|
||||
shhthhhhuhvwc
|
||||
xhypzhhhqhhnc
|
||||
Accccmhhcmhjc
|
||||
dccccmhhcmhjc
|
||||
aefBhhhhccccC
|
||||
aefnnDhjcaaaa
|
||||
aaAcccccCaaaa
|
||||
aadcccccCaaaa
|
||||
"}
|
||||
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
"du" = (/obj/structure/stool,/turf/simulated/floor/plasteel,/area/awaymission/academy/classrooms)
|
||||
"dv" = (/turf/simulated/floor/plasteel,/area/awaymission/academy/classrooms)
|
||||
"dw" = (/turf/simulated/floor/plasteel{icon_state = "green"; dir = 4},/area/awaymission/academy/classrooms)
|
||||
"dx" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/effect/landmark{name = "awaystart"},/obj/item/weldingtool,/turf/simulated/floor/greengrid,/area/awaymission/academy/classrooms)
|
||||
"dx" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/item/weldingtool,/turf/simulated/floor/greengrid,/area/awaymission/academy/classrooms)
|
||||
"dy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/greengrid,/area/awaymission/academy/classrooms)
|
||||
"dz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/greengrid,/area/awaymission/academy/classrooms)
|
||||
"dA" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel,/area/awaymission/academy/classrooms)
|
||||
@@ -200,6 +200,7 @@
|
||||
"dR" = (/obj/structure/kitchenspike,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/academy/classrooms)
|
||||
"dS" = (/obj/structure/mineral_door/iron,/turf/simulated/floor/plasteel,/area/awaymission/academy/classrooms)
|
||||
"dT" = (/obj/structure/mineral_door/iron,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel,/area/awaymission/academy/classrooms)
|
||||
"dU" = (/obj/effect/landmark{name = "awaystart"},/turf/simulated/floor/wood,/area/awaymission/academy/classrooms)
|
||||
"dV" = (/obj/machinery/seed_extractor,/turf/simulated/floor/plasteel,/area/awaymission/academy/classrooms)
|
||||
"dW" = (/obj/structure/cable,/turf/simulated/floor/plasteel,/area/awaymission/academy/classrooms)
|
||||
"dX" = (/obj/structure/closet/crate/freezer,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/academy/classrooms)
|
||||
@@ -305,7 +306,6 @@
|
||||
"fT" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel,/area/awaymission/academy/classrooms)
|
||||
"fU" = (/obj/structure/target_stake,/turf/simulated/floor/plasteel,/area/awaymission/academy/classrooms)
|
||||
"fV" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/awaymission/academy/classrooms)
|
||||
"fW" = (/obj/effect/landmark{name = "awaystart"},/turf/simulated/floor/plating,/area/awaymission/academy/classrooms)
|
||||
"fX" = (/obj/structure/grille,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/window/reinforced{dir = 5},/turf/simulated/floor/plating,/area/awaymission/academy/classrooms)
|
||||
"fY" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/awaymission/academy/classrooms)
|
||||
"fZ" = (/obj/structure/table,/obj/item/pen/red,/turf/simulated/floor/plasteel,/area/awaymission/academy/classrooms)
|
||||
@@ -655,7 +655,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabscXcYcZcZcZcZdadvbEdbdcdcdcdcdcdcddasbrbJbKbraVapbrbJbKbrasasasasasasasasasabbsbsbsbsbsbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsdededebVbVdvcMdvbEdcdcdfdcdfdcdfdcasbrbrbrbraVapbrbrbrbrasdhdidjdkdidididjdidlbEdmdmdnbsbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsdodpdqbVdvdvcMdrbEdcdcdsdcdsdcdsdcasaFaFaFaFaVapaFaFaFaFasdtdudvjMdudvdvdvdvdwbEdmdmdmdmbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsdxdydzcYcYcYdAdvbEdcdcdcdcdfdcdfdcasaFdBdBaFaVapaFdBdBaFasdtdvdvdvdvdvdvdCdDdwdEdmkydmdFbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsdxdydzcYcYcYdAdvbEdcdcdUdcdfdcdfdcasaFdBdBaFaVapaFdBdBaFasdtdvdvdvdvdvdvdCdDdwdEdmkydmdFbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsdGdpdHbVdvdvcMdvbEdcdcdcdcdsdcdsdcasaFdBdBaFaVapaFdBdBaFasdtdudvdvdudIdvdJdKdwbEdmdmdmdmbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsdedededvbVdvcMdvbEdcdcdcdcdcdcdcdcasaFdBdBaFaVapaFdBdBaFasdtdvdvdvdvdvdvdLdMdNdOdPdQdmdRbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsbsbsbsbEbEbEdSdTbEbEbEewewbEbEbEbEbEasasasasasaVapasasasasasdtdudvdvdvdVdvdvdWdwbEdXdYdmdRbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
@@ -669,7 +669,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsdZdZbsfsftfuedfvfwfefefefefxeieifyfefefefzekeihEekekeieieibEeCeCeCeCfAeCeCeCeCeFeGeGeGbsbsaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsbsbsbsbsbsbEdSdTbEbEbEbEbEererererbEbEfBfCfDfBkTfDfDfBbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbsbsaPaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsbBbBbBfEfFfGfHfIfIfJbEfKdcdcdcdcdcbEfLfCfDfLkUfDfDfMbEfNfOfPbzbzkvfQfRfSfTdvdvfUbsbsaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsfVfWbBfXfYdvdvdvfZgabEdcgbdcgcgcdcgdgegffDfLkUfDfDfLbEggghgigjggcAdvgkdvdvdvdvbsbsaPaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsfVbBbBfXfYdvdvdvfZgabEdcgbdcgcgcdcgdgegffDfLkUfDfDfLbEggghgigjggcAdvgkdvdvdvdvbsbsaPaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaaaaaaaaaaaaaaaaaaaaaabsglbBbBgmfYdvgndvdvgobEdcdfdcdcdcdcgpfLfDfDfLkUfDfDfLbEgggqggggggcAfQkzdvdvfUbsbsaPaaaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaSaaaaaaaaaaaaaaaaaabsgrgrgrfXfYdvdudvdvgsbEgtdsdckAgudcgpfLfDfDfLkUfDfDgvbEgwgqggggggcAdvgxdvgybsbsaPaaaaaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSkBaSaSaSaaaaaaaaaaaaaaaaaabsgzgzgzfXfYdvgAdvgngobEdcgbdcdcdcdcgBgegCgDfLkUfDfDfLbEgggqdggEgGcAgHfRfUbsbsaPaaaaaaaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
"ah" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"},/area/awaymission/BMPship/Fore)
|
||||
"ai" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/awaymission/BMPship/Fore)
|
||||
"aj" = (/mob/living/simple_animal/hostile/carp,/turf/space,/area/space)
|
||||
"ak" = (/obj/machinery/porta_turret{lethal = 1; name = "ship defense turret"},/turf/simulated/floor/engine,/area/awaymission/BMPship/Aft)
|
||||
"ak" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"},/area/awaymission/BMPship/Gate)
|
||||
"al" = (/turf/simulated/floor/engine,/area/awaymission/BMPship/Fore)
|
||||
"am" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/engine,/area/awaymission/BMPship/Aft)
|
||||
"an" = (/turf/simulated/floor/plating,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/awaymission/BMPship/Aft)
|
||||
"am" = (/turf/simulated/shuttle/wall{tag = "icon-swall4"; icon_state = "swall4"},/area/awaymission/BMPship/Gate)
|
||||
"an" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"},/area/awaymission/BMPship/Gate)
|
||||
"ao" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"ap" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/engine,/area/awaymission/BMPship/Aft)
|
||||
"aq" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/engine,/area/awaymission/BMPship/Aft)
|
||||
"aq" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/awaymission/BMPship/Gate)
|
||||
"ar" = (/turf/simulated/floor/plating,/area/awaymission/BMPship/Fore)
|
||||
"as" = (/obj/structure/lattice,/turf/space,/area/space)
|
||||
"at" = (/obj/machinery/light/small,/turf/simulated/floor/engine,/area/awaymission/BMPship/Aft)
|
||||
"at" = (/obj/machinery/porta_turret{lethal = 1; name = "ship defense turret"},/turf/simulated/floor/engine,/area/awaymission/BMPship/Gate)
|
||||
"au" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc/noalarm{dir = 1; equipment = 0; lighting = 0; locked = 0; operating = 0; pixel_y = 24; req_access = ""},/turf/simulated/floor/plasteel{tag = "icon-carpet"; icon_state = "carpet"},/area/awaymission/BMPship/Fore)
|
||||
"av" = (/obj/structure/table,/obj/structure/reagent_dispensers/beerkeg,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/awaymission/BMPship/Midship)
|
||||
"aw" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc/noalarm{dir = 1; environ = 0; equipment = 3; locked = 0; operating = 0; req_access = ""},/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
@@ -25,41 +25,41 @@
|
||||
"ay" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"},/area/awaymission/BMPship/Aft)
|
||||
"az" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"},/area/awaymission/BMPship/Aft)
|
||||
"aA" = (/turf/simulated/shuttle/wall{tag = "icon-swall8"; icon_state = "swall8"},/area/awaymission/BMPship/Aft)
|
||||
"aB" = (/obj/machinery/door/airlock/silver{locked = 1},/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/awaymission/BMPship/Aft)
|
||||
"aB" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/engine,/area/awaymission/BMPship/Gate)
|
||||
"aC" = (/turf/simulated/shuttle/wall{tag = "icon-swall4"; icon_state = "swall4"},/area/awaymission/BMPship/Aft)
|
||||
"aD" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/awaymission/BMPship/Aft)
|
||||
"aE" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/awaymission/BMPship/Aft)
|
||||
"aF" = (/turf/simulated/shuttle/wall,/area/awaymission/BMPship/Aft)
|
||||
"aG" = (/obj/structure/stool/bed/roller,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft)
|
||||
"aH" = (/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft)
|
||||
"aI" = (/obj/item/restraints/handcuffs,/obj/structure/closet/crate,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft)
|
||||
"aJ" = (/obj/item/scalpel,/obj/structure/closet/crate,/obj/item/tank/anesthetic,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft)
|
||||
"aK" = (/obj/item/bodybag,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft)
|
||||
"aL" = (/obj/item/storage/box/syringes,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft)
|
||||
"aM" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft)
|
||||
"aN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft)
|
||||
"aO" = (/obj/machinery/computer/operating,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft)
|
||||
"aD" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/awaymission/BMPship/Gate)
|
||||
"aE" = (/turf/simulated/floor/engine,/area/awaymission/BMPship/Gate)
|
||||
"aF" = (/turf/simulated/floor/plating,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/awaymission/BMPship/Gate)
|
||||
"aG" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"aH" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/engine,/area/awaymission/BMPship/Gate)
|
||||
"aI" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"aJ" = (/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"aK" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/engine,/area/awaymission/BMPship/Gate)
|
||||
"aL" = (/obj/machinery/light/small,/turf/simulated/floor/engine,/area/awaymission/BMPship/Gate)
|
||||
"aM" = (/turf/simulated/shuttle/wall{tag = "icon-swall7"; icon_state = "swall7"},/area/awaymission/BMPship/Gate)
|
||||
"aN" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/awaymission/BMPship/Gate)
|
||||
"aO" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"},/area/awaymission/BMPship/Gate)
|
||||
"aP" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"},/area/awaymission/BMPship/Aft)
|
||||
"aQ" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHWEST)"; icon_state = "warnplate"; dir = 9},/area/awaymission/BMPship/Aft)
|
||||
"aR" = (/obj/structure/closet/crate/freezer,/obj/item/reagent_containers/food/snacks/meat,/obj/item/reagent_containers/food/snacks/meat,/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Aft)
|
||||
"aS" = (/obj/structure/closet/crate/freezer,/obj/item/reagent_containers/food/snacks/meat,/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Aft)
|
||||
"aT" = (/obj/structure/table,/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Aft)
|
||||
"aU" = (/obj/structure/table,/obj/item/storage/box,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Aft)
|
||||
"aV" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Aft)
|
||||
"aW" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHEAST)"; icon_state = "warnplate"; dir = 5},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/awaymission/BMPship/Aft)
|
||||
"aX" = (/turf/simulated/floor/plating/airless{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/awaymission/BMPship/Aft)
|
||||
"aY" = (/turf/simulated/floor/plating/airless{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/awaymission/BMPship/Aft)
|
||||
"aZ" = (/obj/effect/gibspawner/generic,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft)
|
||||
"ba" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft)
|
||||
"aQ" = (/obj/machinery/door/airlock/silver{locked = 1},/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/awaymission/BMPship/Gate)
|
||||
"aR" = (/turf/simulated/shuttle/wall{tag = "icon-swall8"; icon_state = "swall8"},/area/awaymission/BMPship/Gate)
|
||||
"aS" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/awaymission/BMPship/Gate)
|
||||
"aT" = (/turf/simulated/shuttle/wall,/area/awaymission/BMPship/Gate)
|
||||
"aU" = (/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Gate)
|
||||
"aV" = (/obj/structure/stool/bed/roller,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Gate)
|
||||
"aW" = (/obj/item/scalpel,/obj/structure/closet/crate,/obj/item/tank/anesthetic,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Gate)
|
||||
"aX" = (/obj/item/restraints/handcuffs,/obj/structure/closet/crate,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Gate)
|
||||
"aY" = (/obj/item/storage/box/syringes,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Gate)
|
||||
"aZ" = (/obj/item/bodybag,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Gate)
|
||||
"ba" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Gate)
|
||||
"bb" = (/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall1"},/area/awaymission/BMPship/Aft)
|
||||
"bc" = (/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/awaymission/BMPship/Aft)
|
||||
"bc" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Gate)
|
||||
"bd" = (/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"be" = (/obj/item/storage/box,/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"bf" = (/obj/machinery/gateway{dir = 9},/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"bg" = (/obj/machinery/gateway{dir = 1},/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"bh" = (/obj/machinery/gateway{dir = 5},/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"bi" = (/obj/item/hand_labeler,/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"bj" = (/obj/structure/largecrate,/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/awaymission/BMPship/Aft)
|
||||
"be" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"},/area/awaymission/BMPship/Gate)
|
||||
"bf" = (/obj/machinery/computer/operating,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Gate)
|
||||
"bg" = (/obj/structure/closet/crate/freezer,/obj/item/reagent_containers/food/snacks/meat,/obj/item/reagent_containers/food/snacks/meat,/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Gate)
|
||||
"bh" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHWEST)"; icon_state = "warnplate"; dir = 9},/area/awaymission/BMPship/Gate)
|
||||
"bi" = (/obj/structure/table,/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Gate)
|
||||
"bj" = (/obj/structure/closet/crate/freezer,/obj/item/reagent_containers/food/snacks/meat,/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Gate)
|
||||
"bk" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Fore)
|
||||
"bl" = (/obj/item/stack/spacecash/c500,/obj/item/stack/spacecash/c100,/turf/simulated/floor/wood,/area/awaymission/BMPship/Fore)
|
||||
"bm" = (/obj/structure/stool/bed,/obj/item/bedsheet/yellow,/turf/simulated/floor/wood,/area/awaymission/BMPship/Fore)
|
||||
@@ -69,17 +69,17 @@
|
||||
"bq" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Fore)
|
||||
"br" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHEAST)"; icon_state = "warnplate"; dir = 5},/area/awaymission/BMPship/Fore)
|
||||
"bs" = (/obj/structure/sign/vacuum,/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall1"},/area/awaymission/BMPship/Fore)
|
||||
"bt" = (/turf/simulated/floor/plating/airless{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/awaymission/BMPship/Aft)
|
||||
"bu" = (/turf/simulated/floor/plating/airless{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/awaymission/BMPship/Aft)
|
||||
"bv" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/item/clothing/glasses/regular/hipster,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft)
|
||||
"bw" = (/obj/machinery/door/unpowered/shuttle,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated,/area/awaymission/BMPship/Aft)
|
||||
"bx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/awaymission/BMPship/Aft)
|
||||
"by" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"bz" = (/obj/structure/closet/crate/freezer,/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"bA" = (/obj/machinery/gateway{dir = 8},/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"bB" = (/obj/machinery/gateway/centeraway{calibrated = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"bC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/gateway{dir = 4},/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"bD" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"bt" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Gate)
|
||||
"bu" = (/obj/structure/table,/obj/item/storage/box,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Gate)
|
||||
"bv" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHEAST)"; icon_state = "warnplate"; dir = 5},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/awaymission/BMPship/Gate)
|
||||
"bw" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc/noalarm{dir = 1; environ = 2; equipment = 0; lighting = 0; locked = 0; operating = 1; req_access = ""},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/awaymission/BMPship/Gate)
|
||||
"bx" = (/turf/simulated/floor/plating/airless{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/awaymission/BMPship/Gate)
|
||||
"by" = (/turf/simulated/floor/plating/airless{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/awaymission/BMPship/Gate)
|
||||
"bz" = (/obj/effect/gibspawner/generic,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Gate)
|
||||
"bA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Gate)
|
||||
"bB" = (/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall1"},/area/awaymission/BMPship/Gate)
|
||||
"bC" = (/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/awaymission/BMPship/Gate)
|
||||
"bD" = (/obj/item/storage/box,/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"bE" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Fore)
|
||||
"bF" = (/turf/simulated/floor/wood,/area/awaymission/BMPship/Fore)
|
||||
"bG" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/wood,/area/awaymission/BMPship/Fore)
|
||||
@@ -87,10 +87,10 @@
|
||||
"bI" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area/awaymission/BMPship/Fore)
|
||||
"bJ" = (/turf/simulated/shuttle/wall{tag = "icon-swall2"; icon_state = "swall2"},/area/awaymission/BMPship/Aft)
|
||||
"bK" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"bL" = (/obj/machinery/gateway{dir = 10},/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"bM" = (/obj/machinery/gateway,/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"bN" = (/obj/machinery/gateway{dir = 6},/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"bO" = (/obj/structure/closet/crate,/obj/item/stack/spacecash/c1000,/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/awaymission/BMPship/Aft)
|
||||
"bL" = (/obj/machinery/gateway{dir = 1},/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"bM" = (/obj/machinery/gateway{dir = 9},/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"bN" = (/obj/machinery/gateway{dir = 5},/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"bO" = (/obj/structure/largecrate,/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/awaymission/BMPship/Gate)
|
||||
"bP" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Fore)
|
||||
"bQ" = (/turf/simulated/floor/plasteel{tag = "icon-wood-broken"; icon_state = "wood-broken"},/area/awaymission/BMPship/Fore)
|
||||
"bR" = (/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Fore)
|
||||
@@ -98,15 +98,15 @@
|
||||
"bT" = (/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/awaymission/BMPship/Fore)
|
||||
"bU" = (/turf/simulated/shuttle/wall{tag = "icon-swall2"; icon_state = "swall2"},/area/awaymission/BMPship/Fore)
|
||||
"bV" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"},/area/awaymission/BMPship/Aft)
|
||||
"bW" = (/obj/machinery/light,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft)
|
||||
"bX" = (/obj/machinery/door_control{id = "packerMed"; pixel_y = -24},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft)
|
||||
"bY" = (/obj/machinery/sleeper{dir = 1},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft)
|
||||
"bW" = (/obj/item/hand_labeler,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"bX" = (/turf/simulated/floor/plating/airless{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/awaymission/BMPship/Gate)
|
||||
"bY" = (/turf/simulated/floor/plating/airless{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/awaymission/BMPship/Gate)
|
||||
"bZ" = (/obj/machinery/seed_extractor,/obj/item/seeds/plump/walkingmushroom,/turf/simulated/floor/plasteel{tag = "icon-green"; icon_state = "green"},/area/awaymission/BMPship/Midship)
|
||||
"ca" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"cb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/item/hand_labeler,/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"cc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"cd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/item/storage/box,/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"ce" = (/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/awaymission/BMPship/Aft)
|
||||
"ca" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/item/clothing/glasses/regular/hipster,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Gate)
|
||||
"cb" = (/obj/machinery/door/unpowered/shuttle,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated,/area/awaymission/BMPship/Gate)
|
||||
"cc" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"cd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/awaymission/BMPship/Gate)
|
||||
"ce" = (/obj/structure/closet/crate/freezer,/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"cf" = (/turf/simulated/shuttle/wall{tag = "icon-swallc2"; icon_state = "swallc2"},/area/awaymission/BMPship/Fore)
|
||||
"cg" = (/turf/simulated/shuttle/wall{tag = "icon-swall8"; icon_state = "swall8"},/area/awaymission/BMPship/Fore)
|
||||
"ch" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor/plasteel{tag = "icon-carpetside (NORTH)"; icon_state = "carpetside"; dir = 1},/area/awaymission/BMPship/Fore)
|
||||
@@ -117,17 +117,17 @@
|
||||
"cm" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"},/area/awaymission/BMPship/Midship)
|
||||
"cn" = (/turf/simulated/shuttle/wall{tag = "icon-swall15"; icon_state = "swall15"},/area/awaymission/BMPship/Aft)
|
||||
"co" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/awaymission/BMPship/Aft)
|
||||
"cp" = (/obj/machinery/door/poddoor/shutters{dir = 2; id_tag = "packerMed"},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft)
|
||||
"cq" = (/obj/structure/largecrate,/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area/awaymission/BMPship/Aft)
|
||||
"cr" = (/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Aft)
|
||||
"cs" = (/obj/machinery/light/small,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Aft)
|
||||
"ct" = (/obj/structure/kitchenspike,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Aft)
|
||||
"cu" = (/obj/structure/closet/crate,/obj/item/analyzer,/obj/item/stack/spacecash/c10,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Aft)
|
||||
"cv" = (/obj/structure/closet/crate,/obj/item/stack/spacecash/c1000,/obj/item/stack/spacecash/c500,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Aft)
|
||||
"cw" = (/obj/structure/closet/crate/freezer,/obj/item/reagent_containers/food/snacks/meat,/obj/item/reagent_containers/food/snacks/hugemushroomslice,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Aft)
|
||||
"cx" = (/obj/machinery/door_control{id = "packerCargo"; pixel_y = -24},/obj/machinery/light/small,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Aft)
|
||||
"cy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Aft)
|
||||
"cz" = (/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/awaymission/BMPship/Aft)
|
||||
"cp" = (/obj/machinery/gateway/centeraway{calibrated = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"cq" = (/obj/machinery/gateway{dir = 8},/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"cr" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"cs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/gateway{dir = 4},/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"ct" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"cu" = (/turf/simulated/shuttle/wall{tag = "icon-swall2"; icon_state = "swall2"},/area/awaymission/BMPship/Gate)
|
||||
"cv" = (/obj/machinery/gateway,/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"cw" = (/obj/machinery/gateway{dir = 10},/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"cx" = (/obj/machinery/gateway{dir = 6},/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"cy" = (/obj/structure/closet/crate,/obj/item/stack/spacecash/c1000,/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/awaymission/BMPship/Gate)
|
||||
"cz" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"},/area/awaymission/BMPship/Gate)
|
||||
"cA" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/awaymission/BMPship/Fore)
|
||||
"cB" = (/turf/simulated/floor/plasteel{tag = "icon-carpet"; icon_state = "carpet"},/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/awaymission/BMPship/Fore)
|
||||
"cC" = (/turf/simulated/floor/plasteel{tag = "icon-carpet"; icon_state = "carpet"},/area/awaymission/BMPship/Fore)
|
||||
@@ -151,7 +151,7 @@
|
||||
"cU" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/awaymission/BMPship/Midship)
|
||||
"cV" = (/obj/structure/table,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/awaymission/BMPship/Midship)
|
||||
"cW" = (/turf/simulated/shuttle/wall{tag = "icon-swall7"; icon_state = "swall7"},/area/awaymission/BMPship/Aft)
|
||||
"cX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/poddoor/shutters{dir = 2; id_tag = "packerCargo"},/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
|
||||
"cX" = (/obj/machinery/light,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Gate)
|
||||
"cY" = (/turf/simulated/floor/plasteel{tag = "icon-carpet15-13 (EAST)"; icon_state = "carpet15-13"; dir = 4},/area/awaymission/BMPship/Fore)
|
||||
"cZ" = (/turf/simulated/floor/plasteel{tag = "icon-carpet15-7 (EAST)"; icon_state = "carpet15-7"; dir = 4},/area/awaymission/BMPship/Fore)
|
||||
"da" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{tag = "icon-carpet15-7 (EAST)"; icon_state = "carpet15-7"; dir = 4},/area/awaymission/BMPship/Fore)
|
||||
@@ -473,6 +473,27 @@
|
||||
"je" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/awaymission)
|
||||
"jf" = (/turf/space,/area/crew_quarters/bar)
|
||||
"jg" = (/turf/space,/area/exploration/methlab)
|
||||
"jh" = (/obj/machinery/door_control{id = "packerMed"; pixel_y = -24},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Gate)
|
||||
"ji" = (/obj/machinery/sleeper{dir = 1},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Gate)
|
||||
"jj" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"jk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"jl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/item/hand_labeler,/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"jm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/item/storage/box,/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"jn" = (/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/awaymission/BMPship/Gate)
|
||||
"jo" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
"jp" = (/turf/simulated/shuttle/wall{tag = "icon-swall15"; icon_state = "swall15"},/area/awaymission/BMPship/Gate)
|
||||
"jq" = (/obj/machinery/door/poddoor/shutters{dir = 2; id_tag = "packerMed"},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Gate)
|
||||
"jr" = (/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Gate)
|
||||
"js" = (/obj/structure/largecrate,/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area/awaymission/BMPship/Gate)
|
||||
"jt" = (/obj/structure/kitchenspike,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Gate)
|
||||
"ju" = (/obj/machinery/light/small,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Gate)
|
||||
"jv" = (/obj/structure/closet/crate,/obj/item/stack/spacecash/c1000,/obj/item/stack/spacecash/c500,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Gate)
|
||||
"jw" = (/obj/structure/closet/crate,/obj/item/analyzer,/obj/item/stack/spacecash/c10,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Gate)
|
||||
"jx" = (/obj/machinery/door_control{id = "packerCargo"; pixel_y = -24},/obj/machinery/light/small,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Gate)
|
||||
"jy" = (/obj/structure/closet/crate/freezer,/obj/item/reagent_containers/food/snacks/meat,/obj/item/reagent_containers/food/snacks/hugemushroomslice,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Gate)
|
||||
"jz" = (/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/awaymission/BMPship/Gate)
|
||||
"jA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Gate)
|
||||
"jB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/poddoor/shutters{dir = 2; id_tag = "packerCargo"},/turf/simulated/floor/plating,/area/awaymission/BMPship/Gate)
|
||||
|
||||
(1,1,1) = {"
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
@@ -523,18 +544,18 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaCaxaxayaxcoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamakezdhaoancoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaajaaaaaaapezezeybdbdancoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaaaaaaaaaaaaaaaaaaaaaaaaaqakatdhbdbdbdcWcoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaEaxaxaxaxaxaxaxaxaxayaxaxaxazaAaBaCazazaxaDcoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaaasaFaGaHaIaJaKaLaMaNaOaPaQaRaSaTaUaVaVaVaVaVaVaWcoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafagagahagagagagagagagaiaaaaaaaaaaaaasaXaYaHaHaZaHaHaHbaaHaHbbbcbdbdbebdbdbfbgbhbdbibjaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacababacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkblbmbnbobpbqbpbqbpbrbsaaaaaaaaaaasbtaYaHbuaHaHaHaGaHbvaNaNbwbxbybdbzbdbdbAbBbCbDbdbjaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEbFbGbnbHararararararbIaaaaaaasaEaFaHbuaYaHbuaHaHaHaZaHaHaHbJbcbKbdbdbdbdbLbMbNbdbdbOaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPbQbFbnarbRbRbSbRbRbTbUaaaaaaaEbVbtbuaHbWbXaHaHaHbYaHbWbYaHaPbccacbcccccdccccccccbyceaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfcgchcicjckclclclclclcmclclclcmcnaxaxaxaxaAcpcpcpaCaxaxaxaxbVcqcrcsctcrcrcucvcwcxcyczaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAcBcCcCaucCcEcFcGcHcIcJcKcIcLcGcMcNcOcPcQcRcMcMcMcMcScTcUavcVcWaxaxaxaxaxaxaxaxayaAcXaCcncoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaamakakanakaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBataEaDaGaFaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaajaaaaaaaHaEaEaIaJaJaFaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaaaaaaaaaaaaaaaaaaaaaaaaaKataLaDaJaJaJaMaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaNakakakakakakakakakanakakakaOaRaQamaOaOakaSaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaaasaTaVaUaXaWaZaYbcbabfbebhbgbjbibubtbtbtbtbtbwbvaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafagagahagagagagagagagaiaaaaaaaaaaaaasbybxaUaUbzaUaUaUbAaUaUbBbCaJaJbDaJaJbMbLbNaJbWbObeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacababacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkblbmbnbobpbqbpbqbpbrbsaaaaaaaaaaasbXbxaUbYaUaUaUaVaUcababacbcdccaJceaJaJcqcpcscrctbObeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEbFbGbnbHararararararbIaaaaaaasaNaTaUbYbxaUbYaUaUaUbzaUaUaUcubCctaJaJaJaJcwcvcxaJctcybeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPbQbFbnarbRbRbSbRbRbTbUaaaaaaaNczbXbYaUcXjhaUaUaUjiaUcXjiaUbebCjjjljkjkjmjkjkjkjkjojnbeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfcgchcicjckclclclclclcmclclclcmjpakakakakaRjqjqjqamakakakakczjsjrjujtjrjrjwjvjyjxjAjzbeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAcBcCcCaucCcEcFcGcHcIcJcKcIcLcGcMcNcOcPcQcRcMcMcMcMcScTcUavcVaMakakakakakakakakanaRjBamjpcoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAcBcYcZcYdacCcEcMdbcHdcdcdcdccLcMcMdddedededfcMcMcMcMdgdgcMdgcMdhdididjdkdldmdldnaPdodpdqdrazaxaycoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAcBcCdsdtdsdudvcEcMcMcHdcdwdcdccLcMcMdxdydzdAdBcMcMcMcMcMcMcMcMcMaPdjdCdjbJdDdEdFdGaPdHdpdodoawdJcWazaxcoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAcBcCcCdKdLdMdNdOcEcMcMdPdQdQbZdQdScMcMdTcMdUdVdVdVdVdVdVdVdVdVdWcMdhdjdXdjdraxaxaxaxbVcDdIdZeaebdYbbedeedRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
@@ -520,7 +520,7 @@
|
||||
"jZ" = (/obj/structure/table,/obj/item/firstaid_arm_assembly,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/awaymission/centcomAway/hangar)
|
||||
"ka" = (/obj/structure/table,/obj/item/flash,/obj/item/flash,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/awaymission/centcomAway/hangar)
|
||||
"kb" = (/obj/structure/stool/bed/chair{dir = 1},/mob/living/simple_animal/hostile/russian/ranged{loot = list(/obj/effect/landmark/mobcorpse/russian/ranged)},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/awaymission/centcomAway/hangar)
|
||||
"kc" = (/obj/structure/table,/obj/item/mmi/radio_enabled,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/awaymission/centcomAway/hangar)
|
||||
"kc" = (/obj/structure/table,/obj/item/mmi,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/awaymission/centcomAway/hangar)
|
||||
"kd" = (/obj/structure/table,/obj/item/storage/toolbox/mechanical,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/awaymission/centcomAway/hangar)
|
||||
"ke" = (/obj/machinery/door/airlock/maintenance_hatch{req_access_txt = "101"},/turf/simulated/floor/plating,/area/awaymission/centcomAway/general)
|
||||
"kf" = (/obj/machinery/door/window/northright,/obj/machinery/door/window/southleft,/turf/simulated/floor/plasteel{icon_state = "floor"},/area/awaymission/centcomAway/general)
|
||||
@@ -971,4 +971,3 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
"}
|
||||
|
||||
|
||||
@@ -2683,7 +2683,7 @@
|
||||
"aZE" = (/obj/item/radio/intercom{pixel_x = 25},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/window/reinforced,/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/simulated/floor/wood,/area/crew_quarters/bar)
|
||||
"aZF" = (/obj/machinery/door/airlock/public/glass{name = "Central Access"},/turf/simulated/floor/plasteel,/area/hallway/primary/fore)
|
||||
"aZG" = (/obj/machinery/door/airlock/public/glass{name = "Central Access"},/turf/simulated/floor/plasteel{icon_state = "bluecorner"},/area/hallway/primary/fore)
|
||||
"aZH" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 3; name = "Atmospherics Requests Console"; pixel_y = -30},/obj/item/stack/sheet/glass{amount = 50},/obj/item/clothing/head/welding,/obj/item/clothing/head/welding,/turf/simulated/floor/plasteel,/area/atmos)
|
||||
"aZH" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 3; name = "Atmospherics Requests Console"; pixel_y = -30},/obj/item/stack/sheet/glass{amount = 50},/obj/item/clothing/head/welding,/obj/item/clothing/head/welding,/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/turf/simulated/floor/plasteel,/area/atmos)
|
||||
"aZI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
|
||||
"aZJ" = (/obj/effect/decal/cleanable/cobweb,/obj/item/clothing/mask/muzzle/gag,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig)
|
||||
"aZK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
|
||||
@@ -5878,7 +5878,7 @@
|
||||
"cjb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id_tag = "telescienceblast"; name = "test chamber blast doors"; opacity = 0},/turf/simulated/floor/engine,/area/toxins/explab_chamber)
|
||||
"cjc" = (/obj/structure/sign/poster/random{pixel_x = 32},/obj/machinery/photocopier,/turf/simulated/floor/wood,/area/blueshield)
|
||||
"cjd" = (/obj/machinery/photocopier,/turf/simulated/floor/wood,/area/ntrep)
|
||||
"cje" = (/obj/structure/table/wood,/obj/item/clipboard{pixel_x = -2},/obj/item/folder,/obj/item/stamp/centcom,/obj/item/pen/multi/fountain,/turf/simulated/floor/carpet,/area/ntrep)
|
||||
"cje" = (/obj/structure/table/wood,/obj/item/clipboard{pixel_x = -2},/obj/item/folder,/obj/item/pen/multi/fountain,/obj/item/stamp/rep,/turf/simulated/floor/carpet,/area/ntrep)
|
||||
"cjf" = (/obj/structure/table/wood,/obj/machinery/computer/skills{req_access_txt = "57"},/turf/simulated/floor/carpet,/area/ntrep)
|
||||
"cjg" = (/obj/machinery/door/window{dir = 1; name = "Desk Door"; req_access_txt = "73"},/obj/machinery/keycard_auth{pixel_x = 24; pixel_y = 0},/turf/simulated/floor/wood,/area/ntrep)
|
||||
"cjh" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/aft)
|
||||
@@ -6395,7 +6395,7 @@
|
||||
"csY" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology)
|
||||
"csZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology)
|
||||
"cta" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology)
|
||||
"ctb" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology)
|
||||
"ctb" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology)
|
||||
"ctc" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/decal/warning_stripes/east,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology)
|
||||
"ctd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology)
|
||||
"cte" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/obj/effect/decal/warning_stripes/north,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology)
|
||||
@@ -7091,6 +7091,7 @@
|
||||
"cGs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft)
|
||||
"cGt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft)
|
||||
"cGu" = (/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"; tag = "icon-pipe-j1 (WEST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft)
|
||||
"cGv" = (/obj/machinery/door/airlock/maintenance,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/asmaint)
|
||||
"cGw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft)
|
||||
"cGx" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft)
|
||||
"cGy" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera{c_tag = "Aft Primary Hallway 3"; dir = 2; network = list("SS13")},/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellowcorner"},/area/hallway/primary/aft)
|
||||
@@ -7632,7 +7633,7 @@
|
||||
"cQO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/genetics)
|
||||
"cQP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel,/area/atmos)
|
||||
"cQQ" = (/obj/machinery/pipedispenser/disposal,/turf/simulated/floor/plasteel,/area/atmos)
|
||||
"cQR" = (/obj/machinery/door/airlock/maintenance,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint)
|
||||
"cQR" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/door/airlock/external{aiControlDisabled = 0; frequency = 1379; hackProof = 0; icon_state = "door_locked"; id_tag = "atmospherics_south_inner"; locked = 1; name = "Atmospherics External Access"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/engine/engineering)
|
||||
"cQS" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id_tag = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/equipmentstorage)
|
||||
"cQT" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel,/area/atmos/distribution)
|
||||
"cQU" = (/obj/machinery/light_switch{pixel_x = 27},/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 1},/obj/effect/decal/warning_stripes/northwest,/turf/simulated/floor/plating,/area/storage/secure)
|
||||
@@ -8229,6 +8230,7 @@
|
||||
"dcn" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/wall/r_wall,/area/engine/engineering)
|
||||
"dco" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/central/ne)
|
||||
"dcp" = (/obj/machinery/porta_turret{dir = 1},/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "darkbluecorners"},/area/turret_protected/aisat_interior)
|
||||
"dcq" = (/obj/machinery/door/airlock/external{aiControlDisabled = 0; frequency = 1379; hackProof = 0; icon_state = "door_locked"; id_tag = "atmospherics_south_outer"; locked = 1; name = "Atmospherics External Access"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/engine/engineering)
|
||||
"dcs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/decal/cleanable/fungus,/turf/simulated/wall/r_wall,/area/engine/engineering)
|
||||
"dct" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/plasteel,/area/atmos)
|
||||
"dcv" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/turf/simulated/floor/plasteel,/area/atmos)
|
||||
@@ -8626,8 +8628,6 @@
|
||||
"dmt" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/visible/purple,/turf/simulated/floor/plating,/area/maintenance/asmaint)
|
||||
"dmu" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/maintenance/asmaint2)
|
||||
"dmv" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "atmospherics_south_pump"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "atmospherics_south_sensor"; pixel_x = -8; pixel_y = -30},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "atmospherics_south"; pixel_x = 0; pixel_y = -25; req_access_txt = null; tag_airpump = "atmospherics_south_pump"; tag_chamber_sensor = "atmospherics_south_sensor"; tag_exterior_door = "atmospherics_south_outer"; tag_interior_door = "atmospherics_south_inner"},/turf/simulated/floor/plating,/area/engine/engineering)
|
||||
"dmw" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/door/airlock/external{aiControlDisabled = 1; frequency = 1379; hackProof = 1; icon_state = "door_locked"; id_tag = "atmospherics_south_inner"; locked = 1; name = "Atmospherics External Access"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/engine/engineering)
|
||||
"dmx" = (/obj/machinery/door/airlock/external{aiControlDisabled = 1; frequency = 1379; hackProof = 1; icon_state = "door_locked"; id_tag = "atmospherics_south_outer"; locked = 1; name = "Atmospherics External Access"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/engine/engineering)
|
||||
"dmy" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 1; frequency = 1443; id = "air_in"},/turf/simulated/floor/engine/insulated,/area/maintenance/turbine)
|
||||
"dmz" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; initialize_directions = 1; internal_pressure_bound = 4000; on = 0; pressure_checks = 2; pump_direction = 0},/obj/structure/sign/vacuum{pixel_y = -30},/turf/simulated/floor/engine/insulated,/area/maintenance/turbine)
|
||||
"dmA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/igniter{icon_state = "igniter0"; id = "gasturbine"; on = 0},/turf/simulated/floor/engine/insulated,/area/maintenance/turbine)
|
||||
@@ -9097,7 +9097,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaaaabaaaaaaaaaaabaabaabaaaaaaaabaabaaaalvaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabcXudbjcZucZucZucZucZudardbtdblcOqcOtcOrdarcKUdbqdbrcHhcVjcVjdbsdbBdbydbEdbCdbGdbFdbzcSUdbAcKLcNXcPgdacdbJcSUdbDcZSdbKdbLcSddaMdaNdbNcSddaPdaVcXTcXUcPicYbdbIcTodbScLVdbWcQZcRecBPckKchfdbMdbMcJqchfcLYcsLcLZcIjcMccMbcMecMdcJGcJvcyPctrcIqciYbQXbQXcMhciYbQXaqFcBRdbRcJKcJKcxNdbRcJKcJKcxNdbRcJKcJKcBRaaaaaaaaaaabaabaaaaaaaaacuQbGGbGGcFccuQbGGbGGbGGbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvalwalwamhalvalvalvalvalwalvalvalwdbTaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXudbUcZwcZucZucZudbVdardblcPkcMOcMTcMScMVcMUcMYcMWcMZcVjdcmdcldchcPlcPEcPDcPWcPFdcndcwdbrcHhcWecPXcZMcQccSUdcscZSdctdcLcSddaMdaNcZccSddcvdaVcXTdcOcQecZedcScSndcTdbbdbbcQZcRecBQckKdcAcuccABcJqchfchfcNdcNecDncNfcNfcNgchfchfchfchfctrcIqciYbQXcNhcKFciYcepcepcBRcBRcBRcBRcBRcBRcBRcBRcBRcBRcBRcBRcBRaaaaaaaaaaaaaabaabaaaaaabGHbGHbGHcFccuQdcJdcKbGGbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcXucXucXudcUdcMdcMdcMdardcNcQjdcPdcPdcQdcWdawcNidcXcNkcNjcNjcNWcNZcQFcOaddbcOccQGcNZcOdcOfcOecOhcOgcOicQHddrdbDcZSddmddscSddaMcSdddtcSddaPdaVcXTcXUddxcYbdbIcQZcQZcQZcQZcQZcRecBQcOjcYlcuccTBcOScOPcOVcOPcOXcsLcsLcsLcsLczfchfcPacPecPbcPfcGLbQXcFvcepcepaaaaaaddFaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaabaaabGHcJQddBddKcuQddJddIbGGbZZaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddLcXucZucZucZudcMaabaabdarddGcQJdcPdcPcQUdarcRgcRwcRrcSvcStcSNcSxcSUcUBcQbddScVjcVccSUcVpcVqcVqcSvcSvcVucVrcSUddZcZSdeadehcSddaMcSdcZUdagdecdeidaYdejdekcXcdelcSndendemdemcQZcRecBQcsLckKchfchfcPdchfchfcsLcQlcyJcyJcyJcsLcQucQRcQOcQXcQWcDocepcepcepcepaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaabaabbGHdbgcAScaccuQcuQcuQbGGbGHaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddLcXucZucZucZudcMaabaabdarddGcQJdcPdcPcQUdarcRgcRwcRrcSvcStcSNcSxcSUcUBcQbddScVjcVccSUcVpcVqcVqcSvcSvcVucVrcSUddZcZSdeadehcSddaMcSdcZUdagdecdeidaYdejdekcXcdelcSndendemdemcQZcRecBQcsLckKchfchfcPdchfchfcsLcQlcyJcyJcyJcsLcQucGvcQOcQXcQWcDocepcepcepcepaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaabaabbGHdbgcAScaccuQcuQcuQbGGbGHaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcXucZucZucZudcMaabaaadardescQJdcPdcPcVvdardeucQYcSUdeFcRbcRbcRfcSUcVwdeAdeBdeCcVycSUcRbcRbcRbdeFcSUcRhdeucSUdbDcZSdeOdePdeHdeIdeJdeKdeQdeRcXbdeUcXUdeVcYbdbIcTodeXcRideYcQZcRecBPcBPckKcprdeScRjdeTchfcsLdfadeZdffcRkcRmcRlchfciYciYcRncepcepaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaabGHbGHbGHbGHbGHdfhcaccuQdfidfcbGGbGHaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXucXudcMdcUdfdaaaaaadardfecVzdcPdcPcVAdardfwcRodfzdfkcRpcRqcRpdfocVBdfqdfrdfscQHdfocRpcRpcRpdftdfzcRsdfvcSUdbDdfEdaMdfxdfydeQdfFdfGdfBdfIdfHdfKdfJdfNcZedcScSndfOdemdemcQZcRecBPcsLcOjcSfcScdfgcsKchfdgmcTBcsLcYidfLcsLcYicBNchfcSgcFcbGHaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaabGHbGGbGGbGGcJQdfSdfUcuQdfPbGGbGGbGHaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfXdfYdfYdfZdfYdfYdgadardfVcQjdcPdcPcVCdardaGcSicSUcSUdfodfodfodfocVGcVScVNcSvcVTdfodfodfodfocSUcSUcSydglcSUdbDcZSdgrdgsdfydggdghcSdcSddgtcXWdggcXUdgjcYbdbIcQZcQZcQZcQZcQZcRecBPcTBcsLdgkdgCcsLdgmchfchfdgnchfdgocpscJGcYichfchfcuQcFcbGHaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaabGHbGHcuQdgAdgycJQdfScacbGGbGGbGGdgBbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
@@ -9111,7 +9111,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabafOaabafOafOaabaabaabalwalwcSUcSUcUpdibaaacTDcTEaaaaaaaabdledlfdlgaabaaaaaacUlcTFaaadibcUqcSUcSUdaGcSUcQZdkOdlvdkOcQZdkTdlwdkTcQZdkVdlxdkVcQZaabdhKaaaalwaaadjddgSdgSdgSdlldlmdlndlydlndlmdkPdlpcsLdlAdlrdfMddHcYidlscBPcBQcBQcBQdlKaabaabaaabZZdlBdlCcuQbGGdlDdlJdbgcuQdlPbGGcuQdlzbGGbGGdlLbGGbGHbGHbGHbZZbZZbGHdjQdlSdlRdlUdjQaabaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaabaaaaaaaabaabalwcSUcSUcTtdibaaacTxafOaaadlEaabdlFdlGdlHaabaabdjqafOcTxaaadibcTtcSUcSUdaGcSUcQZcQZcQZcQZcQZcQZcQZcQZcQZcQZcQZcQZcQZaabdhKaaaayiaaadjdaaaaaaaaadlIdlmdlVdlXdlWdlmcsLdlMcsLcsLdlNdlOcXrdmcdlQcBPaaaaaaaaaaaaaaaaabaaabZZdlZdmbdlLbGGdgybGGbGGdlLdjobGGcuQcuQcuQcuQcuQbGGbGHaabaaaaaaaaaaabdlTdlTdmddlTdlTaabaabdhcaabaabdjTaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabcSUcSCcUodibaaacTxafOaaaaaaaabaabaabaabaabaaaaaaafOcTxaaadibcUncTmcSUdmecSUcSUcSUcSUdmfdhhdhhdhhdhhdhhdhhdhhdhhdhhdhhdmgaabaabaabdjEaaaaaaaaadlYdlmdlndmhdlndlmdmadmidfMdfMdmldmrdmmcBPcBPcBPaaaaaaaaaaaaaaaaabaaabZZdlBdmncuQdbgbGGbGGdmpcuQdmqbGGbGGbGGbGGbGGbGGbGGbGHaabaaaaaaaaaaabaaadlTdmsdlTaaaaabaaaaabaaaaaaaabaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaabcSUcTtdibdmjaaacTDcTEaaaaaaaaaaabaaaaaaaaaaaaaaacUlcTFaaadibdibcTtcSUdmkdmwdmvdaGdmxdmgaabaabaabaabaabaabaabdmoaabaabaabaabaabaabdjEaabaabaabdlYdlmdmydmAdmzdmEaabdmacBPcBQdmtcBQcBPcBPaaaaabaaaaaaaaaaaaaaaaabaabbZZbZZbZZbGHbGHbGHbGGcuQbGHdmubGHbGHdbgbPAcLhbKlcMsbGHaabaaaaaaaaaaabaaadlTdmGdlTaaaaabaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaabcSUcTtdibdmjaaacTDcTEaaaaaaaaaaabaaaaaaaaaaaaaaacUlcTFaaadibdibcTtcSUdmkcQRdmvdaGdcqdmgaabaabaabaabaabaabaabdmoaabaabaabaabaabaabdjEaabaabaabdlYdlmdmydmAdmzdmEaabdmacBPcBQdmtcBQcBPcBPaaaaabaaaaaaaaaaaaaaaaabaabbZZbZZbZZbGHbGHbGHbGGcuQbGHdmubGHbGHdbgbPAcLhbKlcMsbGHaabaaaaaaaaaaabaaadlTdmGdlTaaaaabaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcSUcUDdbudiPaabcTxafOdjqaaaaaadjqaaaaaaaaaaaadjqafOcTxaaadiRdbQcUEcSUdmLcSUcSUcSUcSUcSUcSUaaaaaaaabaaaaaaaaadmoaaaaaadmBdmBdmBdmBdmCaaaaaaaabdlYdmDdlmdmOdlmdlmaaaaabaaaaaadmFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaabGHdmbdmMbGHdmNaabbGHbGHbZZbZZcMsbGHaaaaabaaaaaaaaaaabaaaaaadmRaaaaaaaabaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSUcUFcUIcUHaaacTxafOafOdcfafOafOdcfafOafOdcfafOafOcTxaaacUJcUIcUKcSUdmPdmQdnjdnldnkdnmdmVdmWdmWdmXdmWdmWdmWdmYdmWdmWdmZdnadnbdnodmCaaaaaaaabdndaHQdlmdnedlmdnfaabaabaaaaaadngaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaabpaaaaaabGHdnqdnnbGHdnpaabaaaaabaaaaaaaabaaaaaaaabaaaaaaaaaaabaaaaaadnraaaaaaaabaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnscSUcSUcULaaacUMcSFcSFcUOcSFcSFcUOcSFcSFcUOcSFcSFcUQaaacULcSUcSUcSUdmPdnBdnAdnEdnCdnHdfoaaaaaaaabaaaaaaaaadmodmBdmBdmBbfmbJNdnvdmCaaaaaaaabaabaHQdnxdnIdnxaHQaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaabZZdnJbZZbZZaabdhcaaaaabaaaaaaaabaaaamWamWalwayiaabaabaabaabdnLaabaabaabaabdhcamhamWamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/machinery/atmospherics/binary
|
||||
dir = SOUTH
|
||||
initialize_directions = SOUTH|NORTH
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
|
||||
var/datum/gas_mixture/air1
|
||||
var/datum/gas_mixture/air2
|
||||
@@ -150,4 +150,4 @@
|
||||
|
||||
/obj/machinery/atmospherics/binary/process_atmos()
|
||||
..()
|
||||
return parent1 && parent2
|
||||
return parent1 && parent2
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
name = "omni device"
|
||||
icon = 'icons/atmos/omni_devices.dmi'
|
||||
icon_state = "base"
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
initialize_directions = 0
|
||||
|
||||
can_unwrench = 1
|
||||
@@ -299,4 +299,4 @@
|
||||
for(var/datum/omni_port/port in ports)
|
||||
if(!port.parent)
|
||||
return 0
|
||||
return 1
|
||||
return 1
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/machinery/atmospherics/trinary
|
||||
dir = SOUTH
|
||||
initialize_directions = SOUTH|NORTH|WEST
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
|
||||
var/on = 0
|
||||
|
||||
@@ -209,4 +209,4 @@
|
||||
|
||||
/obj/machinery/atmospherics/trinary/process_atmos()
|
||||
..()
|
||||
return parent1 && parent2 && parent3
|
||||
return parent1 && parent2 && parent3
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
icon = 'icons/obj/atmospherics/cold_sink.dmi'
|
||||
icon_state = "on_cool"
|
||||
density = 1
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
|
||||
name = "cold sink"
|
||||
desc = "Cools gas when connected to pipe network"
|
||||
@@ -39,4 +39,4 @@
|
||||
|
||||
if(abs(old_temperature-air_contents.temperature) > 1)
|
||||
parent.update = 1
|
||||
return 1
|
||||
return 1
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
icon = 'icons/obj/atmospherics/cold_sink.dmi'
|
||||
icon_state = "intact_off"
|
||||
density = 1
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
|
||||
name = "heat reservoir"
|
||||
desc = "Heats gas when connected to pipe network"
|
||||
@@ -38,4 +38,4 @@
|
||||
|
||||
if(abs(old_temperature-air_contents.temperature) > 1)
|
||||
parent.update = 1
|
||||
return 1
|
||||
return 1
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/machinery/atmospherics/unary/outlet_injector
|
||||
icon = 'icons/atmos/injector.dmi'
|
||||
icon_state = "map_injector"
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
layer = 3
|
||||
|
||||
can_unwrench = 1
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
name = "air vent"
|
||||
desc = "Has a valve and pump attached to it"
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
|
||||
can_unwrench = 1
|
||||
var/open = 0
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
name = "air scrubber"
|
||||
desc = "Has a valve and pump attached to it"
|
||||
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 10
|
||||
active_power_usage = 60
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
var/volume = 0
|
||||
force = 20
|
||||
layer = 2.4 //under wires with their 2.44
|
||||
use_power = 0
|
||||
use_power = NO_POWER_USE
|
||||
can_unwrench = 1
|
||||
var/alert_pressure = 80*ONE_ATMOSPHERE //minimum pressure before check_pressure(...) should be called
|
||||
|
||||
|
||||
@@ -35,8 +35,8 @@
|
||||
#define MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND 0.012
|
||||
#define MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND 4 //Minimum temperature difference before group processing is suspended
|
||||
#define MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER 0.5 //Minimum temperature difference before the gas temperatures are just set to be equal
|
||||
#define MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION T20C+10
|
||||
#define MINIMUM_TEMPERATURE_START_SUPERCONDUCTION T20C+200
|
||||
#define MINIMUM_TEMPERATURE_FOR_SUPERCONDUCTION (T20C+10)
|
||||
#define MINIMUM_TEMPERATURE_START_SUPERCONDUCTION (T20C+200)
|
||||
#define FLOOR_HEAT_TRANSFER_COEFFICIENT 0.4
|
||||
#define WALL_HEAT_TRANSFER_COEFFICIENT 0.0
|
||||
#define DOOR_HEAT_TRANSFER_COEFFICIENT 0.0
|
||||
@@ -45,8 +45,8 @@
|
||||
#define WINDOW_HEAT_TRANSFER_COEFFICIENT 0.1 //a hack for now
|
||||
//Must be between 0 and 1. Values closer to 1 equalize temperature faster
|
||||
//Should not exceed 0.4 else strange heat flow occur
|
||||
#define FIRE_MINIMUM_TEMPERATURE_TO_SPREAD 150+T0C
|
||||
#define FIRE_MINIMUM_TEMPERATURE_TO_EXIST 100+T0C
|
||||
#define FIRE_MINIMUM_TEMPERATURE_TO_SPREAD (150+T0C)
|
||||
#define FIRE_MINIMUM_TEMPERATURE_TO_EXIST (100+T0C)
|
||||
#define FIRE_SPREAD_RADIOSITY_SCALE 0.85
|
||||
#define FIRE_CARBON_ENERGY_RELEASED 2500000 //Amount of heat released per mole of burnt carbon into the tile
|
||||
#define FIRE_PLASMA_ENERGY_RELEASED 15000000 //Amount of heat released per mole of burnt plasma into the tile
|
||||
@@ -56,8 +56,8 @@
|
||||
//Plasma fire properties
|
||||
#define OXYGEN_BURN_RATE_BASE 7
|
||||
#define PLASMA_BURN_RATE_DELTA 20
|
||||
#define PLASMA_MINIMUM_BURN_TEMPERATURE 100+T0C
|
||||
#define PLASMA_UPPER_TEMPERATURE 1370+T0C
|
||||
#define PLASMA_MINIMUM_BURN_TEMPERATURE (100+T0C)
|
||||
#define PLASMA_UPPER_TEMPERATURE (1370+T0C)
|
||||
#define PLASMA_MINIMUM_OXYGEN_NEEDED 2
|
||||
#define PLASMA_MINIMUM_OXYGEN_PLASMA_RATIO 30
|
||||
#define PLASMA_OXYGEN_FULLBURN 10
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
#define CANPUSH 8
|
||||
#define PASSEMOTES 16 //Mob has a cortical borer or holders inside of it that need to see emotes.
|
||||
#define GOTTAGOFAST 32
|
||||
#define GOTTAGOREALLYFAST 64
|
||||
#define GOTTAGOFAST_METH 64
|
||||
#define IGNORESLOWDOWN 128
|
||||
#define GODMODE 4096
|
||||
#define FAKEDEATH 8192 //Replaces stuff like changeling.changeling_fakedeath
|
||||
|
||||
@@ -5,3 +5,10 @@
|
||||
#define CAT_FOOD "Food"
|
||||
#define CAT_MISC "Misc"
|
||||
#define CAT_PRIMAL "Tribal"
|
||||
|
||||
#define RECIPE_MICROWAVE "Microwave"
|
||||
#define RECIPE_OVEN "Oven"
|
||||
#define RECIPE_GRILL "Grill"
|
||||
#define RECIPE_CANDY "Candy"
|
||||
|
||||
#define RECIPE_FAIL null
|
||||
@@ -370,4 +370,7 @@
|
||||
// used for alternate_option
|
||||
#define GET_RANDOM_JOB 0
|
||||
#define BE_ASSISTANT 1
|
||||
#define RETURN_TO_LOBBY 2
|
||||
#define RETURN_TO_LOBBY 2
|
||||
|
||||
//Melting Temperatures for various specific objects
|
||||
#define GIRDER_MELTING_TEMP 5000
|
||||
@@ -129,6 +129,9 @@
|
||||
#define TINT_BLIND 3 //Threshold of tint level to obscure vision fully
|
||||
#define EYE_SHINE_THRESHOLD 6 //dark_view threshold past which a humanoid's eyes will 'shine' in the dark.
|
||||
|
||||
#define EMOTE_VISUAL 1 //A mob emote is visual
|
||||
#define EMOTE_SOUND 2 //A mob emote is sound
|
||||
|
||||
//Human sub-species
|
||||
#define isshadowling(A) (is_species(A, /datum/species/shadow/ling))
|
||||
#define isshadowlinglesser(A) (is_species(A, /datum/species/shadow/ling/lesser))
|
||||
|
||||
@@ -91,6 +91,9 @@
|
||||
/proc/log_adminsay(text, mob/speaker)
|
||||
if(config.log_adminchat)
|
||||
WRITE_LOG(GLOB.world_game_log, "ADMINSAY: [speaker.simple_info_line()]: [html_decode(text)][log_end]")
|
||||
|
||||
/proc/log_qdel(text)
|
||||
WRITE_LOG(GLOB.world_qdel_log, "QDEL: [text]")
|
||||
|
||||
/proc/log_mentorsay(text, mob/speaker)
|
||||
if(config.log_adminchat)
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
|
||||
/* This is used for displaying the "station time" equivelent of a world.time value
|
||||
Calling it with no args will give you the current time, but you can specify a world.time-based value as an argument
|
||||
- You can use this, for example, to do "This will expire at [station_time_at(world.time + 500)]" to display a "station time" expiration date
|
||||
- You can use this, for example, to do "This will expire at [station_time_at(world.time + 500)]" to display a "station time" expiration date
|
||||
which is much more useful for a player)*/
|
||||
/proc/station_time(time=world.time, display_only=FALSE)
|
||||
return ((((time - round_start_time)) + GLOB.gametime_offset) % 864000) - (display_only ? GLOB.timezoneOffset : 0)
|
||||
@@ -93,8 +93,8 @@ proc/isDay(var/month, var/day)
|
||||
/proc/stop_watch(wh)
|
||||
return round(0.1 * (TimeOfGame - wh), 0.1)
|
||||
|
||||
/proc/month2number(month)
|
||||
return month_names.Find(month)
|
||||
/proc/numberToMonthName(number)
|
||||
return month_names.Find(number)
|
||||
|
||||
//Take a value in seconds and returns a string of minutes and seconds in the format X minute(s) and X seconds.
|
||||
/proc/seconds_to_time(var/seconds as num)
|
||||
|
||||
@@ -31,6 +31,16 @@ var/list/round_end_sounds = list( // Maps available round end sounds to their du
|
||||
'sound/goonstation/misc/newround2.ogg' = 14.8 SECONDS
|
||||
)
|
||||
|
||||
GLOBAL_LIST_INIT(cooking_recipe_types, list(
|
||||
RECIPE_MICROWAVE = /datum/recipe/microwave,
|
||||
RECIPE_OVEN = /datum/recipe/oven,
|
||||
RECIPE_GRILL = /datum/recipe/grill,
|
||||
RECIPE_CANDY = /datum/recipe/candy
|
||||
))
|
||||
GLOBAL_LIST_INIT(cooking_recipes, list(RECIPE_MICROWAVE = list(), RECIPE_OVEN = list(), RECIPE_GRILL = list(), RECIPE_CANDY = list()))
|
||||
GLOBAL_LIST_INIT(cooking_ingredients, list(RECIPE_MICROWAVE = list(), RECIPE_OVEN = list(), RECIPE_GRILL = list(), RECIPE_CANDY = list()))
|
||||
GLOBAL_LIST_INIT(cooking_reagents, list(RECIPE_MICROWAVE = list(), RECIPE_OVEN = list(), RECIPE_GRILL = list(), RECIPE_CANDY = list()))
|
||||
|
||||
GLOBAL_LIST(station_level_space_turfs)
|
||||
|
||||
#define EGG_LAYING_MESSAGES list("lays an egg.", "squats down and croons.", "begins making a huge racket.", "begins clucking raucously.")
|
||||
#define EGG_LAYING_MESSAGES list("lays an egg.", "squats down and croons.", "begins making a huge racket.", "begins clucking raucously.")
|
||||
|
||||
@@ -6,6 +6,8 @@ GLOBAL_VAR(config_error_log)
|
||||
GLOBAL_PROTECT(config_error_log)
|
||||
GLOBAL_VAR(world_runtime_log)
|
||||
GLOBAL_PROTECT(world_runtime_log)
|
||||
GLOBAL_VAR(world_qdel_log)
|
||||
GLOBAL_PROTECT(world_qdel_log)
|
||||
GLOBAL_VAR(world_href_log)
|
||||
GLOBAL_PROTECT(world_href_log)
|
||||
|
||||
|
||||
@@ -85,6 +85,7 @@
|
||||
var/githuburl = "http://example.org"
|
||||
var/donationsurl = "http://example.org"
|
||||
var/repositoryurl = "http://example.org"
|
||||
var/discordurl = "http://example.org"
|
||||
|
||||
var/overflow_server_url
|
||||
var/forbid_singulo_possession = 0
|
||||
@@ -388,7 +389,10 @@
|
||||
|
||||
if("githuburl")
|
||||
config.githuburl = value
|
||||
|
||||
|
||||
if("discordurl")
|
||||
config.discordurl = value
|
||||
|
||||
if("donationsurl")
|
||||
config.donationsurl = value
|
||||
|
||||
@@ -782,4 +786,4 @@
|
||||
if(M.can_start())
|
||||
runnable_modes[M] = probabilities[M.config_tag]
|
||||
// to_chat(world, "DEBUG: runnable_mode\[[runnable_modes.len]\] = [M.config_tag]")
|
||||
return runnable_modes
|
||||
return runnable_modes
|
||||
|
||||
@@ -284,9 +284,12 @@ SUBSYSTEM_DEF(air)
|
||||
/datum/controller/subsystem/air/proc/setup_allturfs(var/list/turfs_to_init = block(locate(1, 1, 1), locate(world.maxx, world.maxy, world.maxz)))
|
||||
var/list/active_turfs = src.active_turfs
|
||||
|
||||
// Clear active turfs - faster than removing every single turf in the world
|
||||
// one-by-one, and Initalize_Atmos only ever adds `src` back in.
|
||||
active_turfs.Cut()
|
||||
|
||||
for(var/thing in turfs_to_init)
|
||||
var/turf/T = thing
|
||||
active_turfs -= T
|
||||
if(T.blocks_air)
|
||||
continue
|
||||
T.Initialize_Atmos(times_fired)
|
||||
|
||||
@@ -59,7 +59,7 @@ SUBSYSTEM_DEF(garbage)
|
||||
msg += " | Fail:[fail_counts.Join(",")]"
|
||||
..(msg)
|
||||
|
||||
/* TO-DO
|
||||
|
||||
/datum/controller/subsystem/garbage/Shutdown()
|
||||
//Adds the del() log to the qdel log file
|
||||
var/list/dellog = list()
|
||||
@@ -83,7 +83,6 @@ SUBSYSTEM_DEF(garbage)
|
||||
if(I.no_hint)
|
||||
dellog += "\tNo hint: [I.no_hint] times"
|
||||
log_qdel(dellog.Join("\n"))
|
||||
*/
|
||||
|
||||
/datum/controller/subsystem/garbage/fire()
|
||||
//the fact that this resets its processing each fire (rather then resume where it left off) is intentional.
|
||||
|
||||
@@ -546,7 +546,7 @@
|
||||
to_chat(usr, "This can only be used on instances of type /mob")
|
||||
return
|
||||
|
||||
var/new_name = sanitize(copytext(input(usr,"What would you like to name this mob?","Input a name",M.real_name) as text|null,1,MAX_NAME_LEN))
|
||||
var/new_name = reject_bad_name(sanitize(copytext(input(usr,"What would you like to name this mob?","Input a name",M.real_name) as text|null,1,MAX_NAME_LEN)))
|
||||
if( !new_name || !M ) return
|
||||
|
||||
message_admins("Admin [key_name_admin(usr)] renamed [key_name_admin(M)] to [new_name].")
|
||||
@@ -1215,8 +1215,8 @@
|
||||
return
|
||||
|
||||
switch(Text)
|
||||
if("brute") L.adjustBruteLoss(amount)
|
||||
if("fire") L.adjustFireLoss(amount)
|
||||
if("brute") L.adjustBruteLoss(amount, robotic=1)
|
||||
if("fire") L.adjustFireLoss(amount, robotic=1)
|
||||
if("toxin") L.adjustToxLoss(amount)
|
||||
if("oxygen")L.adjustOxyLoss(amount)
|
||||
if("brain") L.adjustBrainLoss(amount)
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/human/monkey)
|
||||
desc = "If left untreated subject will regurgitate... puppies."
|
||||
severity = MEDIUM
|
||||
var/barklimit = 0
|
||||
|
||||
/datum/disease/lycan/stage_act()
|
||||
..()
|
||||
@@ -33,13 +34,21 @@
|
||||
affected_mob.visible_message("<span class='danger'>[affected_mob] howls!</span>", \
|
||||
"<span class='userdanger'>You howl!</span>")
|
||||
affected_mob.AdjustConfused(rand(6, 8))
|
||||
if(prob(3))
|
||||
if(prob(3) && barklimit <= 10)
|
||||
var/list/puppytype = list(/mob/living/simple_animal/pet/corgi/puppy, /mob/living/simple_animal/pet/pug, /mob/living/simple_animal/pet/fox)
|
||||
var/mob/living/puppypicked = pick(puppytype)
|
||||
affected_mob.visible_message("<span class='danger'>[affected_mob] coughs up [initial(puppypicked.name)]!</span>", \
|
||||
"<span class='userdanger'>You cough up [initial(puppypicked.name)]?!</span>")
|
||||
affected_mob.emote("cough")
|
||||
affected_mob.adjustBruteLoss(5)
|
||||
new puppypicked(affected_mob.loc)
|
||||
new puppypicked(affected_mob.loc)
|
||||
barklimit ++
|
||||
if(prob(1))
|
||||
var/list/plushtype = list(/obj/item/toy/plushie/orange_fox, /obj/item/toy/plushie/corgi, /obj/item/toy/plushie/robo_corgi, /obj/item/toy/plushie/pink_fox)
|
||||
var/obj/item/toy/plushie/coughfox = pick(plushtype)
|
||||
new coughfox(affected_mob.loc)
|
||||
affected_mob.visible_message("<span class='danger'>[affected_mob] coughs up a [initial(coughfox.name)]!</span>", \
|
||||
"<span class='userdanger'>You cough [initial(coughfox.name)] up ?!</span>")
|
||||
|
||||
affected_mob.emote("cough")
|
||||
affected_mob.adjustBruteLoss(5)
|
||||
return
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
//wrapper
|
||||
/proc/do_teleport(ateleatom, adestination, aprecision=0, afteleport=1, aeffectin=null, aeffectout=null, asoundin=null, asoundout=null)
|
||||
/proc/do_teleport(ateleatom, adestination, aprecision=0, afteleport=1, aeffectin=null, aeffectout=null, asoundin=null, asoundout=null, bypass_area_flag=FALSE)
|
||||
var/datum/teleport/instant/science/D = new
|
||||
if(D.start(arglist(args)))
|
||||
return 1
|
||||
@@ -14,14 +14,15 @@
|
||||
var/soundin //soundfile to play before teleportation
|
||||
var/soundout //soundfile to play after teleportation
|
||||
var/force_teleport = 1 //if false, teleport will use Move() proc (dense objects will prevent teleportation)
|
||||
var/ignore_area_flag = FALSE
|
||||
|
||||
|
||||
/datum/teleport/proc/start(ateleatom, adestination, aprecision=0, afteleport=1, aeffectin=null, aeffectout=null, asoundin=null, asoundout=null)
|
||||
/datum/teleport/proc/start(ateleatom, adestination, aprecision=0, afteleport=1, aeffectin=null, aeffectout=null, asoundin=null, asoundout=null, bypass_area_flag=FALSE)
|
||||
if(!initTeleport(arglist(args)))
|
||||
return 0
|
||||
return 1
|
||||
|
||||
/datum/teleport/proc/initTeleport(ateleatom,adestination,aprecision,afteleport,aeffectin,aeffectout,asoundin,asoundout)
|
||||
/datum/teleport/proc/initTeleport(ateleatom, adestination, aprecision, afteleport, aeffectin, aeffectout, asoundin, asoundout, bypass_area_flag=FALSE)
|
||||
if(!setTeleatom(ateleatom))
|
||||
return 0
|
||||
if(!setDestination(adestination))
|
||||
@@ -31,6 +32,7 @@
|
||||
setEffects(aeffectin,aeffectout)
|
||||
setForceTeleport(afteleport)
|
||||
setSounds(asoundin,asoundout)
|
||||
ignore_area_flag = bypass_area_flag
|
||||
return 1
|
||||
|
||||
//must succeed
|
||||
@@ -97,7 +99,8 @@
|
||||
|
||||
var/turf/destturf
|
||||
var/turf/curturf = get_turf(teleatom)
|
||||
var/area/destarea = get_area(destination)
|
||||
var/area/curarea = get_area(curturf)
|
||||
|
||||
if(precision)
|
||||
var/list/posturfs = list()
|
||||
var/center = get_turf(destination)
|
||||
@@ -109,6 +112,18 @@
|
||||
else
|
||||
destturf = get_turf(destination)
|
||||
|
||||
if(!is_teleport_allowed(destturf.z))
|
||||
return 0
|
||||
// Only check the destination zlevel for is_teleport_allowed. Checking origin as well breaks ERT teleporters.
|
||||
|
||||
var/area/destarea = get_area(destturf)
|
||||
|
||||
if(!ignore_area_flag)
|
||||
if(curarea.tele_proof)
|
||||
return 0
|
||||
if(destarea.tele_proof)
|
||||
return 0
|
||||
|
||||
if(!destturf || !curturf)
|
||||
return 0
|
||||
|
||||
|
||||
+5
-4
@@ -479,10 +479,11 @@
|
||||
message_admins("[key_name_admin(usr)] has changed [key_name_admin(current)]'s assigned role to [assigned_role]")
|
||||
|
||||
else if(href_list["memory_edit"])
|
||||
var/new_memo = copytext(input("Write new memory", "Memory", memory) as null|message,1,MAX_MESSAGE_LEN)
|
||||
if(isnull(new_memo))
|
||||
var/messageinput = input("Write new memory", "Memory", memory) as null|message
|
||||
if(isnull(messageinput))
|
||||
return
|
||||
var/confirmed = alert(usr, "Are you sure?", "Edit Memory", "Yes", "No")
|
||||
var/new_memo = copytext(messageinput, 1,MAX_MESSAGE_LEN)
|
||||
var/confirmed = alert(usr, "Are you sure you want to edit their memory? It will wipe out their original memory!", "Edit Memory", "Yes", "No")
|
||||
if(confirmed == "Yes") // Because it is too easy to accidentally wipe someone's memory
|
||||
memory = new_memo
|
||||
log_admin("[key_name(usr)] has edited [key_name(current)]'s memory")
|
||||
@@ -1349,7 +1350,7 @@
|
||||
special_role = SPECIAL_ROLE_VAMPIRE
|
||||
ticker.mode.forge_vampire_objectives(src)
|
||||
ticker.mode.greet_vampire(src)
|
||||
ticker.mode.update_change_icons_added(src)
|
||||
ticker.mode.update_vampire_icons_added(src)
|
||||
|
||||
/datum/mind/proc/make_Changeling()
|
||||
if(!(src in ticker.mode.changelings))
|
||||
|
||||
+13
-14
@@ -53,19 +53,18 @@
|
||||
return -1
|
||||
return .
|
||||
|
||||
/datum/recipe/proc/check_items(obj/container) //1=precisely, 0=insufficiently, -1=superfluous
|
||||
if(!items)
|
||||
if(locate(/obj/) in container)
|
||||
return -1
|
||||
else
|
||||
return 1
|
||||
/datum/recipe/proc/check_items(obj/container, list/ignored_items = null) //1=precisely, 0=insufficiently, -1=superfluous
|
||||
. = 1
|
||||
var/list/checklist = items.Copy()
|
||||
var/list/checklist = items ? items.Copy() : list()
|
||||
for(var/obj/O in container)
|
||||
if(ignored_items && is_type_in_list(O, ignored_items)) //skip if this is something we are ignoring
|
||||
continue
|
||||
if(!items)
|
||||
return -1
|
||||
var/found = 0
|
||||
for(var/type in checklist)
|
||||
if(istype(O,type))
|
||||
checklist-=type
|
||||
checklist -= type
|
||||
found = 1
|
||||
break
|
||||
if(!found)
|
||||
@@ -95,16 +94,16 @@
|
||||
container.reagents.clear_reagents()
|
||||
return result_obj
|
||||
|
||||
/proc/select_recipe(list/datum/recipe/avaiable_recipes, obj/obj, exact = 1 as num)
|
||||
/proc/select_recipe(list/datum/recipe/available_recipes, obj/obj, exact = 1 as num, list/ignored_items = null)
|
||||
if(!exact)
|
||||
exact = -1
|
||||
var/list/datum/recipe/possible_recipes = new
|
||||
for(var/datum/recipe/recipe in avaiable_recipes)
|
||||
if(recipe.check_reagents(obj.reagents)==exact && recipe.check_items(obj)==exact)
|
||||
possible_recipes+=recipe
|
||||
if(possible_recipes.len==0)
|
||||
for(var/datum/recipe/recipe in available_recipes)
|
||||
if(recipe.check_reagents(obj.reagents) == exact && recipe.check_items(obj, ignored_items) == exact)
|
||||
possible_recipes += recipe
|
||||
if(possible_recipes.len == 0)
|
||||
return null
|
||||
else if(possible_recipes.len==1)
|
||||
else if(possible_recipes.len == 1)
|
||||
return possible_recipes[1]
|
||||
else //okay, let's select the most complicated recipe
|
||||
var/r_count = 0
|
||||
|
||||
+28
-12
@@ -146,7 +146,7 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
|
||||
if(!istype(H.shoes, /obj/item/clothing/shoes/sandal))
|
||||
to_chat(user, "<span class='notice'>I don't feel strong enough without my sandals.</span>")
|
||||
return 0
|
||||
if(!istype(H.head, /obj/item/clothing/head/wizard) && !istype(H.head, /obj/item/clothing/head/helmet/space/hardsuit/wizard) && !istype(H.wear_suit, /obj/item/clothing/head/helmet/space/eva/plasmaman/wizard))
|
||||
if(!istype(H.head, /obj/item/clothing/head/wizard) && !istype(H.head, /obj/item/clothing/head/helmet/space/hardsuit/wizard) && !istype(H.head, /obj/item/clothing/head/helmet/space/eva/plasmaman/wizard))
|
||||
to_chat(user, "<span class='notice'>I don't feel strong enough without my hat.</span>")
|
||||
return 0
|
||||
else if(!ishuman(user))
|
||||
@@ -321,28 +321,40 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
|
||||
var/include_user = 0 //if it includes usr in the target list
|
||||
var/random_target = 0 // chooses random viable target instead of asking the caster
|
||||
var/random_target_priority = TARGET_CLOSEST // if random_target is enabled how it will pick the target
|
||||
|
||||
var/humans_only = 0 //for avoiding simple animals and only doing "human" mobs, 0 = all mobs, 1 = humans only
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf //affects all turfs in view or range (depends)
|
||||
var/inner_radius = -1 //for all your ring spell needs
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/choose_targets(mob/user = usr)
|
||||
var/list/targets = list()
|
||||
|
||||
|
||||
switch(max_targets)
|
||||
if(0) //unlimited
|
||||
for(var/mob/living/target in view_or_range(range, user, selection_type))
|
||||
targets += target
|
||||
|
||||
if(!humans_only)
|
||||
for(var/mob/living/target in view_or_range(range, user, selection_type))
|
||||
targets += target
|
||||
else
|
||||
for(var/mob/living/carbon/human/target in view_or_range(range, user, selection_type))
|
||||
targets += target
|
||||
|
||||
if(1) //single target can be picked
|
||||
if(range < 0)
|
||||
targets += user
|
||||
else
|
||||
var/possible_targets = list()
|
||||
|
||||
for(var/mob/living/M in view_or_range(range, user, selection_type))
|
||||
if(!include_user && user == M)
|
||||
continue
|
||||
possible_targets += M
|
||||
|
||||
if(!humans_only)
|
||||
for(var/mob/living/M in view_or_range(range, user, selection_type))
|
||||
if(!include_user && user == M)
|
||||
continue
|
||||
possible_targets += M
|
||||
else
|
||||
for(var/mob/living/carbon/human/M in view_or_range(range, user, selection_type))
|
||||
if(!include_user && user == M)
|
||||
continue
|
||||
possible_targets += M
|
||||
|
||||
//targets += input("Choose the target for the spell.", "Targeting") as mob in possible_targets
|
||||
//Adds a safety check post-input to make sure those targets are actually in range.
|
||||
@@ -366,8 +378,12 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
|
||||
|
||||
else
|
||||
var/list/possible_targets = list()
|
||||
for(var/mob/living/target in view_or_range(range, user, selection_type))
|
||||
possible_targets += target
|
||||
if(!humans_only)
|
||||
for(var/mob/living/target in view_or_range(range, user, selection_type))
|
||||
possible_targets += target
|
||||
else
|
||||
for(var/mob/living/carbon/human/target in view_or_range(range, user, selection_type))
|
||||
possible_targets += target
|
||||
for(var/i=1,i<=max_targets,i++)
|
||||
if(!possible_targets.len)
|
||||
break
|
||||
|
||||
@@ -30,4 +30,28 @@
|
||||
SC.locked = 0
|
||||
C.open()
|
||||
|
||||
return
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/knock/greater
|
||||
name = "Greater Knock"
|
||||
desc = "On first cast, will remove access restrictions on all airlocks on the Cyberiad, and announce this spell's use to the station. On any further cast, will open all doors in sight. Cannot be refunded once bought!"
|
||||
|
||||
charge_max = 200
|
||||
invocation = "MAIOR OXIN FIERA"
|
||||
invocation_type = "shout"
|
||||
range = 7
|
||||
level_max = 0 //Cannot be improved, quality of life since can't be refunded
|
||||
cooldown_min = 200
|
||||
var/used = FALSE
|
||||
|
||||
/obj/effect/proc_holder/spell/aoe_turf/knock/greater/cast(list/targets, mob/user = usr)
|
||||
if(!used)
|
||||
used = TRUE
|
||||
for(var/obj/machinery/door/airlock/A in airlocks)
|
||||
if(is_station_level(A.z))
|
||||
A.req_access = list()
|
||||
A.req_one_access = list()
|
||||
command_announcement.Announce("We have removed all access requirements on your station's airlocks. You can thank us later!", "Greetings!", 'sound/misc/notice2.ogg', , , "Space Wizard Federation Message")
|
||||
else
|
||||
..()
|
||||
return
|
||||
@@ -943,6 +943,8 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
|
||||
/obj/item/reagent_containers/food/condiment/peppermill,
|
||||
/obj/item/kitchen/rollingpin,
|
||||
/obj/item/storage/fancy/egg_box,
|
||||
/obj/item/mixing_bowl,
|
||||
/obj/item/mixing_bowl,
|
||||
/obj/item/reagent_containers/food/condiment/enzyme,
|
||||
/obj/item/reagent_containers/food/condiment/sugar,
|
||||
/obj/item/reagent_containers/food/snacks/meat/monkey,
|
||||
|
||||
+14
-16
@@ -1,16 +1,13 @@
|
||||
var/list/uplink_items = list()
|
||||
GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
|
||||
|
||||
/proc/get_uplink_items(var/job = null)
|
||||
// If not already initialized..
|
||||
var/list/uplink_items = list()
|
||||
if(!uplink_items.len)
|
||||
|
||||
// Fill in the list and order it like this:
|
||||
// A keyed list, acting as categories, which are lists to the datum.
|
||||
|
||||
var/list/last = list()
|
||||
for(var/item in typesof(/datum/uplink_item))
|
||||
for(var/path in GLOB.uplink_items)
|
||||
|
||||
var/datum/uplink_item/I = new item()
|
||||
var/datum/uplink_item/I = new path
|
||||
if(!I.item)
|
||||
continue
|
||||
if(I.gamemodes.len && ticker && !(ticker.mode.type in I.gamemodes))
|
||||
@@ -55,6 +52,9 @@ var/list/uplink_items = list()
|
||||
var/list/job = null
|
||||
var/surplus = 100 //Chance of being included in the surplus crate (when pick() selects it)
|
||||
var/hijack_only = FALSE //can this item be purchased only during hijackings?
|
||||
var/refundable = FALSE
|
||||
var/refund_path = null // Alternative path for refunds, in case the item purchased isn't what is actually refunded (ie: holoparasites).
|
||||
var/refund_amount // specified refund amount in case there needs to be a TC penalty for refunds.
|
||||
|
||||
/datum/uplink_item/proc/spawn_item(var/turf/loc, var/obj/item/uplink/U)
|
||||
if(hijack_only)
|
||||
@@ -214,7 +214,7 @@ var/list/uplink_items = list()
|
||||
|
||||
/datum/uplink_item/jobspecific/rad_laser
|
||||
name = "Radiation Laser"
|
||||
desc = "A radiation laser concealed inside of a Health Analyser. After a moderate delay, causes temporary collapse and radiation. Has adjustable controls, but will not function as a regular health analyser, only appears like one. May not function correctly on radiation resistant humanoids!"
|
||||
desc = "A radiation laser concealed inside of a Health Analyzer. After a moderate delay, causes temporary collapse and radiation. Has adjustable controls, but will not function as a regular health analyzer, only appears like one. May not function correctly on radiation resistant humanoids!"
|
||||
reference = "RL"
|
||||
item = /obj/item/rad_laser
|
||||
cost = 5
|
||||
@@ -352,7 +352,7 @@ var/list/uplink_items = list()
|
||||
item = /obj/item/pen/poison
|
||||
cost = 2
|
||||
excludefrom = list(/datum/game_mode/nuclear)
|
||||
job = list("Head of Personnel", "Quartermaster", "Cargo Technician")
|
||||
job = list("Head of Personnel", "Quartermaster", "Cargo Technician", "Librarian")
|
||||
|
||||
|
||||
// DANGEROUS WEAPONS
|
||||
@@ -500,6 +500,7 @@ var/list/uplink_items = list()
|
||||
reference = "AGG"
|
||||
item = /obj/item/storage/box/syndie_kit/atmosgasgrenades
|
||||
cost = 11
|
||||
surplus = 0
|
||||
|
||||
/datum/uplink_item/dangerous/emp
|
||||
name = "EMP Grenades and Implanter Kit"
|
||||
@@ -540,9 +541,11 @@ var/list/uplink_items = list()
|
||||
desc = "A cyborg designed and programmed for systematic extermination of non-Syndicate personnel."
|
||||
reference = "SC"
|
||||
item = /obj/item/antag_spawner/borg_tele
|
||||
refund_path = /obj/item/antag_spawner/borg_tele
|
||||
cost = 50
|
||||
gamemodes = list(/datum/game_mode/nuclear)
|
||||
surplus = 0
|
||||
refundable = TRUE
|
||||
|
||||
/datum/uplink_item/dangerous/foamsmg
|
||||
name = "Toy Submachine Gun"
|
||||
@@ -571,19 +574,14 @@ var/list/uplink_items = list()
|
||||
gamemodes = list(/datum/game_mode/nuclear)
|
||||
surplus = 0
|
||||
|
||||
|
||||
//for refunding the syndieborg teleporter
|
||||
/datum/uplink_item/dangerous/syndieborg/spawn_item()
|
||||
var/obj/item/antag_spawner/borg_tele/T = ..()
|
||||
if(istype(T))
|
||||
T.TC_cost = cost
|
||||
|
||||
/datum/uplink_item/dangerous/guardian
|
||||
name = "Holoparasites"
|
||||
desc = "Though capable of near sorcerous feats via use of hardlight holograms and nanomachines, they require an organic host as a home base and source of fuel."
|
||||
item = /obj/item/storage/box/syndie_kit/guardian
|
||||
excludefrom = list(/datum/game_mode/nuclear)
|
||||
cost = 12
|
||||
refund_path = /obj/item/guardiancreator/tech/choose
|
||||
refundable = TRUE
|
||||
|
||||
// Ammunition
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
/proc/key_name_helper(whom, include_name, include_link = FALSE, type = null)
|
||||
if(include_link != FALSE && include_link != TRUE)
|
||||
log_runtime(EXCEPTION("Key_name was called with an incorrect include_link [include_link]"))
|
||||
log_runtime(EXCEPTION("Key_name was called with an incorrect include_link [include_link]"), src)
|
||||
|
||||
var/mob/M
|
||||
var/client/C
|
||||
|
||||
@@ -394,4 +394,10 @@
|
||||
for(var/obj/machinery/door/airlock/temp_airlock in src)
|
||||
temp_airlock.prison_open()
|
||||
for(var/obj/machinery/door/window/temp_windoor in src)
|
||||
temp_windoor.open()
|
||||
temp_windoor.open()
|
||||
|
||||
/area/AllowDrop()
|
||||
CRASH("Bad op: area/AllowDrop() called")
|
||||
|
||||
/area/drop_location()
|
||||
CRASH("Bad op: area/drop_location() called")
|
||||
@@ -57,22 +57,32 @@
|
||||
/area/syndicate_depot/core/proc/reset_alert()
|
||||
|
||||
if(used_self_destruct)
|
||||
return
|
||||
for(var/obj/effect/overload/O in src)
|
||||
new /obj/structure/fusionreactor(O.loc)
|
||||
qdel(O)
|
||||
|
||||
if(on_peaceful)
|
||||
peaceful_mode(FALSE, TRUE)
|
||||
|
||||
local_alarm = FALSE
|
||||
called_backup = FALSE
|
||||
unlock_computers()
|
||||
used_self_destruct = FALSE
|
||||
|
||||
run_started = FALSE
|
||||
run_finished = FALSE
|
||||
|
||||
despawn_guards()
|
||||
hostile_list = list()
|
||||
dead_list = list()
|
||||
peaceful_list = list()
|
||||
|
||||
something_looted = FALSE
|
||||
detected_mech = FALSE
|
||||
detected_pod = FALSE
|
||||
detected_double_agent = FALSE
|
||||
updateicon()
|
||||
despawn_guards()
|
||||
|
||||
guard_list = list()
|
||||
hostile_list = list()
|
||||
dead_list = list()
|
||||
peaceful_list = list()
|
||||
|
||||
alert_log += "Alert level reset."
|
||||
|
||||
@@ -97,6 +107,13 @@
|
||||
if(on_peaceful)
|
||||
increase_alert("Thieves!")
|
||||
|
||||
/area/syndicate_depot/core/proc/armory_locker_looted()
|
||||
if(!run_finished && !used_self_destruct)
|
||||
if(shield_list.len)
|
||||
activate_self_destruct("Armory compromised despite armory shield being online.", FALSE)
|
||||
return
|
||||
declare_finished()
|
||||
|
||||
/area/syndicate_depot/core/proc/turret_died()
|
||||
something_looted = TRUE
|
||||
if(on_peaceful)
|
||||
@@ -133,19 +150,12 @@
|
||||
if(L.opened)
|
||||
L.close()
|
||||
if(!L.locked)
|
||||
L.locked = 1
|
||||
L.locked = !L.locked
|
||||
L.req_access = list(access_syndicate_leader)
|
||||
L.update_icon()
|
||||
for(var/obj/machinery/computer/syndicate_depot/teleporter/P in src)
|
||||
if(!P.portal_enabled)
|
||||
P.toggle_portal()
|
||||
for(var/obj/machinery/door/airlock/hatch/syndicate/vault/V in src)
|
||||
if(!V.density)
|
||||
V.close()
|
||||
V.emergency = 0
|
||||
if(!V.locked)
|
||||
V.locked = !V.locked
|
||||
V.update_icon()
|
||||
else
|
||||
log_game("Depot visit: ended")
|
||||
alert_log += "Visitor mode ended."
|
||||
@@ -250,15 +260,17 @@
|
||||
if(user)
|
||||
var/turf/T = get_turf(user)
|
||||
var/area/A = get_area(T)
|
||||
var/log_msg = "[key_name(user)] has armed the depot self destruct device at [A.name] ([T.x],[T.y],[T.z])"
|
||||
var/log_msg = "[key_name(user)] has triggered the depot self destruct at [A.name] ([T.x],[T.y],[T.z])"
|
||||
message_admins(log_msg)
|
||||
log_game(log_msg)
|
||||
playsound(user, 'sound/machines/Alarm.ogg', 100, 0, 0)
|
||||
else
|
||||
log_game("Depot self destruct activated.")
|
||||
if(reactor)
|
||||
reactor.overload(containment_failure)
|
||||
if(!reactor.has_overloaded)
|
||||
reactor.overload(containment_failure)
|
||||
else
|
||||
log_debug("Depot: [src] called activate_self_destruct with no reactor.");
|
||||
message_admins("<span class='adminnotice'>Syndicate Depot lacks reactor to initiate self-destruct. Must be destroyed manually.</span>")
|
||||
updateicon()
|
||||
|
||||
@@ -269,13 +281,17 @@
|
||||
for(var/obj/machinery/door/airlock/A in src)
|
||||
spawn(0)
|
||||
A.close()
|
||||
if(A.density)
|
||||
if(A.density && !A.locked)
|
||||
A.lock()
|
||||
|
||||
/area/syndicate_depot/core/proc/lockout_computers()
|
||||
for(var/obj/machinery/computer/syndicate_depot/C in src)
|
||||
C.activate_security_lockout()
|
||||
|
||||
/area/syndicate_depot/core/proc/unlock_computers()
|
||||
for(var/obj/machinery/computer/syndicate_depot/C in src)
|
||||
C.security_lockout = FALSE
|
||||
|
||||
/area/syndicate_depot/core/proc/toggle_door_locks()
|
||||
for(var/obj/machinery/door/airlock/A in src)
|
||||
A.emergency = !A.emergency
|
||||
@@ -313,6 +329,12 @@
|
||||
if(L.name == "syndi_depot_shield")
|
||||
var/obj/machinery/shieldwall/syndicate/S = new /obj/machinery/shieldwall/syndicate(L.loc)
|
||||
shield_list += S.UID()
|
||||
for(var/obj/structure/closet/secure_closet/syndicate/depot/armory/L in src)
|
||||
if(L.opened)
|
||||
L.close()
|
||||
if(!L.locked)
|
||||
L.locked = !L.locked
|
||||
L.update_icon()
|
||||
|
||||
/area/syndicate_depot/core/proc/shields_key_check()
|
||||
if(!shield_list.len)
|
||||
@@ -327,6 +349,10 @@
|
||||
if(S)
|
||||
qdel(S)
|
||||
shield_list = list()
|
||||
for(var/obj/structure/closet/secure_closet/syndicate/depot/armory/L in src)
|
||||
if(L.locked)
|
||||
L.locked = !L.locked
|
||||
L.update_icon()
|
||||
|
||||
/area/syndicate_depot/core/proc/despawn_guards()
|
||||
for(var/mob/thismob in list_getmobs(guard_list))
|
||||
|
||||
+14
-4
@@ -204,9 +204,6 @@
|
||||
|
||||
|
||||
|
||||
/atom/proc/allow_drop()
|
||||
return 1
|
||||
|
||||
/atom/proc/CheckExit()
|
||||
return 1
|
||||
|
||||
@@ -305,6 +302,10 @@
|
||||
/atom/proc/rpd_act()
|
||||
return
|
||||
|
||||
/atom/proc/rpd_blocksusage()
|
||||
// Atoms that return TRUE prevent RPDs placing any kind of pipes on their turf.
|
||||
return FALSE
|
||||
|
||||
/atom/proc/hitby(atom/movable/AM, skipcatch, hitpush, blocked)
|
||||
if(density && !has_gravity(AM)) //thrown stuff bounces off dense stuff in no grav, unless the thrown stuff ends up inside what it hit(embedding, bola, etc...).
|
||||
addtimer(CALLBACK(src, .proc/hitby_react, AM), 2)
|
||||
@@ -708,4 +709,13 @@ var/list/blood_splatter_icons = list()
|
||||
.["Jump to turf"] = "?_src_=holder;adminplayerobservecoodjump=1;X=[curturf.x];Y=[curturf.y];Z=[curturf.z]"
|
||||
.["Add reagent"] = "?_src_=vars;addreagent=[UID()]"
|
||||
.["Trigger explosion"] = "?_src_=vars;explode=[UID()]"
|
||||
.["Trigger EM pulse"] = "?_src_=vars;emp=[UID()]"
|
||||
.["Trigger EM pulse"] = "?_src_=vars;emp=[UID()]"
|
||||
|
||||
/atom/proc/AllowDrop()
|
||||
return FALSE
|
||||
|
||||
/atom/proc/drop_location()
|
||||
var/atom/L = loc
|
||||
if(!L)
|
||||
return null
|
||||
return L.AllowDrop() ? L : get_turf(L)
|
||||
@@ -428,8 +428,11 @@
|
||||
flick_overlay(I, viewing, 5) // 5 ticks/half a second
|
||||
|
||||
// And animate the attack!
|
||||
animate(I, alpha = 175, pixel_x = 0, pixel_y = 0, pixel_z = 0, time = 3)
|
||||
|
||||
|
||||
var/t_color = "#ffffff"
|
||||
if(ismob(src) && ismob(A) && (!used_item))
|
||||
var/mob/M = src
|
||||
t_color = M.a_intent == INTENT_HARM ? "#ff0000" : "#ffffff"
|
||||
animate(I, alpha = 175, pixel_x = 0, pixel_y = 0, pixel_z = 0, time = 3, color = t_color)
|
||||
|
||||
/atom/movable/proc/portal_destroyed(obj/effect/portal/P)
|
||||
return
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
icon_state = "scanner_open"
|
||||
density = 1
|
||||
anchored = 1.0
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 50
|
||||
active_power_usage = 300
|
||||
interact_offline = 1
|
||||
@@ -103,8 +103,8 @@
|
||||
for(var/obj/item/stock_parts/micro_laser/P in component_parts)
|
||||
damage_coeff = P.rating
|
||||
|
||||
/obj/machinery/dna_scannernew/allow_drop()
|
||||
return 0
|
||||
/obj/machinery/dna_scannernew/AllowDrop()
|
||||
return FALSE
|
||||
|
||||
/obj/machinery/dna_scannernew/relaymove(mob/user as mob)
|
||||
if(user.stat)
|
||||
@@ -359,7 +359,7 @@
|
||||
var/obj/item/disk/data/disk = null
|
||||
var/selected_menu_key = null
|
||||
anchored = 1
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 10
|
||||
active_power_usage = 400
|
||||
var/waiting_for_user_input=0 // Fix for #274 (Mash create block injector without answering dialog to make unlimited injectors) - N3X
|
||||
@@ -533,7 +533,7 @@
|
||||
occupantData["name"] = connected.occupant.dna.real_name
|
||||
occupantData["stat"] = connected.occupant.stat
|
||||
occupantData["isViableSubject"] = 1
|
||||
if((NOCLONE in connected.occupant.mutations && connected.scan_level < 3) || !src.connected.occupant.dna)
|
||||
if((NOCLONE in connected.occupant.mutations && connected.scan_level < 3) || !src.connected.occupant.dna || (NO_DNA in connected.occupant.dna.species.species_traits))
|
||||
occupantData["isViableSubject"] = 0
|
||||
occupantData["health"] = connected.occupant.health
|
||||
occupantData["maxHealth"] = connected.occupant.maxHealth
|
||||
|
||||
@@ -171,11 +171,9 @@
|
||||
H.visible_message("<span class='warning'>[user] sprays a cloud of fine ice crystals engulfing, [H]!</span>",
|
||||
"<span class='warning'>[user] sprays a cloud of fine ice crystals cover your [H.head]'s visor and make it into your air vents!.</span>")
|
||||
add_attack_logs(user, C, "Cryokinesis")
|
||||
H.bodytemperature = max(0, H.bodytemperature - 50)
|
||||
H.adjustFireLoss(5)
|
||||
H.bodytemperature = max(0, H.bodytemperature - 100)
|
||||
if(!handle_suit)
|
||||
C.bodytemperature = max(0, C.bodytemperature - 100)
|
||||
C.adjustFireLoss(10)
|
||||
C.bodytemperature = max(0, C.bodytemperature - 200)
|
||||
C.ExtinguishMob()
|
||||
|
||||
C.visible_message("<span class='warning'>[user] sprays a cloud of fine ice crystals, engulfing [C]!</span>")
|
||||
|
||||
@@ -120,4 +120,17 @@
|
||||
B.mind.special_role = SPECIAL_ROLE_BLOB_OVERMIND
|
||||
spawn(0)
|
||||
if(is_offspring)
|
||||
B.verbs -= /mob/camera/blob/verb/split_consciousness
|
||||
B.verbs -= /mob/camera/blob/verb/split_consciousness
|
||||
|
||||
/obj/structure/blob/core/proc/lateblobtimer()
|
||||
addtimer(CALLBACK(src, .proc/lateblobcheck), 50)
|
||||
|
||||
/obj/structure/blob/core/proc/lateblobcheck()
|
||||
if(overmind)
|
||||
overmind.add_points(60)
|
||||
if(overmind.mind)
|
||||
overmind.mind.special_role = SPECIAL_ROLE_BLOB_OVERMIND
|
||||
else
|
||||
log_debug("/obj/structure/blob/core/proc/lateblobcheck: Blob core lacks a overmind.mind.")
|
||||
else
|
||||
log_debug("/obj/structure/blob/core/proc/lateblobcheck: Blob core lacks an overmind.")
|
||||
@@ -7,7 +7,7 @@
|
||||
var/mob/camera/blob/overmind = null
|
||||
|
||||
/obj/structure/blob/storage/update_icon()
|
||||
if(health <= 0)
|
||||
if(health <= 0 && !QDELETED(src))
|
||||
overmind.max_blob_points -= 50
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -81,3 +81,18 @@
|
||||
if(req_human && !ishuman(user))
|
||||
return 0
|
||||
return 1
|
||||
|
||||
// Transform the target to the chosen dna. Used in transform.dm and tiny_prick.dm (handy for changes since it's the same thing done twice)
|
||||
/obj/effect/proc_holder/changeling/proc/transform_dna(var/mob/living/carbon/human/H, var/datum/dna/D)
|
||||
if(!D)
|
||||
return
|
||||
|
||||
H.set_species(D.species.type)
|
||||
H.dna = D.Clone()
|
||||
H.real_name = D.real_name
|
||||
domutcheck(H, null, MUTCHK_FORCED) //Ensures species that get powers by the species proc handle_dna keep them
|
||||
H.flavor_text = ""
|
||||
H.dna.UpdateSE()
|
||||
H.dna.UpdateUI()
|
||||
H.sync_organ_dna(1)
|
||||
H.UpdateAppearance()
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
var/healpertick = -(total_healing / healing_ticks)
|
||||
user.heal_overall_damage((-healpertick/recent_uses), (-healpertick/recent_uses))
|
||||
user.adjustOxyLoss(healpertick/recent_uses)
|
||||
user.blood_volume += 30
|
||||
user.blood_volume = min(user.blood_volume + 30, BLOOD_VOLUME_NORMAL)
|
||||
user.updatehealth()
|
||||
else
|
||||
break
|
||||
|
||||
@@ -6,6 +6,11 @@
|
||||
dna_cost = 1
|
||||
req_human = 1
|
||||
|
||||
/obj/effect/proc_holder/changeling/headcrab/try_to_sting(mob/user, mob/target)
|
||||
if(alert("Are you sure you wish to do this? This action cannot be undone.",,"Yes","No")=="No")
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/effect/proc_holder/changeling/headcrab/sting_action(mob/user)
|
||||
var/datum/mind/M = user.mind
|
||||
var/list/organs = user.get_organs_zone("head", 1)
|
||||
@@ -37,4 +42,4 @@
|
||||
to_chat(crab, "<span class='warning'>You burst out of the remains of your former body in a shower of gore!</span>")
|
||||
user.gib()
|
||||
feedback_add_details("changeling_powers","LR")
|
||||
return 1
|
||||
return 1
|
||||
@@ -25,13 +25,13 @@
|
||||
if(istype(user.l_hand, weapon_type)) //Not the nicest way to do it, but eh
|
||||
qdel(user.l_hand)
|
||||
if(!silent)
|
||||
user.visible_message("<span class='warning'>With a sickening crunch, [user] reforms [user.p_their()] [weapon_name_simple] into an arm!</span>", "<span class='notice'>We assimilate the [weapon_name_simple] back into our body.</span>", "<span class='warning>You hear organic matter ripping and tearing!</span>")
|
||||
user.visible_message("<span class='warning'>With a sickening crunch, [user] reforms [user.p_their()] [weapon_name_simple] into an arm!</span>", "<span class='notice'>We assimilate the [weapon_name_simple] back into our body.</span>", "<span class='warning'>You hear organic matter ripping and tearing!</span>")
|
||||
user.update_inv_l_hand()
|
||||
return
|
||||
if(istype(user.r_hand, weapon_type))
|
||||
qdel(user.r_hand)
|
||||
if(!silent)
|
||||
user.visible_message("<span class='warning'>With a sickening crunch, [user] reforms [user.p_their()] [weapon_name_simple] into an arm!</span>", "<span class='notice'>We assimilate the [weapon_name_simple] back into our body.</span>", "<span class='warning>You hear organic matter ripping and tearing!</span>")
|
||||
user.visible_message("<span class='warning'>With a sickening crunch, [user] reforms [user.p_their()] [weapon_name_simple] into an arm!</span>", "<span class='notice'>We assimilate the [weapon_name_simple] back into our body.</span>", "<span class='warning'>You hear organic matter ripping and tearing!</span>")
|
||||
user.update_inv_r_hand()
|
||||
return
|
||||
..(user, target)
|
||||
@@ -138,7 +138,7 @@
|
||||
loc.visible_message("<span class='warning'>A grotesque blade forms around [loc.name]\'s arm!</span>", "<span class='warning'>Our arm twists and mutates, transforming it into a deadly blade.</span>", "<span class='warning'>You hear organic matter ripping and tearing!</span>")
|
||||
|
||||
/obj/item/melee/arm_blade/dropped(mob/user)
|
||||
user.visible_message("<span class='warning'>With a sickening crunch, [user] reforms [user.p_their()] blade into an arm!</span>", "<span class='notice'>We assimilate the blade back into our body.</span>", "<span class='warning>You hear organic matter ripping and tearing!</span>")
|
||||
user.visible_message("<span class='warning'>With a sickening crunch, [user] reforms [user.p_their()] blade into an arm!</span>", "<span class='notice'>We assimilate the blade back into our body.</span>", "<span class='warning'>You hear organic matter ripping and tearing!</span>")
|
||||
. = ..()
|
||||
|
||||
/obj/item/melee/arm_blade/afterattack(atom/target, mob/user, proximity)
|
||||
@@ -216,7 +216,7 @@
|
||||
to_chat(loc, "<span class='notice'>You prepare to extend a tentacle.</span>")
|
||||
|
||||
/obj/item/gun/magic/tentacle/shoot_with_empty_chamber(mob/living/user as mob|obj)
|
||||
to_chat(user, "<span class='warning'>The [name] is not ready yet.<span>")
|
||||
to_chat(user, "<span class='warning'>The [name] is not ready yet.</span>")
|
||||
|
||||
/obj/item/gun/magic/tentacle/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] coils [src] tightly around [user.p_their()] neck! It looks like [user.p_theyre()] trying to commit suicide.</span>")
|
||||
@@ -315,10 +315,10 @@
|
||||
on_hit(I) //grab the item as if you had hit it directly with the tentacle
|
||||
return 1
|
||||
else
|
||||
to_chat(firer, "<span class='danger'>You can't seem to pry [I] out of [C]'s hands!<span>")
|
||||
to_chat(firer, "<span class='danger'>You can't seem to pry [I] out of [C]'s hands!</span>")
|
||||
return 0
|
||||
else
|
||||
to_chat(firer, "<span class='danger'>[C] has nothing in hand to disarm!<span>")
|
||||
to_chat(firer, "<span class='danger'>[C] has nothing in hand to disarm!</span>")
|
||||
return 0
|
||||
|
||||
if(INTENT_GRAB)
|
||||
|
||||
@@ -100,7 +100,6 @@
|
||||
|
||||
/obj/effect/proc_holder/changeling/sting/transformation/sting_action(var/mob/user, var/mob/target)
|
||||
add_attack_logs(user, target, "Transformation sting (changeling) (new identity is [selected_dna.real_name])")
|
||||
var/datum/dna/NewDNA = selected_dna
|
||||
if(issmall(target))
|
||||
to_chat(user, "<span class='notice'>Our genes cry out as we sting [target.name]!</span>")
|
||||
|
||||
@@ -111,13 +110,7 @@
|
||||
target.visible_message("<span class='danger'>[target] begins to violenty convulse!</span>","<span class='userdanger'>You feel a tiny prick and a begin to uncontrollably convulse!</span>")
|
||||
|
||||
spawn(10)
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/H = target
|
||||
H.set_species(NewDNA.species.type)
|
||||
target.dna = NewDNA.Clone()
|
||||
target.real_name = NewDNA.real_name
|
||||
target.UpdateAppearance()
|
||||
domutcheck(target, null)
|
||||
transform_dna(target,selected_dna)//target is always human so no problem here
|
||||
feedback_add_details("changeling_powers","TS")
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -14,16 +14,8 @@
|
||||
|
||||
if(!chosen_dna)
|
||||
return
|
||||
if(ishuman(user))
|
||||
user.set_species(chosen_dna.species.type)
|
||||
user.dna = chosen_dna.Clone()
|
||||
user.real_name = chosen_dna.real_name
|
||||
domutcheck(user, null, MUTCHK_FORCED) //Ensures species that get powers by the species proc handle_dna keep them
|
||||
user.flavor_text = ""
|
||||
user.dna.UpdateSE()
|
||||
user.dna.UpdateUI()
|
||||
user.sync_organ_dna(1)
|
||||
user.UpdateAppearance()
|
||||
|
||||
transform_dna(user,chosen_dna)
|
||||
|
||||
user.changeling_update_languages(changeling.absorbed_languages)
|
||||
|
||||
|
||||
@@ -36,4 +36,4 @@
|
||||
else if(M in dead_mob_list)
|
||||
to_chat(M, "<span class='cultspeech'> <a href='?src=[M.UID()];follow=\ref[user]'>(F)</a> [my_message] </span>")
|
||||
|
||||
log_say("(CULT) [message]")
|
||||
log_say("(CULT) [message]", user)
|
||||
@@ -739,7 +739,7 @@ var/list/teleport_runes = list()
|
||||
playsound(E, 'sound/effects/EMPulse.ogg', 100, 1)
|
||||
for(var/M in invokers)
|
||||
var/mob/living/L = M
|
||||
to_chat(L, "<span class=userdanger'>You chant in unison and a colossal burst of energy knocks you backward!</span>")
|
||||
to_chat(L, "<span class='userdanger'>You chant in unison and a colossal burst of energy knocks you backward!</span>")
|
||||
L.Weaken(2)
|
||||
qdel(src) //delete before pulsing because it's a delay reee
|
||||
empulse(E, 9*invokers.len, 12*invokers.len, 1) // Scales now, from a single room to most of the station depending on # of chanters
|
||||
|
||||
@@ -156,15 +156,7 @@
|
||||
msg="Task #[count] completed! "
|
||||
if(pay>0)
|
||||
if(M.mind.initial_account)
|
||||
M.mind.initial_account.money += pay
|
||||
var/datum/transaction/T = new()
|
||||
T.target_name = "[command_name()] Payroll"
|
||||
T.purpose = "Payment"
|
||||
T.amount = pay
|
||||
T.date = current_date_string
|
||||
T.time = station_time_timestamp()
|
||||
T.source_terminal = "\[CLASSIFIED\] Terminal #[rand(111,333)]"
|
||||
M.mind.initial_account.transaction_log.Add(T)
|
||||
M.mind.initial_account.credit(pay, "Payment", "\[CLASSIFIED\] Terminal #[rand(111,333)]", "[command_name()] Payroll")
|
||||
msg += "You have been sent the $[pay], as agreed."
|
||||
else
|
||||
msg += "However, we were unable to send you the $[pay] you're entitled."
|
||||
|
||||
@@ -369,6 +369,7 @@ var/round_start_time = 0
|
||||
if(player.mind.assigned_role == "Captain")
|
||||
captainless=0
|
||||
if(player.mind.assigned_role != player.mind.special_role)
|
||||
job_master.AssignRank(player, player.mind.assigned_role, 0)
|
||||
job_master.EquipRank(player, player.mind.assigned_role, 0)
|
||||
EquipCustomItems(player)
|
||||
if(captainless)
|
||||
|
||||
@@ -185,7 +185,7 @@
|
||||
set name = "Destroy RCDs"
|
||||
set desc = "Detonate all RCDs on the station, while sparing onboard cyborg RCDs."
|
||||
|
||||
if(stat || malf_cooldown)
|
||||
if(stat || malf_cooldown > world.time)
|
||||
return
|
||||
|
||||
for(var/obj/item/rcd/RCD in rcd_list)
|
||||
@@ -193,9 +193,7 @@
|
||||
RCD.detonate_pulse()
|
||||
|
||||
to_chat(src, "<span class='danger'>RCD detonation pulse emitted.</span>")
|
||||
malf_cooldown = 1
|
||||
spawn(100)
|
||||
malf_cooldown = 0
|
||||
malf_cooldown = world.time + 100
|
||||
|
||||
|
||||
/datum/AI_Module/large/mecha_domination
|
||||
@@ -454,7 +452,7 @@
|
||||
set name = "Reactivate Cameranet"
|
||||
set category = "Malfunction"
|
||||
|
||||
if(stat || malf_cooldown)
|
||||
if(stat || malf_cooldown > world.time)
|
||||
return
|
||||
var/fixedcams = 0 //Tells the AI how many cams it fixed. Stats are fun.
|
||||
|
||||
@@ -477,9 +475,7 @@
|
||||
break
|
||||
to_chat(src, "<span class='notice'>Diagnostic complete! Operations completed: [fixedcams].</span>")
|
||||
|
||||
malf_cooldown = 1
|
||||
spawn(30) //Lag protection
|
||||
malf_cooldown = 0
|
||||
malf_cooldown = world.time + 30
|
||||
|
||||
|
||||
/datum/AI_Module/large/upgrade_cameras
|
||||
|
||||
@@ -197,17 +197,17 @@
|
||||
/datum/game_mode/proc/auto_declare_completion_abduction()
|
||||
var/text = ""
|
||||
if(abductors.len)
|
||||
text += "<br><span class='big'><b>The abductors were:</b></span>"
|
||||
text += "<br><span class='big'><b>The abductors were:</b></span><br>"
|
||||
for(var/datum/mind/abductor_mind in abductors)
|
||||
text += printplayer(abductor_mind)
|
||||
text += printobjectives(abductor_mind)
|
||||
text += "<br>"
|
||||
text += "<br>"
|
||||
if(abductees.len)
|
||||
text += "<br><span class='big'><b>The abductees were:</b></span>"
|
||||
text += "<br><span class='big'><b>The abductees were:</b></span><br>"
|
||||
for(var/datum/mind/abductee_mind in abductees)
|
||||
text += printplayer(abductee_mind)
|
||||
text += printobjectives(abductee_mind)
|
||||
text += "<br>"
|
||||
text += "<br>"
|
||||
to_chat(world, text)
|
||||
|
||||
//Landmarks
|
||||
|
||||
@@ -363,7 +363,9 @@
|
||||
if(M.has_brain_worms())
|
||||
to_chat(src, "<span class='warning'>[M] is already infested!</span>")
|
||||
return
|
||||
|
||||
host = M
|
||||
add_attack_logs(src, host, "Infested as borer")
|
||||
M.borer = src
|
||||
forceMove(M)
|
||||
|
||||
|
||||
@@ -415,6 +415,9 @@
|
||||
failure_message = "<B>...ERROR. BOOT SEQUENCE ABORTED. AI FAILED TO INTIALIZE. PLEASE CONTACT SUPPORT OR TRY AGAIN LATER.</B>"
|
||||
ling_failure = "The holoparasites recoil in horror. They want nothing to do with a creature like you."
|
||||
|
||||
/obj/item/guardiancreator/tech/check_uplink_validity()
|
||||
return !used
|
||||
|
||||
/obj/item/guardiancreator/tech/choose
|
||||
random = FALSE
|
||||
|
||||
@@ -439,13 +442,13 @@
|
||||
info = {"<b>A list of Holoparasite Types</b><br>
|
||||
|
||||
<br>
|
||||
<b>Chaos</b>: Ignites mobs on touch. teleports them at random on attack. Automatically extinguishes the user if they catch fire.<br>
|
||||
<b>Chaos</b>: Has two modes. Deception: Causes target of attacks to hallucinate. Dispersion: Attacks have a chance to teleport the target randomly. Ignites mobs on touch. Automatically extinguishes the user if they catch fire.<br>
|
||||
<br>
|
||||
<b>Standard</b>:Devestating close combat attacks and high damage resist. No special powers.<br>
|
||||
<b>Standard</b>: Devestating close combat attacks and high damage resist. No special powers.<br>
|
||||
<br>
|
||||
<b>Ranged</b>: Has two modes. Ranged: Extremely weak, highly spammable projectile attack. Scout: Can not attack, but can move through walls. Can lay surveillance snares in either mode.<br>
|
||||
<br>
|
||||
<b>Support</b>:Has two modes. Combat: Medium power attacks and damage resist. Healer: Attacks heal damage, but low damage resist and slow movemen. Can deploy a bluespace beacon and warp targets to it (including you) in either mode.<br>
|
||||
<b>Support</b>: Has two modes. Combat: Medium power attacks and damage resist. Healer: Attacks heal damage, but low damage resist and slow movemen. Can deploy a bluespace beacon and warp targets to it (including you) in either mode.<br>
|
||||
<br>
|
||||
<b>Explosive</b>: High damage resist and medium power attack. Can turn any object into a bomb, dealing explosive damage to the next person to touch it. The object will return to normal after the trap is triggered.<br>
|
||||
<br>
|
||||
|
||||
@@ -47,8 +47,8 @@
|
||||
changeNext_move(CLICK_CD_MELEE)
|
||||
if(heal_cooldown <= world.time && !stat)
|
||||
var/mob/living/carbon/C = target
|
||||
C.adjustBruteLoss(-5)
|
||||
C.adjustFireLoss(-5)
|
||||
C.adjustBruteLoss(-5, robotic=1)
|
||||
C.adjustFireLoss(-5, robotic=1)
|
||||
C.adjustOxyLoss(-5)
|
||||
C.adjustToxLoss(-5)
|
||||
heal_cooldown = world.time + 20
|
||||
|
||||
@@ -146,6 +146,7 @@ proc/issyndicate(mob/living/M as mob)
|
||||
|
||||
M.set_species(/datum/species/human, TRUE)
|
||||
M.dna.ready_dna(M) // Quadriplegic Nuke Ops won't be participating in the paralympics
|
||||
M.dna.species.create_organs(M)
|
||||
M.reagents.add_reagent("mutadone", 1) //No fat/blind/colourblind/epileptic/whatever ops.
|
||||
M.overeatduration = 0
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ var/bomb_set
|
||||
var/removal_stage = 0 // 0 is no removal, 1 is covers removed, 2 is covers open, 3 is sealant open, 4 is unwrenched, 5 is removed from bolts.
|
||||
var/lastentered
|
||||
var/is_syndicate = 0
|
||||
use_power = 0
|
||||
use_power = NO_POWER_USE
|
||||
unacidable = 1
|
||||
var/previous_level = ""
|
||||
var/datum/wires/nuclearbomb/wires = null
|
||||
|
||||
@@ -329,11 +329,17 @@ var/list/potential_theft_objectives = subtypesof(/datum/theft_objective) - /datu
|
||||
explanation_text = "Destroy the station with a nuclear device."
|
||||
martyr_compatible = 1
|
||||
|
||||
|
||||
|
||||
/datum/objective/steal
|
||||
var/datum/theft_objective/steal_target
|
||||
martyr_compatible = 0
|
||||
var/theft_area
|
||||
|
||||
/datum/objective/steal/proc/get_location()
|
||||
if(steal_target.location_override)
|
||||
return steal_target.location_override
|
||||
var/obj/item/T = locate(steal_target.typepath)
|
||||
theft_area = get_area(T.loc)
|
||||
return "[theft_area]"
|
||||
|
||||
/datum/objective/steal/find_target()
|
||||
var/loop=50
|
||||
@@ -346,7 +352,9 @@ var/list/potential_theft_objectives = subtypesof(/datum/theft_objective) - /datu
|
||||
if(O.flags & 2)
|
||||
continue
|
||||
steal_target=O
|
||||
explanation_text = "Steal [O]."
|
||||
explanation_text = "Steal [steal_target]. One was last seen in [get_location()]. "
|
||||
if(islist(O.protected_jobs) && O.protected_jobs.len)
|
||||
explanation_text += "It may also be in the possession of the [jointext(O.protected_jobs, ", ")]."
|
||||
return
|
||||
explanation_text = "Free Objective."
|
||||
|
||||
|
||||
@@ -306,7 +306,7 @@
|
||||
if(!(objective.check_completion()))
|
||||
return 0
|
||||
|
||||
return 1
|
||||
return 1
|
||||
|
||||
/////////////////////////////
|
||||
//Checks for a head victory//
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
charge_max = 300
|
||||
clothes_req = 0
|
||||
action_icon_state = "glare"
|
||||
humans_only = 1
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/glare/cast(list/targets, mob/user = usr)
|
||||
for(var/mob/living/carbon/human/target in targets)
|
||||
@@ -263,6 +264,7 @@
|
||||
range = 1 //Adjacent to user
|
||||
var/enthralling = 0
|
||||
action_icon_state = "enthrall"
|
||||
humans_only = 1
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/enthrall/cast(list/targets, mob/user = usr)
|
||||
var/mob/living/carbon/human/ling = user
|
||||
@@ -595,6 +597,7 @@
|
||||
clothes_req = 0
|
||||
include_user = 0
|
||||
action_icon_state = "revive_thrall"
|
||||
humans_only = 1
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/reviveThrall/cast(list/targets, mob/user = usr)
|
||||
if(!shadowling_check(user))
|
||||
@@ -751,7 +754,7 @@
|
||||
playsound(user.loc, 'sound/magic/Staff_Chaos.ogg', 100, 1)
|
||||
for(var/mob/living/boom in targets)
|
||||
if(is_shadow(boom)) //Used to not work on thralls. Now it does so you can PUNISH THEM LIKE THE WRATHFUL GOD YOU ARE.
|
||||
to_chat(user, "<span class='warning'>Making an ally explode seems unwise.<span>")
|
||||
to_chat(user, "<span class='warning'>Making an ally explode seems unwise.</span>")
|
||||
charge_counter = charge_max
|
||||
return
|
||||
user.visible_message("<span class='danger'>[user]'s markings flare as [user.p_they()] gesture[user.p_s()] at [boom]!</span>", \
|
||||
@@ -782,7 +785,7 @@
|
||||
|
||||
for(var/mob/living/carbon/human/target in targets)
|
||||
if(is_shadow_or_thrall(target))
|
||||
to_chat(user, "<span class='warning'>You cannot enthrall an ally.<span>")
|
||||
to_chat(user, "<span class='warning'>You cannot enthrall an ally.</span>")
|
||||
charge_counter = charge_max
|
||||
return
|
||||
if(!target.ckey || !target.mind)
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
var/list/protected_jobs = list()
|
||||
var/list/altitems = list()
|
||||
var/flags = 0
|
||||
var/location_override
|
||||
|
||||
/datum/theft_objective/proc/check_completion(var/datum/mind/owner)
|
||||
if(!owner.current)
|
||||
@@ -49,6 +50,7 @@
|
||||
/datum/theft_objective/ai
|
||||
name = "a functional AI"
|
||||
typepath = /obj/item/aicard
|
||||
location_override = "AI Satellite. An intellicard for transportation can be found in Tech Storage, Science Department or manufactured"
|
||||
|
||||
datum/theft_objective/ai/check_special_completion(var/obj/item/aicard/C)
|
||||
if(..())
|
||||
@@ -91,6 +93,7 @@ datum/theft_objective/ai/check_special_completion(var/obj/item/aicard/C)
|
||||
name = "a sample of unused slime extract"
|
||||
typepath = /obj/item/slime_extract
|
||||
protected_jobs = list("Research Director","Scientist")
|
||||
location_override = "Xenobiology"
|
||||
|
||||
/datum/theft_objective/slime_extract/check_special_completion(var/obj/item/slime_extract/E)
|
||||
if(..())
|
||||
@@ -169,6 +172,7 @@ datum/theft_objective/ai/check_special_completion(var/obj/item/aicard/C)
|
||||
min=28
|
||||
max=28
|
||||
protected_jobs = list("Chief Engineer", "Station Engineer", "Scientist", "Research Director", "Life Support Specialist")
|
||||
location_override = "Engineering or Toxin Mixing"
|
||||
|
||||
/datum/theft_objective/number/plasma_gas/getAmountStolen(var/obj/item/I)
|
||||
return I:air_contents:toxins
|
||||
|
||||
@@ -202,6 +202,14 @@
|
||||
category = "Mobility"
|
||||
cost = 1
|
||||
|
||||
/datum/spellbook_entry/greaterknock
|
||||
name = "Greater Knock"
|
||||
spell_type = /obj/effect/proc_holder/spell/aoe_turf/knock/greater
|
||||
log_name = "GK"
|
||||
category = "Mobility"
|
||||
cost = 2
|
||||
refundable = 0 //global effect on cast
|
||||
|
||||
/datum/spellbook_entry/fleshtostone
|
||||
name = "Flesh to Stone"
|
||||
spell_type = /obj/effect/proc_holder/spell/targeted/touch/flesh_to_stone
|
||||
@@ -535,7 +543,10 @@
|
||||
if(istype(O, /obj/item/antag_spawner/slaughter_demon))
|
||||
to_chat(user, "<span class='notice'>On second thought, maybe summoning a demon is a bad idea. You refund your points.</span>")
|
||||
|
||||
uses+=2
|
||||
if(istype(O, /obj/item/antag_spawner/slaughter_demon/laughter))
|
||||
uses += 1
|
||||
else
|
||||
uses += 2
|
||||
for(var/datum/spellbook_entry/item/bloodbottle/BB in entries)
|
||||
if(!isnull(BB.limit))
|
||||
BB.limit++
|
||||
|
||||
@@ -412,8 +412,45 @@ var/global/datum/controller/occupations/job_master
|
||||
|
||||
return 1
|
||||
|
||||
/datum/controller/occupations/proc/AssignRank(var/mob/living/carbon/human/H, var/rank, var/joined_late = 0)
|
||||
if(!H)
|
||||
return null
|
||||
var/datum/job/job = GetJob(rank)
|
||||
|
||||
/datum/controller/occupations/proc/EquipRank(var/mob/living/carbon/human/H, var/rank, var/joined_late = 0)
|
||||
H.job = rank
|
||||
|
||||
var/alt_title = null
|
||||
|
||||
if(H.mind)
|
||||
H.mind.assigned_role = rank
|
||||
alt_title = H.mind.role_alt_title
|
||||
|
||||
CreateMoneyAccount(H, rank, job)
|
||||
|
||||
to_chat(H, "<B>You are the [alt_title ? alt_title : rank].</B>")
|
||||
to_chat(H, "<b>As the [alt_title ? alt_title : rank] you answer directly to [job.supervisors]. Special circumstances may change this.</b>")
|
||||
to_chat(H, "<b>For more information on how the station works, see <a href=\"https://nanotrasen.se/wiki/index.php/Standard_Operating_Procedure\">Standard Operating Procedure (SOP)</a></b>")
|
||||
if(job.is_service)
|
||||
to_chat(H, "<b>As a member of Service, make sure to read up on your <a href=\"https://nanotrasen.se/wiki/index.php/Standard_Operating_Procedure_(Service)\">Department SOP</a></b>")
|
||||
if(job.is_supply)
|
||||
to_chat(H, "<b>As a member of Supply, make sure to read up on your <a href=\"https://nanotrasen.se/wiki/index.php/Standard_Operating_Procedure_(Supply)\">Department SOP</a></b>")
|
||||
if(job.is_command)
|
||||
to_chat(H, "<b>As an important member of Command, read up on your <a href=\"https://nanotrasen.se/wiki/index.php/Standard_Operating_Procedure_(Command)\">Department SOP</a></b>")
|
||||
if(job.is_legal)
|
||||
to_chat(H, "<b>Your job requires complete knowledge of <a href=\"https://nanotrasen.se/wiki/index.php/Space_law\">Space Law</a> and <a href=\"https://nanotrasen.se/wiki/index.php/Legal_Standard_Operating_Procedure\">Legal Standard Operating Procedure</a></b>")
|
||||
if(job.is_engineering)
|
||||
to_chat(H, "<b>As a member of Engineering, make sure to read up on your <a href=\"https://nanotrasen.se/wiki/index.php/Standard_Operating_Procedure_(Engineering)\">Department SOP</a></b>")
|
||||
if(job.is_medical)
|
||||
to_chat(H, "<b>As a member of Medbay, make sure to read up on your <a href=\"https://nanotrasen.se/wiki/index.php/Standard_Operating_Procedure_(Medical)\">Department SOP</a></b>")
|
||||
if(job.is_science)
|
||||
to_chat(H, "<b>As a member of Science, make sure to read up on your <a href=\"https://nanotrasen.se/wiki/index.php/Standard_Operating_Procedure_(Science)\">Department SOP</a></b>")
|
||||
if(job.is_security)
|
||||
to_chat(H, "<b>As a member of Security, you are to know <a href=\"https://nanotrasen.se/wiki/index.php/Space_law\">Space Law</a>, <a href=\"https://nanotrasen.se/wiki/index.php/Legal_Standard_Operating_Procedure\">Legal Standard Operating Procedure</a>, as well as your <a href=\"https://nanotrasen.se/wiki/index.php/Standard_Operating_Procedure_(Security)\">Department SOP</a></b>")
|
||||
if(job.req_admin_notify)
|
||||
to_chat(H, "<b>You are playing a job that is important for the game progression. If you have to disconnect, please notify the admins via adminhelp.</b>")
|
||||
|
||||
return H
|
||||
/datum/controller/occupations/proc/EquipRank(mob/living/carbon/human/H, rank, joined_late = 0) // Equip and put them in an area
|
||||
if(!H)
|
||||
return null
|
||||
|
||||
@@ -457,40 +494,11 @@ var/global/datum/controller/occupations/job_master
|
||||
H.buckled.loc = H.loc
|
||||
H.buckled.dir = H.dir
|
||||
|
||||
var/alt_title = null
|
||||
if(H.mind)
|
||||
H.mind.assigned_role = rank
|
||||
alt_title = H.mind.role_alt_title
|
||||
|
||||
CreateMoneyAccount(H, rank, job)
|
||||
|
||||
if(job)
|
||||
var/new_mob = job.equip(H)
|
||||
if(ismob(new_mob))
|
||||
H = new_mob
|
||||
|
||||
to_chat(H, "<B>You are the [alt_title ? alt_title : rank].</B>")
|
||||
to_chat(H, "<b>As the [alt_title ? alt_title : rank] you answer directly to [job.supervisors]. Special circumstances may change this.</b>")
|
||||
to_chat(H, "<b>For more information on how the station works, see <a href=\"https://nanotrasen.se/wiki/index.php/Standard_Operating_Procedure\">Standard Operating Procedure (SOP)</a></b>")
|
||||
if(job.is_service)
|
||||
to_chat(H, "<b>As a member of Service, make sure to read up on your <a href=\"https://nanotrasen.se/wiki/index.php/Standard_Operating_Procedure_(Service)\">Department SOP</a></b>")
|
||||
if(job.is_supply)
|
||||
to_chat(H, "<b>As a member of Supply, make sure to read up on your <a href=\"https://nanotrasen.se/wiki/index.php/Standard_Operating_Procedure_(Supply)\">Department SOP</a></b>")
|
||||
if(job.is_command)
|
||||
to_chat(H, "<b>As an important member of Command, read up on your <a href=\"https://nanotrasen.se/wiki/index.php/Standard_Operating_Procedure_(Command)\">Department SOP</a></b>")
|
||||
if(job.is_legal)
|
||||
to_chat(H, "<b>Your job requires complete knowledge of <a href=\"https://nanotrasen.se/wiki/index.php/Space_law\">Space Law</a> and <a href=\"https://nanotrasen.se/wiki/index.php/Legal_Standard_Operating_Procedure\">Legal Standard Operating Procedure</a></b>")
|
||||
if(job.is_engineering)
|
||||
to_chat(H, "<b>As a member of Engineering, make sure to read up on your <a href=\"https://nanotrasen.se/wiki/index.php/Standard_Operating_Procedure_(Engineering)\">Department SOP</a></b>")
|
||||
if(job.is_medical)
|
||||
to_chat(H, "<b>As a member of Medbay, make sure to read up on your <a href=\"https://nanotrasen.se/wiki/index.php/Standard_Operating_Procedure_(Medical)\">Department SOP</a></b>")
|
||||
if(job.is_science)
|
||||
to_chat(H, "<b>As a member of Science, make sure to read up on your <a href=\"https://nanotrasen.se/wiki/index.php/Standard_Operating_Procedure_(Science)\">Department SOP</a></b>")
|
||||
if(job.is_security)
|
||||
to_chat(H, "<b>As a member of Security, you are to know <a href=\"https://nanotrasen.se/wiki/index.php/Space_law\">Space Law</a>, <a href=\"https://nanotrasen.se/wiki/index.php/Legal_Standard_Operating_Procedure\">Legal Standard Operating Procedure</a>, as well as your <a href=\"https://nanotrasen.se/wiki/index.php/Standard_Operating_Procedure_(Security)\">Department SOP</a></b>")
|
||||
if(job.req_admin_notify)
|
||||
to_chat(H, "<b>You are playing a job that is important for the game progression. If you have to disconnect, please notify the admins via adminhelp.</b>")
|
||||
|
||||
if(job && H)
|
||||
job.after_spawn(H)
|
||||
|
||||
|
||||
@@ -6,9 +6,10 @@
|
||||
level = 1 // underfloor
|
||||
layer = 2.5
|
||||
anchored = 1
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 0
|
||||
var/syndicate = 0
|
||||
var/area_bypass = FALSE
|
||||
var/obj/item/radio/beacon/Beacon
|
||||
var/enabled = TRUE
|
||||
|
||||
@@ -22,6 +23,7 @@
|
||||
Beacon.invisibility = INVISIBILITY_MAXIMUM
|
||||
Beacon.loc = T
|
||||
Beacon.syndicate = syndicate
|
||||
Beacon.area_bypass = area_bypass
|
||||
hide(T.intact)
|
||||
|
||||
/obj/machinery/bluespace_beacon/proc/destroy_beacon()
|
||||
@@ -64,6 +66,7 @@
|
||||
/obj/machinery/bluespace_beacon/syndicate
|
||||
syndicate = TRUE
|
||||
enabled = FALSE
|
||||
area_bypass = TRUE // This enables teleports to this beacon to bypass the tele_proof flag of /area/s. Intended for depot syndi teleport computer.
|
||||
var/obj/machinery/computer/syndicate_depot/teleporter/mycomputer
|
||||
|
||||
/obj/machinery/bluespace_beacon/syndicate/New()
|
||||
@@ -74,4 +77,4 @@
|
||||
/obj/machinery/bluespace_beacon/syndicate/Destroy()
|
||||
if(mycomputer)
|
||||
mycomputer.mybeacon = null
|
||||
return ..()
|
||||
return ..()
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
density = 1
|
||||
var/min_temperature = 0
|
||||
anchored = 1.0
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
current_heat_capacity = 1000
|
||||
layer = 3
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 100, bomb = 0, bio = 100, rad = 100)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
icon_state = "table2-idle"
|
||||
density = 1
|
||||
anchored = 1.0
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 1
|
||||
active_power_usage = 5
|
||||
var/mob/living/carbon/human/victim = null
|
||||
|
||||
@@ -420,7 +420,7 @@
|
||||
|
||||
/obj/machinery/sleeper/proc/inject_chemical(mob/living/user as mob, chemical, amount)
|
||||
if(!(chemical in injection_chems))
|
||||
to_chat(user, "<span class='notice'>The sleeper does not offer that chemical!</notice>")
|
||||
to_chat(user, "<span class='notice'>The sleeper does not offer that chemical!</span>")
|
||||
return
|
||||
|
||||
if(occupant)
|
||||
@@ -519,8 +519,8 @@
|
||||
return
|
||||
return
|
||||
|
||||
/obj/machinery/sleeper/allow_drop()
|
||||
return 0
|
||||
/obj/machinery/sleeper/AllowDrop()
|
||||
return FALSE
|
||||
|
||||
/obj/machinery/sleeper/verb/move_inside()
|
||||
set name = "Enter Sleeper"
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
icon = 'icons/obj/monitors.dmi'
|
||||
icon_state = "alarm0"
|
||||
anchored = 1
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 4
|
||||
active_power_usage = 8
|
||||
power_channel = ENVIRON
|
||||
|
||||
@@ -74,7 +74,7 @@ var/datum/canister_icons/canister_icon_container = new()
|
||||
pressure_resistance = 7*ONE_ATMOSPHERE
|
||||
var/temperature_resistance = 1000 + T0C
|
||||
volume = 1000
|
||||
use_power = 0
|
||||
use_power = NO_POWER_USE
|
||||
interact_offline = 1
|
||||
var/release_log = ""
|
||||
var/busy = 0
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
var/frequency = 0
|
||||
var/id
|
||||
var/id_tag
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 2
|
||||
active_power_usage = 5
|
||||
req_one_access_txt = "24;10"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/obj/machinery/portable_atmospherics
|
||||
name = "atmoalter"
|
||||
use_power = 0
|
||||
use_power = NO_POWER_USE
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 100, bomb = 0, bio = 100, rad = 100)
|
||||
var/datum/gas_mixture/air_contents = new
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
var/hack_wire
|
||||
var/disable_wire
|
||||
var/shock_wire
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 10
|
||||
active_power_usage = 100
|
||||
var/busy = 0
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
var/active = 0
|
||||
settagwhitelist = list("id_tag", "logic_id_tag")
|
||||
anchored = 1.0
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 2
|
||||
active_power_usage = 4
|
||||
var/range = 7
|
||||
@@ -162,7 +162,7 @@
|
||||
var/id = null
|
||||
var/active = 0
|
||||
anchored = 1.0
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 2
|
||||
active_power_usage = 4
|
||||
|
||||
@@ -201,4 +201,4 @@
|
||||
sleep(50)
|
||||
|
||||
icon_state = "launcherbtt"
|
||||
active = 0
|
||||
active = 0
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
desc = "It's used to monitor rooms."
|
||||
icon = 'icons/obj/monitors.dmi'
|
||||
icon_state = "camera"
|
||||
use_power = 2
|
||||
use_power = ACTIVE_POWER_USE
|
||||
idle_power_usage = 5
|
||||
active_power_usage = 10
|
||||
layer = WALL_OBJ_LAYER
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
#define ASSEMBLY_UNBUILT 0 // Nothing done to it
|
||||
#define ASSEMBLY_WRENCHED 1 // Wrenched in place
|
||||
#define ASSEMBLY_WELDED 2 // Welded in place
|
||||
#define ASSEMBLY_WIRED 3 // Wires attached (Upgradable now)
|
||||
#define ASSEMBLY_BUILT 4 // Fully built (incl panel closed)
|
||||
|
||||
/obj/item/camera_assembly
|
||||
name = "camera assembly"
|
||||
desc = "A pre-fabricated security camera kit, ready to be assembled and mounted to a surface."
|
||||
icon = 'icons/obj/monitors.dmi'
|
||||
icon_state = "cameracase"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
anchored = 0
|
||||
anchored = FALSE
|
||||
materials = list(MAT_METAL=400, MAT_GLASS=250)
|
||||
max_integrity = 150
|
||||
can_be_hit = TRUE
|
||||
// Motion, EMP-Proof, X-Ray
|
||||
var/list/obj/item/possible_upgrades = list(/obj/item/assembly/prox_sensor, /obj/item/stack/sheet/mineral/plasma, /obj/item/analyzer)
|
||||
var/list/upgrades = list()
|
||||
var/state = 0
|
||||
var/busy = 0
|
||||
/*
|
||||
0 = Nothing done to it
|
||||
1 = Wrenched in place
|
||||
2 = Welded in place
|
||||
3 = Wires attached to it (you can now attach/dettach upgrades)
|
||||
4 = Screwdriver panel closed and is fully built (you cannot attach upgrades)
|
||||
*/
|
||||
var/state = ASSEMBLY_UNBUILT
|
||||
var/busy = FALSE
|
||||
|
||||
|
||||
/obj/item/camera_assembly/Destroy()
|
||||
QDEL_LIST(upgrades)
|
||||
@@ -28,74 +28,72 @@
|
||||
/obj/item/camera_assembly/attackby(obj/item/I, mob/living/user, params)
|
||||
|
||||
switch(state)
|
||||
if(0)
|
||||
if(ASSEMBLY_UNBUILT)
|
||||
// State 0
|
||||
if(iswrench(I) && isturf(loc))
|
||||
playsound(loc, I.usesound, 50, 1)
|
||||
to_chat(user, "You wrench the assembly into place.")
|
||||
to_chat(user, "<span class='notice'>You wrench the assembly into place.</span>")
|
||||
anchored = 1
|
||||
state = 1
|
||||
state = ASSEMBLY_WRENCHED
|
||||
update_icon()
|
||||
auto_turn()
|
||||
return
|
||||
|
||||
if(1)
|
||||
if(ASSEMBLY_WRENCHED)
|
||||
// State 1
|
||||
if(iswelder(I))
|
||||
if(weld(I, user))
|
||||
to_chat(user, "You weld the assembly securely into place.")
|
||||
anchored = 1
|
||||
state = 2
|
||||
to_chat(user, "<span class='notice'>You weld the assembly securely into place.</span>")
|
||||
anchored = TRUE
|
||||
state = ASSEMBLY_WELDED
|
||||
return
|
||||
|
||||
else if(iswrench(I))
|
||||
playsound(loc, I.usesound, 50, 1)
|
||||
to_chat(user, "You unattach the assembly from it's place.")
|
||||
anchored = 0
|
||||
to_chat(user, "<span class='notice'>You unattach the assembly from it's place.</span>")
|
||||
anchored = FALSE
|
||||
update_icon()
|
||||
state = 0
|
||||
state = ASSEMBLY_UNBUILT
|
||||
return
|
||||
|
||||
if(2)
|
||||
// State 2
|
||||
if(ASSEMBLY_WELDED)
|
||||
if(iscoil(I))
|
||||
var/obj/item/stack/cable_coil/C = I
|
||||
if(C.use(2))
|
||||
to_chat(user, "<span class='notice'>You add wires to the assembly.</span>")
|
||||
playsound(loc, I.usesound, 50, 1)
|
||||
state = 3
|
||||
state = ASSEMBLY_WIRED
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need 2 coils of wire to wire the assembly.</span>")
|
||||
return
|
||||
|
||||
else if(iswelder(I))
|
||||
if(weld(I, user))
|
||||
to_chat(user, "You unweld the assembly from it's place.")
|
||||
state = 1
|
||||
anchored = 1
|
||||
to_chat(user, "<span class='notice'>You unweld the assembly from it's place.</span>")
|
||||
state = ASSEMBLY_WRENCHED
|
||||
anchored = TRUE
|
||||
return
|
||||
|
||||
|
||||
if(3)
|
||||
// State 3
|
||||
if(ASSEMBLY_WIRED)
|
||||
if(isscrewdriver(I))
|
||||
playsound(loc, I.usesound, 50, 1)
|
||||
|
||||
var/input = strip_html(input(usr, "Which networks would you like to connect this camera to? Seperate networks with a comma. No Spaces!\nFor example: SS13,Security,Secret ", "Set Network", "SS13"))
|
||||
if(!input)
|
||||
to_chat(usr, "No input found please hang up and try your call again.")
|
||||
to_chat(usr, "<span class='warning'>No input found please hang up and try your call again.</span>")
|
||||
return
|
||||
|
||||
var/list/tempnetwork = splittext(input, ",")
|
||||
if(tempnetwork.len < 1)
|
||||
to_chat(usr, "No network found please hang up and try your call again.")
|
||||
to_chat(usr, "<span class='warning'>No network found please hang up and try your call again.</span>")
|
||||
return
|
||||
|
||||
var/area/camera_area = get_area(src)
|
||||
var/temptag = "[sanitize(camera_area.name)] ([rand(1, 999)])"
|
||||
input = strip_html(input(usr, "How would you like to name the camera?", "Set Camera Name", temptag))
|
||||
|
||||
state = 4
|
||||
state = ASSEMBLY_BUILT
|
||||
var/obj/machinery/camera/C = new(loc)
|
||||
loc = C
|
||||
C.assembly = src
|
||||
@@ -104,7 +102,7 @@
|
||||
|
||||
C.network = uniquelist(tempnetwork)
|
||||
tempnetwork = difflist(C.network,restricted_camera_networks)
|
||||
if(!tempnetwork.len)//Camera isn't on any open network - remove its chunk from AI visibility.
|
||||
if(!tempnetwork.len) // Camera isn't on any open network - remove its chunk from AI visibility.
|
||||
cameranet.removeCamera(C)
|
||||
|
||||
C.c_tag = input
|
||||
@@ -122,8 +120,8 @@
|
||||
else if(iswirecutter(I))
|
||||
new/obj/item/stack/cable_coil(get_turf(src), 2)
|
||||
playsound(loc, I.usesound, 50, 1)
|
||||
to_chat(user, "You cut the wires from the circuits.")
|
||||
state = 2
|
||||
to_chat(user, "<span class='notice'>You cut the wires from the circuits.</span>")
|
||||
state = ASSEMBLY_WELDED
|
||||
return
|
||||
|
||||
// Upgrades!
|
||||
@@ -131,7 +129,7 @@
|
||||
if(!user.unEquip(I))
|
||||
to_chat(user, "<span class='warning'>[I] is stuck!</span>")
|
||||
return
|
||||
to_chat(user, "You attach [I] into the assembly inner circuits.")
|
||||
to_chat(user, "<span class='notice'>You attach [I] into the assembly inner circuits.</span>")
|
||||
upgrades += I
|
||||
user.drop_item()
|
||||
I.loc = src
|
||||
@@ -141,7 +139,7 @@
|
||||
else if(iscrowbar(I) && upgrades.len)
|
||||
var/obj/U = locate(/obj) in upgrades
|
||||
if(U)
|
||||
to_chat(user, "You unattach an upgrade from the assembly.")
|
||||
to_chat(user, "<span class='notice'>You unattach an upgrade from the assembly.</span>")
|
||||
playsound(loc, I.usesound, 50, 1)
|
||||
U.loc = get_turf(src)
|
||||
upgrades -= U
|
||||
@@ -161,23 +159,29 @@
|
||||
..()
|
||||
|
||||
/obj/item/camera_assembly/proc/weld(obj/item/weldingtool/WT, mob/living/user)
|
||||
|
||||
if(busy)
|
||||
return 0
|
||||
return FALSE
|
||||
if(!WT.remove_fuel(0, user))
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
to_chat(user, "<span class='notice'>You start to weld the [src]..</span>")
|
||||
to_chat(user, "<span class='notice'>You start to weld the [src]...</span>")
|
||||
playsound(loc, WT.usesound, 50, 1)
|
||||
busy = 1
|
||||
busy = TRUE
|
||||
if(do_after(user, 20 * WT.toolspeed, target = src))
|
||||
busy = 0
|
||||
busy = FALSE
|
||||
if(!WT.isOn())
|
||||
return 0
|
||||
return 1
|
||||
busy = 0
|
||||
return 0
|
||||
return FALSE
|
||||
return TRUE
|
||||
busy = FALSE
|
||||
return FALSE
|
||||
|
||||
/obj/item/camera_assembly/deconstruct(disassembled = TRUE)
|
||||
new /obj/item/stack/sheet/metal(loc)
|
||||
qdel(src)
|
||||
qdel(src)
|
||||
|
||||
|
||||
#undef ASSEMBLY_UNBUILT
|
||||
#undef ASSEMBLY_WRENCHED
|
||||
#undef ASSEMBLY_WELDED
|
||||
#undef ASSEMBLY_WIRED
|
||||
#undef ASSEMBLY_BUILT
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
icon = 'icons/obj/power.dmi'
|
||||
icon_state = "ccharger0"
|
||||
anchored = 1
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 5
|
||||
active_power_usage = 60
|
||||
power_channel = EQUIP
|
||||
@@ -123,4 +123,4 @@
|
||||
use_power(200) //this used to use CELLRATE, but CELLRATE is fucking awful. feel free to fix this properly!
|
||||
charging.give(175) //inefficiency.
|
||||
|
||||
updateicon()
|
||||
updateicon()
|
||||
|
||||
@@ -515,7 +515,7 @@
|
||||
var/eventstarted = 0
|
||||
|
||||
anchored = 1.0
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 2
|
||||
active_power_usage = 6
|
||||
power_channel = ENVIRON
|
||||
|
||||
@@ -116,7 +116,10 @@
|
||||
|
||||
/obj/machinery/computer/security/proc/get_user_access(mob/user)
|
||||
var/list/access = list()
|
||||
if(ishuman(user))
|
||||
|
||||
if(emagged)
|
||||
access = get_all_accesses() // Assume captain level access when emagged
|
||||
else if(ishuman(user))
|
||||
access = user.get_access()
|
||||
else if((isAI(user) || isrobot(user)) && CanUseTopic(user, default_state) == STATUS_INTERACTIVE)
|
||||
access = get_all_accesses() // Assume captain level access when AI
|
||||
@@ -159,7 +162,6 @@
|
||||
|
||||
var/list/access = get_user_access(user)
|
||||
if(emagged)
|
||||
access = get_all_accesses() // Assume captain level access when emagged
|
||||
data["emagged"] = 1
|
||||
|
||||
var/list/networks_list = list()
|
||||
|
||||
@@ -107,7 +107,7 @@ var/time_last_changed_position = 0
|
||||
set name = "Eject ID Card"
|
||||
set src in oview(1)
|
||||
|
||||
if(usr.restrained())
|
||||
if(usr.incapacitated())
|
||||
return
|
||||
|
||||
if(scan)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
icon_state = "computer"
|
||||
density = 1
|
||||
anchored = 1.0
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 300
|
||||
active_power_usage = 300
|
||||
var/obj/item/circuitboard/circuit = null //if circuit==null, computer can't disassembly
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
desc = "Used to monitor active health sensors built into most of the crew's uniforms."
|
||||
icon_keyboard = "med_key"
|
||||
icon_screen = "crew"
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 250
|
||||
active_power_usage = 500
|
||||
light_color = LIGHT_COLOR_DARKBLUE
|
||||
@@ -33,4 +33,4 @@
|
||||
crew_monitor.ui_interact(user, ui_key, ui, force_open)
|
||||
|
||||
/obj/machinery/computer/crew/interact(mob/user)
|
||||
crew_monitor.ui_interact(user)
|
||||
crew_monitor.ui_interact(user)
|
||||
|
||||
@@ -138,6 +138,7 @@
|
||||
if(depotarea)
|
||||
depotarea.toggle_door_locks(src)
|
||||
to_chat(user, "<span class='notice'>Door locks toggled.</span>")
|
||||
playsound(user, sound_yes, 50, 0)
|
||||
|
||||
/obj/machinery/computer/syndicate_depot/doors/secondary(mob/user, subcommand)
|
||||
if(..())
|
||||
@@ -145,6 +146,7 @@
|
||||
if(depotarea)
|
||||
depotarea.toggle_falsewalls(src)
|
||||
to_chat(user, "<span class='notice'>False walls toggled.</span>")
|
||||
playsound(user, sound_yes, 50, 0)
|
||||
|
||||
|
||||
// Engineering AKA self destruct computer, no useful functions, just a trap for the people who can't resist pushing dangerous-sounding buttons.
|
||||
@@ -167,9 +169,9 @@
|
||||
if(depotarea.used_self_destruct)
|
||||
playsound(user, sound_no, 50, 0)
|
||||
return
|
||||
playsound(user, sound_click, 20, 1)
|
||||
if(depotarea)
|
||||
depotarea.activate_self_destruct("Fusion reactor containment field disengaged. All hands, evacuate. All hands, evacuate!", TRUE, user)
|
||||
playsound(user, sound_click, 20, 1)
|
||||
|
||||
|
||||
// Shield computer, used to manipulate base shield, and armory shield
|
||||
@@ -285,6 +287,7 @@
|
||||
to_chat(user, "<span class='warning'>[src] requires authentication with syndicate codewords, which you do not know.</span>")
|
||||
raise_alert("Detected unauthorized access by [user] to [src]!")
|
||||
updateUsrDialog()
|
||||
playsound(user, sound_yes, 50, 0)
|
||||
|
||||
/obj/machinery/computer/syndicate_depot/syndiecomms/secondary(mob/user, subcommand)
|
||||
if(..())
|
||||
@@ -319,6 +322,7 @@
|
||||
else
|
||||
to_chat(user, "<span class='warning'>ERROR: [src] is unable to uplink to depot network.</span>")
|
||||
updateUsrDialog()
|
||||
playsound(user, sound_yes, 50, 0)
|
||||
|
||||
/obj/machinery/computer/syndicate_depot/syndiecomms/proc/grant_syndie_faction(mob/user)
|
||||
user.faction += "syndicate"
|
||||
@@ -347,7 +351,7 @@
|
||||
icon_screen = "telesci"
|
||||
icon_keyboard = "teleport_key"
|
||||
var/obj/machinery/bluespace_beacon/syndicate/mybeacon
|
||||
var/obj/effect/portal/myportal
|
||||
var/obj/effect/portal/redspace/myportal
|
||||
var/portal_enabled = FALSE
|
||||
var/portaldir = WEST
|
||||
|
||||
@@ -401,10 +405,8 @@
|
||||
if(!tele_target)
|
||||
return
|
||||
var/turf/portal_turf = get_step(src, portaldir)
|
||||
var/obj/effect/portal/P = new(portal_turf, tele_target, src, 0)
|
||||
var/obj/effect/portal/redspace/P = new(portal_turf, tele_target, src, 0)
|
||||
myportal = P
|
||||
P.failchance = 0
|
||||
P.icon_state = "portal1"
|
||||
var/area/A = get_area(tele_target)
|
||||
P.name = "[A] portal"
|
||||
else if(!portal_enabled && myportal)
|
||||
@@ -432,6 +434,7 @@
|
||||
var/bresult = mybeacon.toggle()
|
||||
to_chat(user, "<span class='notice'>Syndicate Teleporter Beacon: [bresult ? "<span class='green'>ON</span>" : "<span class='red'>OFF</span>"]</span>")
|
||||
updateUsrDialog()
|
||||
playsound(user, sound_yes, 50, 0)
|
||||
|
||||
/obj/machinery/computer/syndicate_depot/teleporter/secondary(mob/user)
|
||||
if(..())
|
||||
@@ -444,6 +447,7 @@
|
||||
toggle_portal()
|
||||
to_chat(user, "<span class='notice'>Outgoing Teleport Portal: [portal_enabled ? "<span class='green'>ON</span>" : "<span class='red'>OFF</span>"]</span>")
|
||||
updateUsrDialog()
|
||||
playsound(user, sound_yes, 50, 0)
|
||||
|
||||
/obj/machinery/computer/syndicate_depot/teleporter/proc/toggle_portal()
|
||||
portal_enabled = !portal_enabled
|
||||
@@ -507,6 +511,7 @@
|
||||
if(depotarea)
|
||||
depotarea.reset_alert()
|
||||
to_chat(user, "Alert level reset.")
|
||||
playsound(user, sound_yes, 50, 0)
|
||||
|
||||
/obj/machinery/computer/syndicate_depot/aiterminal/secondary(mob/user)
|
||||
if(..())
|
||||
@@ -516,4 +521,5 @@
|
||||
new /obj/effect/portal(get_turf(B))
|
||||
to_chat(user, "[B] has been recalled.")
|
||||
qdel(B)
|
||||
raise_alert("Sentry bot removed via emergency recall.")
|
||||
raise_alert("Sentry bot removed via emergency recall.")
|
||||
playsound(user, sound_yes, 50, 0)
|
||||
@@ -3,7 +3,7 @@
|
||||
desc = "Used to monitor power levels across the station."
|
||||
icon_screen = "power"
|
||||
icon_keyboard = "power_key"
|
||||
use_power = 2
|
||||
use_power = ACTIVE_POWER_USE
|
||||
idle_power_usage = 20
|
||||
active_power_usage = 80
|
||||
light_color = LIGHT_COLOR_ORANGE
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
/obj/machinery/computer/secure_data/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
|
||||
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "secure_data.tmpl", name, 800, 380)
|
||||
ui = new(user, src, ui_key, "secure_data.tmpl", name, 800, 800)
|
||||
ui.open()
|
||||
|
||||
/obj/machinery/computer/secure_data/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
icon_state = "box_0"
|
||||
density = 1
|
||||
anchored = 1
|
||||
use_power = 0
|
||||
use_power = NO_POWER_USE
|
||||
var/obj/item/circuitboard/circuit = null
|
||||
var/list/components = null
|
||||
var/list/req_components = null
|
||||
@@ -655,11 +655,11 @@ obj/item/circuitboard/rdserver
|
||||
build_path = /obj/machinery/mecha_part_fabricator/spacepod
|
||||
board_type = "machine"
|
||||
origin_tech = "programming=2;engineering=2"
|
||||
frame_desc = "Requires 3 Matter Bins, 2 Manipulators, 2 Micro-Lasers, and 1 Console Screen."
|
||||
frame_desc = "Requires 2 Matter Bins, 1 Manipulators, 1 Micro-Lasers, and 1 Console Screen."
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 3,
|
||||
/obj/item/stock_parts/manipulator = 2,
|
||||
/obj/item/stock_parts/micro_laser = 2,
|
||||
/obj/item/stock_parts/matter_bin = 2,
|
||||
/obj/item/stock_parts/manipulator = 1,
|
||||
/obj/item/stock_parts/micro_laser = 1,
|
||||
/obj/item/stock_parts/console_screen = 1)
|
||||
|
||||
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
..()
|
||||
if(autoeject)
|
||||
if(occupant)
|
||||
if(!occupant.has_organic_damage())
|
||||
if(!occupant.has_organic_damage() && !occupant.has_mutated_organs())
|
||||
on = 0
|
||||
go_out()
|
||||
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
|
||||
@@ -149,8 +149,8 @@
|
||||
parent.update = 1
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/unary/cryo_cell/allow_drop()
|
||||
return 0
|
||||
/obj/machinery/atmospherics/unary/cryo_cell/AllowDrop()
|
||||
return FALSE
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/unary/cryo_cell/relaymove(mob/user as mob)
|
||||
@@ -367,7 +367,7 @@
|
||||
if(air_contents.total_moles() < 10)
|
||||
return
|
||||
if(occupant)
|
||||
if(occupant.stat == 2 || occupant.health >= 100) //Why waste energy on dead or healthy people
|
||||
if(occupant.stat == 2 || (occupant.health >= 100 && !occupant.has_mutated_organs())) //Why waste energy on dead or healthy people
|
||||
occupant.bodytemperature = T0C
|
||||
return
|
||||
occupant.bodytemperature += 2*(air_contents.temperature - occupant.bodytemperature)*current_heat_capacity/(current_heat_capacity + air_contents.heat_capacity())
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
*/
|
||||
|
||||
anchored = 1.0
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 2
|
||||
active_power_usage = 4
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
req_access = list()
|
||||
req_one_access = list()
|
||||
playsound(loc, "sparks", 100, 1)
|
||||
|
||||
|
||||
/obj/machinery/door_control/attack_ghost(mob/user)
|
||||
if(user.can_advanced_admin_interact())
|
||||
return attack_hand(user)
|
||||
|
||||
@@ -306,6 +306,10 @@ About the new airlock wires panel:
|
||||
else
|
||||
return 0
|
||||
|
||||
//Checks if the user can get shocked and shocks him if it can. Returns TRUE if it happened
|
||||
/obj/machinery/door/airlock/proc/shock_user(mob/user, prob)
|
||||
return (!issilicon(user) && isElectrified() && shock(user, prob))
|
||||
|
||||
/obj/machinery/door/airlock/update_icon(state=0, override=0)
|
||||
if(operating && !override)
|
||||
return
|
||||
@@ -630,11 +634,25 @@ About the new airlock wires panel:
|
||||
return ..()
|
||||
|
||||
/obj/machinery/door/airlock/attack_hand(mob/user)
|
||||
if(!issilicon(user))
|
||||
if(isElectrified())
|
||||
if(shock(user, 100))
|
||||
return
|
||||
if(shock_user(user, 100))
|
||||
return
|
||||
|
||||
if(headbutt_airlock(user))
|
||||
return//Smack that head against that airlock
|
||||
if(remove_airlock_note(user, FALSE))
|
||||
return
|
||||
|
||||
if(panel_open)
|
||||
if(security_level)
|
||||
to_chat(user, "<span class='warning'>Wires are protected!</span>")
|
||||
return
|
||||
wires.Interact(user)
|
||||
else
|
||||
..()
|
||||
|
||||
|
||||
//Checks if the user can headbutt the airlock and does it if it can. Returns TRUE if it happened
|
||||
/obj/machinery/door/airlock/proc/headbutt_airlock(mob/user)
|
||||
if(ishuman(user) && prob(40) && density)
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.getBrainLoss() >= 60 && Adjacent(user))
|
||||
@@ -648,15 +666,23 @@ About the new airlock wires panel:
|
||||
H.UpdateDamageIcon()
|
||||
else
|
||||
visible_message("<span class='warning'>[user] headbutts the airlock. Good thing [user.p_theyre()] wearing a helmet.</span>")
|
||||
return
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
//For the tools being used on the door. Since you don't want to call the attack_hand method if you're using hands. That would be silly
|
||||
//Also it's a bit inconsistent that when you access the panel you headbutt it. But not while crowbarring
|
||||
//Try to interact with the panel. If the user can't it'll try activating the door
|
||||
/obj/machinery/door/airlock/proc/interact_with_panel(mob/user)
|
||||
if(shock_user(user, 100))
|
||||
return
|
||||
|
||||
if(panel_open)
|
||||
if(security_level)
|
||||
to_chat(user, "<span class='warning'>Wires are protected!</span>")
|
||||
return
|
||||
wires.Interact(user)
|
||||
else
|
||||
..()
|
||||
try_to_activate_door(user)
|
||||
|
||||
/obj/machinery/door/airlock/CanUseTopic(mob/user)
|
||||
if(!issilicon(user) && !isobserver(user))
|
||||
@@ -777,13 +803,14 @@ About the new airlock wires panel:
|
||||
return 1
|
||||
|
||||
/obj/machinery/door/airlock/attackby(obj/item/C, mob/user, params)
|
||||
if(!issilicon(user))
|
||||
if(isElectrified())
|
||||
if(shock(user, 75))
|
||||
return
|
||||
if(shock_user(user, 75))
|
||||
return
|
||||
|
||||
add_fingerprint(user)
|
||||
|
||||
if(headbutt_airlock(user))//See if the user headbutts the airlock
|
||||
return
|
||||
|
||||
if(panel_open)
|
||||
switch(security_level)
|
||||
if(AIRLOCK_SECURITY_NONE)
|
||||
@@ -922,23 +949,19 @@ About the new airlock wires panel:
|
||||
update_icon()
|
||||
else if(iswirecutter(C))
|
||||
if(note)
|
||||
user.visible_message("<span class='notice'>[user] cuts down [note] from [src].</span>", "<span class='notice'>You remove [note] from [src].</span>")
|
||||
playsound(src, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||
note.forceMove(get_turf(user))
|
||||
note = null
|
||||
update_icon()
|
||||
remove_airlock_note(user, TRUE)
|
||||
else
|
||||
return attack_hand(user)
|
||||
return interact_with_panel(user)
|
||||
else if(ismultitool(C))
|
||||
return attack_hand(user)
|
||||
return interact_with_panel(user)
|
||||
else if(istype(C, /obj/item/assembly/signaler))
|
||||
return attack_hand(user)
|
||||
return interact_with_panel(user)
|
||||
else if(istype(C, /obj/item/pai_cable)) // -- TLE
|
||||
var/obj/item/pai_cable/cable = C
|
||||
cable.plugin(src, user)
|
||||
else if(istype(C, /obj/item/paper) || istype(C, /obj/item/photo))
|
||||
if(note)
|
||||
to_chat(user, "<span class='warning'>There's already something pinned to this airlock! Use wirecutters to remove it.</span>")
|
||||
to_chat(user, "<span class='warning'>There's already something pinned to this airlock! Use wirecutters or your hands to remove it.</span>")
|
||||
return
|
||||
if(!user.unEquip(C))
|
||||
to_chat(user, "<span class='warning'>For some reason, you can't attach [C]!</span>")
|
||||
@@ -1294,6 +1317,23 @@ About the new airlock wires panel:
|
||||
else if(istype(note, /obj/item/photo))
|
||||
return "photo"
|
||||
|
||||
//Removes the current note on the door if any. Returns if a note is removed
|
||||
/obj/machinery/door/airlock/proc/remove_airlock_note(mob/user, wirecutters_used=TRUE)
|
||||
if(note)
|
||||
if(!wirecutters_used)
|
||||
if (ishuman(user) && user.a_intent == INTENT_GRAB)//grab that note
|
||||
user.visible_message("<span class='notice'>[user] removes [note] from [src].</span>", "<span class='notice'>You remove [note] from [src].</span>")
|
||||
playsound(src, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
else return FALSE
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] cuts down [note] from [src].</span>", "<span class='notice'>You remove [note] from [src].</span>")
|
||||
playsound(src, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||
note.forceMove(get_turf(user))
|
||||
note = null
|
||||
update_icon()
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/machinery/door/airlock/narsie_act()
|
||||
var/turf/T = get_turf(src)
|
||||
var/runed = prob(20)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
icon_state = "barbervend"
|
||||
density = 1
|
||||
anchored = 1
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 40
|
||||
var/dye_color = "#FFFFFF"
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
name = "Embedded Controller"
|
||||
anchored = 1
|
||||
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 10
|
||||
|
||||
var/on = 1
|
||||
|
||||
@@ -13,7 +13,7 @@ FIRE ALARM
|
||||
var/lockdownbyai = 0
|
||||
anchored = 1.0
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 100)
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 2
|
||||
active_power_usage = 6
|
||||
power_channel = ENVIRON
|
||||
@@ -70,7 +70,7 @@ FIRE ALARM
|
||||
/obj/machinery/firealarm/attackby(obj/item/I, mob/user, params)
|
||||
add_fingerprint(user)
|
||||
|
||||
if(iswirecutter(I) && buildstage == 2)
|
||||
if(isscrewdriver(I) && buildstage == 2)
|
||||
wiresexposed = !wiresexposed
|
||||
update_icon()
|
||||
return
|
||||
@@ -281,7 +281,7 @@ Just a object used in constructing fire alarms
|
||||
var/timing = 0.0
|
||||
var/lockdownbyai = 0
|
||||
anchored = 1.0
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 2
|
||||
active_power_usage = 6
|
||||
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
var/id = null
|
||||
var/active = 0
|
||||
anchored = 1.0
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 2
|
||||
active_power_usage = 4
|
||||
|
||||
|
||||
@@ -1,23 +1,22 @@
|
||||
//these are probably broken
|
||||
|
||||
/obj/machinery/floodlight
|
||||
name = "Emergency Floodlight"
|
||||
name = "emergency floodlight"
|
||||
icon = 'icons/obj/machines/floodlight.dmi'
|
||||
icon_state = "flood00"
|
||||
anchored = 0
|
||||
density = 1
|
||||
var/on = 0
|
||||
anchored = FALSE
|
||||
density = TRUE
|
||||
light_power = 20
|
||||
var/on = FALSE
|
||||
var/obj/item/stock_parts/cell/high/cell = null
|
||||
var/use = 5
|
||||
var/unlocked = 0
|
||||
var/open = 0
|
||||
var/unlocked = FALSE
|
||||
var/open = FALSE
|
||||
var/brightness_on = 14
|
||||
light_power = 20
|
||||
//var/brightness_on = 999 //can't remember what the maxed out value is //Lighting overhaul: No max, stop TRYING TO ILLUMINATE MORE TILES THAN THE MAP CONSISTS OF.
|
||||
|
||||
/obj/machinery/floodlight/New()
|
||||
|
||||
/obj/machinery/floodlight/Initialize()
|
||||
. = ..()
|
||||
src.cell = new(src)
|
||||
..()
|
||||
mapVarInit()
|
||||
|
||||
/obj/machinery/floodlight/Destroy()
|
||||
QDEL_NULL(cell)
|
||||
@@ -30,13 +29,12 @@
|
||||
if(on)
|
||||
cell.charge -= use
|
||||
if(cell.charge <= 0)
|
||||
on = 0
|
||||
on = FALSE
|
||||
updateicon()
|
||||
set_light(0)
|
||||
src.visible_message("<span class='warning'>[src] shuts down due to lack of power!</span>")
|
||||
return
|
||||
|
||||
/obj/machinery/floodlight/attack_ai(mob/user as mob)
|
||||
/obj/machinery/floodlight/attack_ai()
|
||||
return
|
||||
|
||||
/obj/machinery/floodlight/attack_hand(mob/user as mob)
|
||||
@@ -51,25 +49,33 @@
|
||||
cell.update_icon()
|
||||
|
||||
src.cell = null
|
||||
to_chat(user, "You remove the power cell")
|
||||
to_chat(user, "You remove the power cell.")
|
||||
updateicon()
|
||||
return
|
||||
|
||||
if(on)
|
||||
on = 0
|
||||
to_chat(user, "<span class='notice'>You turn off the light</span>")
|
||||
on = FALSE
|
||||
to_chat(user, "<span class='notice'>You turn off the light.</span>")
|
||||
set_light(0)
|
||||
else
|
||||
if(!cell)
|
||||
return
|
||||
if(cell.charge <= 0)
|
||||
return
|
||||
on = 1
|
||||
to_chat(user, "<span class='notice'>You turn on the light</span>")
|
||||
on = TRUE
|
||||
to_chat(user, "<span class='notice'>You turn on the light.</span>")
|
||||
set_light(brightness_on)
|
||||
|
||||
updateicon()
|
||||
|
||||
/obj/machinery/floodlight/proc/mapVarInit()
|
||||
if(on)
|
||||
if(!cell)
|
||||
return
|
||||
if(cell.charge <= 0)
|
||||
return
|
||||
set_light(brightness_on)
|
||||
updateicon()
|
||||
|
||||
/obj/machinery/floodlight/attackby(obj/item/W as obj, mob/user as mob, params)
|
||||
if(istype(W, /obj/item/wrench))
|
||||
@@ -79,32 +85,32 @@
|
||||
"[user] tightens \the [src]'s casters.", \
|
||||
"<span class='notice'> You have tightened \the [src]'s casters.</span>", \
|
||||
"You hear ratchet.")
|
||||
anchored = 1
|
||||
anchored = TRUE
|
||||
else if(anchored)
|
||||
playsound(src.loc, W.usesound, 50, 1)
|
||||
user.visible_message( \
|
||||
"[user] loosens \the [src]'s casters.", \
|
||||
"<span class='notice'> You have loosened \the [src]'s casters.</span>", \
|
||||
"You hear ratchet.")
|
||||
anchored = 0
|
||||
anchored = FALSE
|
||||
if(istype(W, /obj/item/screwdriver))
|
||||
if(!open)
|
||||
if(unlocked)
|
||||
unlocked = 0
|
||||
unlocked = FALSE
|
||||
to_chat(user, "You screw the battery panel in place.")
|
||||
else
|
||||
unlocked = 1
|
||||
unlocked = TRUE
|
||||
to_chat(user, "You unscrew the battery panel.")
|
||||
|
||||
if(istype(W, /obj/item/crowbar))
|
||||
if(unlocked)
|
||||
if(open)
|
||||
open = 0
|
||||
open = FALSE
|
||||
overlays = null
|
||||
to_chat(user, "You crowbar the battery panel in place.")
|
||||
else
|
||||
if(unlocked)
|
||||
open = 1
|
||||
open = TRUE
|
||||
to_chat(user, "You remove the battery panel.")
|
||||
|
||||
if(istype(W, /obj/item/stock_parts/cell))
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user