Gateway refactor (#49868)

* Gateway refactor core stuff

* Updates gateways on aways.

* Boxstation gateway & control

* Deltastation gateway & control.

* Kilo gateway & control

* Meta gateway & control.

* Pubby gateway & control.

* makes away gateways easier to use.

* Makes gateway names bit better.

* No need for two dmis

* Autolinkup & description

* Docs formatting.

* Donutstation gateway & control

* Icon and init fixups

* ui fixups

* Better var name

* Use roundstart time instead of server time.

* sets dir properly, and locks bumper to south entry only.

* Cleans up gateway sprite a bit ?

* tgui build
This commit is contained in:
AnturK
2020-03-19 22:31:01 +02:00
committed by GitHub
parent d74c0bfba1
commit d02e0cc364
26 changed files with 493 additions and 1389 deletions
+9 -56
View File
@@ -2648,30 +2648,6 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/awaymission/academy/academygate)
"km" = (
/obj/machinery/gateway{
dir = 9
},
/turf/open/floor/plating,
/area/awaymission/academy/academygate)
"kn" = (
/obj/machinery/gateway{
dir = 1
},
/turf/open/floor/plating,
/area/awaymission/academy/academygate)
"ko" = (
/obj/machinery/gateway{
dir = 5
},
/turf/open/floor/plating,
/area/awaymission/academy/academygate)
"kp" = (
/obj/machinery/gateway{
dir = 8
},
/turf/open/floor/plating,
/area/awaymission/academy/academygate)
"kq" = (
/obj/effect/turf_decal/tile/yellow{
dir = 1
@@ -2682,29 +2658,6 @@
/mob/living/simple_animal/hostile/wizard,
/turf/open/floor/plasteel,
/area/awaymission/academy/classrooms)
"kr" = (
/obj/machinery/gateway{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/academy/academygate)
"ks" = (
/obj/machinery/gateway{
dir = 10
},
/turf/open/floor/plating,
/area/awaymission/academy/academygate)
"kt" = (
/obj/machinery/gateway,
/obj/structure/cable,
/turf/open/floor/plating,
/area/awaymission/academy/academygate)
"ku" = (
/obj/machinery/gateway{
dir = 6
},
/turf/open/floor/plating,
/area/awaymission/academy/academygate)
"kv" = (
/obj/machinery/light,
/turf/open/floor/carpet,
@@ -2775,7 +2728,7 @@
/turf/open/floor/plasteel/cafeteria,
/area/awaymission/academy/academyaft)
"kI" = (
/obj/machinery/gateway/centeraway,
/obj/machinery/gateway/away,
/obj/structure/cable,
/turf/open/floor/plating,
/area/awaymission/academy/academygate)
@@ -12010,9 +11963,9 @@ jZ
jU
ke
ke
km
kp
ks
kf
kf
kf
ke
kf
ky
@@ -12140,9 +12093,9 @@ jY
jU
jW
kf
kn
kf
kI
kt
ke
ke
kf
ky
@@ -12270,9 +12223,9 @@ jY
jU
jW
kf
ko
kr
ku
kf
kf
kf
kf
kf
ky
+9 -56
View File
@@ -644,24 +644,6 @@
/obj/machinery/processor,
/turf/open/floor/plasteel/freezer,
/area/awaymission/cabin)
"cb" = (
/obj/machinery/gateway{
dir = 9
},
/turf/open/floor/wood,
/area/awaymission/cabin)
"cc" = (
/obj/machinery/gateway{
dir = 1
},
/turf/open/floor/wood,
/area/awaymission/cabin)
"cd" = (
/obj/machinery/gateway{
dir = 5
},
/turf/open/floor/wood,
/area/awaymission/cabin)
"ce" = (
/obj/structure/chair/wood{
dir = 4
@@ -744,20 +726,8 @@
"cn" = (
/turf/open/lava,
/area/awaymission/cabin/caves/mountain)
"co" = (
/obj/machinery/gateway{
dir = 8
},
/turf/open/floor/wood,
/area/awaymission/cabin)
"cp" = (
/obj/machinery/gateway/centeraway,
/turf/open/floor/wood,
/area/awaymission/cabin)
"cq" = (
/obj/machinery/gateway{
dir = 4
},
/obj/machinery/gateway/away,
/turf/open/floor/wood,
/area/awaymission/cabin)
"cr" = (
@@ -798,23 +768,6 @@
},
/turf/open/floor/plasteel/white,
/area/awaymission/cabin)
"cw" = (
/obj/machinery/gateway{
dir = 10
},
/turf/open/floor/wood,
/area/awaymission/cabin)
"cx" = (
/obj/machinery/gateway,
/obj/structure/cable,
/turf/open/floor/wood,
/area/awaymission/cabin)
"cy" = (
/obj/machinery/gateway{
dir = 6
},
/turf/open/floor/wood,
/area/awaymission/cabin)
"cz" = (
/obj/machinery/light{
dir = 1
@@ -35823,9 +35776,9 @@ an
bk
bJ
an
cb
co
cw
aq
aq
aq
eg
cH
cQ
@@ -36080,9 +36033,9 @@ an
nU
an
an
cc
aq
cp
cx
eg
eg
aq
cQ
@@ -36337,9 +36290,9 @@ an
jf
ay
an
cd
cq
cy
aq
aq
aq
eg
cH
cQ
+9 -85
View File
@@ -224,65 +224,15 @@
/mob/living/simple_animal/crab,
/turf/open/floor/plating/beach/sand,
/area/awaymission/beach)
"aL" = (
/obj/machinery/gateway{
dir = 9
},
/obj/effect/turf_decal/sand,
/obj/effect/turf_decal/stripes/asteroid/line{
dir = 9
},
/turf/open/floor/plating/beach/sand,
/area/awaymission/beach)
"aM" = (
/obj/machinery/gateway{
dir = 1
},
/obj/effect/turf_decal/sand,
/obj/effect/turf_decal/stripes/asteroid/line{
dir = 1
},
/turf/open/floor/plating/beach/sand,
/area/awaymission/beach)
"aN" = (
/obj/machinery/gateway{
dir = 5
},
/obj/effect/turf_decal/sand,
/obj/effect/turf_decal/stripes/asteroid/line{
dir = 5
},
/turf/open/floor/plating/beach/sand,
/area/awaymission/beach)
"aO" = (
/obj/effect/baseturf_helper/beach/sand,
/turf/open/floor/plating/beach/sand,
/area/awaymission/beach)
"aP" = (
/obj/machinery/gateway{
dir = 8
},
/obj/effect/turf_decal/sand,
/obj/effect/turf_decal/stripes/asteroid/line{
dir = 8
},
/turf/open/floor/plating/beach/sand,
/area/awaymission/beach)
"aQ" = (
/obj/machinery/gateway/centeraway,
/obj/machinery/gateway/away,
/obj/effect/turf_decal/sand,
/turf/open/floor/plating/beach/sand,
/area/awaymission/beach)
"aR" = (
/obj/machinery/gateway{
dir = 4
},
/obj/effect/turf_decal/sand,
/obj/effect/turf_decal/stripes/asteroid/line{
dir = 4
},
/turf/open/floor/plating/beach/sand,
/area/awaymission/beach)
"aS" = (
/obj/item/reagent_containers/food/drinks/soda_cans/lemon_lime{
pixel_x = -12;
@@ -295,32 +245,6 @@
dir = 8
},
/area/awaymission/beach)
"aU" = (
/obj/machinery/gateway{
dir = 10
},
/obj/effect/turf_decal/sand,
/obj/effect/turf_decal/stripes/asteroid/line{
dir = 10
},
/turf/open/floor/plating/beach/sand,
/area/awaymission/beach)
"aV" = (
/obj/machinery/gateway,
/obj/effect/turf_decal/sand,
/obj/effect/turf_decal/stripes/asteroid/line,
/turf/open/floor/plating/beach/sand,
/area/awaymission/beach)
"aW" = (
/obj/machinery/gateway{
dir = 6
},
/obj/effect/turf_decal/sand,
/obj/effect/turf_decal/stripes/asteroid/line{
dir = 6
},
/turf/open/floor/plating/beach/sand,
/area/awaymission/beach)
"aX" = (
/turf/closed/wall/mineral/sandstone,
/area/awaymission/beach)
@@ -6908,9 +6832,9 @@ ak
ak
ak
ak
aL
aP
aU
bf
bp
bx
ak
ak
ba
@@ -7015,9 +6939,9 @@ ak
ak
ak
ak
aM
bg
aQ
aV
by
ba
ba
ba
@@ -7122,9 +7046,9 @@ ak
ak
ak
ak
aN
aR
aW
bh
br
bz
ak
ak
ak
+9 -71
View File
@@ -392,54 +392,14 @@
initial_gas_mix = "n2=23;o2=14"
},
/area/awaymission/caves/BMP_asteroid/level_three)
"bi" = (
/obj/machinery/gateway{
dir = 9
},
/turf/open/floor/engine/cult{
initial_gas_mix = "n2=23;o2=14"
},
/area/awaymission/caves/BMP_asteroid/level_four)
"bj" = (
/obj/machinery/gateway{
dir = 1
},
/turf/open/floor/engine/cult{
initial_gas_mix = "n2=23;o2=14"
},
/area/awaymission/caves/BMP_asteroid/level_four)
"bk" = (
/obj/machinery/gateway{
dir = 5
},
/turf/open/floor/engine/cult{
initial_gas_mix = "n2=23;o2=14"
},
/area/awaymission/caves/BMP_asteroid/level_four)
"bl" = (
/obj/machinery/gateway{
dir = 8
},
/turf/open/floor/engine/cult{
initial_gas_mix = "n2=23;o2=14"
},
/area/awaymission/caves/BMP_asteroid/level_four)
"bm" = (
/obj/machinery/gateway/centeraway{
/obj/machinery/gateway/away{
calibrated = 0
},
/turf/open/floor/engine/cult{
initial_gas_mix = "n2=23;o2=14"
},
/area/awaymission/caves/BMP_asteroid/level_four)
"bn" = (
/obj/machinery/gateway{
dir = 4
},
/turf/open/floor/engine/cult{
initial_gas_mix = "n2=23;o2=14"
},
/area/awaymission/caves/BMP_asteroid/level_four)
"bo" = (
/obj/structure/flora/rock,
/obj/item/soulstone/anybody,
@@ -447,28 +407,6 @@
initial_gas_mix = "n2=23;o2=14"
},
/area/awaymission/caves/BMP_asteroid/level_three)
"bp" = (
/obj/machinery/gateway{
dir = 10
},
/turf/open/floor/engine/cult{
initial_gas_mix = "n2=23;o2=14"
},
/area/awaymission/caves/BMP_asteroid/level_four)
"bq" = (
/obj/machinery/gateway,
/turf/open/floor/engine/cult{
initial_gas_mix = "n2=23;o2=14"
},
/area/awaymission/caves/BMP_asteroid/level_four)
"br" = (
/obj/machinery/gateway{
dir = 6
},
/turf/open/floor/engine/cult{
initial_gas_mix = "n2=23;o2=14"
},
/area/awaymission/caves/BMP_asteroid/level_four)
"bs" = (
/obj/structure/trap/stun{
desc = "A rune inscribed in the floor, the air feeling electrified around it.";
@@ -58099,9 +58037,9 @@ ao
ao
ao
bf
bi
bl
bp
ao
ao
ao
aw
ao
bz
@@ -58356,9 +58294,9 @@ ao
ao
bf
ap
bj
ao
bm
bq
ao
bf
bw
bA
@@ -58613,9 +58551,9 @@ ao
ao
ao
bf
bk
bn
br
ao
ao
ao
ao
ao
bz
+8 -121
View File
@@ -882,110 +882,13 @@
},
/turf/open/floor/plating,
/area/awaymission/challenge/end)
"cR" = (
/obj/machinery/gateway{
dir = 9
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark,
/area/awaymission/challenge/end)
"cS" = (
/obj/machinery/gateway{
dir = 1
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark,
/area/awaymission/challenge/end)
"cT" = (
/obj/machinery/gateway{
dir = 5
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark,
/area/awaymission/challenge/end)
"cV" = (
/obj/machinery/gateway{
dir = 8
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark,
/area/awaymission/challenge/end)
"cW" = (
/obj/machinery/gateway/centeraway{
/obj/machinery/gateway/away{
calibrated = 0
},
/turf/open/floor/plasteel/dark,
/area/awaymission/challenge/end)
"cX" = (
/obj/machinery/gateway{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark,
/area/awaymission/challenge/end)
"cY" = (
/obj/machinery/gateway{
dir = 10
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark,
/area/awaymission/challenge/end)
"cZ" = (
/obj/machinery/gateway,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -999,22 +902,6 @@
/obj/structure/cable,
/turf/open/floor/plasteel/dark,
/area/awaymission/challenge/end)
"da" = (
/obj/machinery/gateway{
dir = 6
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark,
/area/awaymission/challenge/end)
"db" = (
/obj/structure/window/reinforced,
/turf/open/floor/circuit,
@@ -29035,9 +28922,9 @@ cd
cn
cH
cN
cR
cV
cY
co
co
co
db
dg
cd
@@ -29292,7 +29179,7 @@ cd
cn
cH
cN
cS
co
cW
cZ
dc
@@ -29549,9 +29436,9 @@ cd
cn
cH
cN
cT
cX
da
co
co
co
db
dh
cd
+6 -103
View File
@@ -181,45 +181,6 @@
},
/area/awaymission/moonoutpost19/syndicate)
"aG" = (
/obj/machinery/gateway{
dir = 9
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark{
heat_capacity = 1e+006
},
/area/awaymission/moonoutpost19/syndicate)
"aH" = (
/obj/machinery/gateway{
dir = 1
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark{
heat_capacity = 1e+006
},
/area/awaymission/moonoutpost19/syndicate)
"aI" = (
/obj/machinery/gateway{
dir = 5
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -270,26 +231,8 @@
heat_capacity = 1e+006
},
/area/awaymission/moonoutpost19/syndicate)
"aO" = (
/obj/machinery/gateway{
dir = 8
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark{
heat_capacity = 1e+006
},
/area/awaymission/moonoutpost19/syndicate)
"aP" = (
/obj/machinery/gateway/centeraway{
/obj/machinery/gateway/away{
calibrated = 0
},
/obj/structure/cable,
@@ -297,24 +240,6 @@
heat_capacity = 1e+006
},
/area/awaymission/moonoutpost19/syndicate)
"aQ" = (
/obj/machinery/gateway{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark{
heat_capacity = 1e+006
},
/area/awaymission/moonoutpost19/syndicate)
"aR" = (
/obj/machinery/light{
dir = 4
@@ -357,26 +282,7 @@
heat_capacity = 1e+006
},
/area/awaymission/moonoutpost19/syndicate)
"aW" = (
/obj/machinery/gateway{
dir = 10
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark{
heat_capacity = 1e+006
},
/area/awaymission/moonoutpost19/syndicate)
"aX" = (
/obj/machinery/gateway,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -393,9 +299,6 @@
},
/area/awaymission/moonoutpost19/syndicate)
"aY" = (
/obj/machinery/gateway{
dir = 6
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -41596,8 +41499,8 @@ ac
at
az
aG
aO
aW
aG
aG
aV
br
bB
@@ -41852,7 +41755,7 @@ ac
ac
at
aA
aH
aG
aP
aX
bg
@@ -42109,8 +42012,8 @@ ac
ac
at
aB
aI
aQ
aG
aG
aY
bh
bt
+1 -23
View File
@@ -548,27 +548,18 @@
/turf/open/floor/plasteel/dark,
/area/awaymission/research/interior/gateway)
"bA" = (
/obj/machinery/gateway{
dir = 9
},
/obj/effect/turf_decal/stripes/line{
dir = 9
},
/turf/open/floor/plasteel/dark,
/area/awaymission/research/interior/gateway)
"bB" = (
/obj/machinery/gateway{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/turf/open/floor/plasteel/dark,
/area/awaymission/research/interior/gateway)
"bC" = (
/obj/machinery/gateway{
dir = 5
},
/obj/effect/turf_decal/stripes/line{
dir = 5
},
@@ -718,25 +709,19 @@
/turf/open/floor/plasteel/dark,
/area/awaymission/research/interior/gateway)
"bS" = (
/obj/machinery/gateway{
dir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/turf/open/floor/plasteel/dark,
/area/awaymission/research/interior/gateway)
"bT" = (
/obj/machinery/gateway/centeraway{
/obj/machinery/gateway/away{
calibrated = 0
},
/obj/structure/cable,
/turf/open/floor/plasteel/dark,
/area/awaymission/research/interior/gateway)
"bU" = (
/obj/machinery/gateway{
dir = 4
},
/obj/effect/turf_decal/stripes/line{
dir = 4
},
@@ -785,25 +770,18 @@
/turf/open/floor/plasteel/white,
/area/awaymission/research/interior/engineering)
"bY" = (
/obj/machinery/gateway{
dir = 10
},
/obj/effect/turf_decal/stripes/line{
dir = 10
},
/turf/open/floor/plasteel/dark,
/area/awaymission/research/interior/gateway)
"bZ" = (
/obj/machinery/gateway,
/obj/effect/landmark/awaystart,
/obj/effect/turf_decal/stripes/line,
/obj/structure/cable,
/turf/open/floor/plasteel/dark,
/area/awaymission/research/interior/gateway)
"ca" = (
/obj/machinery/gateway{
dir = 6
},
/obj/effect/turf_decal/stripes/line{
dir = 6
},
+5 -44
View File
@@ -2429,23 +2429,6 @@
/turf/open/floor/plasteel,
/area/awaymission/snowdin/post/gateway)
"fG" = (
/obj/machinery/gateway{
dir = 9
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/awaymission/snowdin/post/gateway)
"fH" = (
/obj/machinery/gateway{
dir = 1
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/awaymission/snowdin/post/gateway)
"fI" = (
/obj/machinery/gateway{
dir = 5
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/awaymission/snowdin/post/gateway)
@@ -2793,15 +2776,12 @@
/turf/open/floor/plasteel,
/area/awaymission/snowdin/post/gateway)
"gw" = (
/obj/machinery/gateway{
dir = 8
},
/obj/effect/turf_decal/bot,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
/area/awaymission/snowdin/post/gateway)
"gx" = (
/obj/machinery/gateway/centeraway{
/obj/machinery/gateway/away{
calibrated = 0
},
/obj/effect/turf_decal/bot,
@@ -2809,13 +2789,6 @@
/obj/structure/cable,
/turf/open/floor/plasteel,
/area/awaymission/snowdin/post/gateway)
"gy" = (
/obj/machinery/gateway{
dir = 4
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/awaymission/snowdin/post/gateway)
"gz" = (
/obj/machinery/light/broken{
dir = 4
@@ -3143,25 +3116,13 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
/area/awaymission/snowdin/post/gateway)
"hl" = (
/obj/machinery/gateway{
dir = 10
},
/obj/effect/turf_decal/bot,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
/area/awaymission/snowdin/post/gateway)
"hm" = (
/obj/machinery/gateway,
/obj/effect/turf_decal/bot,
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable,
/turf/open/floor/plasteel,
/area/awaymission/snowdin/post/gateway)
"hn" = (
/obj/machinery/gateway{
dir = 6
},
/obj/effect/turf_decal/bot,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -25755,7 +25716,7 @@ en
fh
fG
gw
hl
gw
hR
iA
ju
@@ -26010,7 +25971,7 @@ bE
dK
eo
fh
fH
fG
gx
hm
hS
@@ -26267,8 +26228,8 @@ dk
dK
ep
fh
fI
gy
fG
fG
hn
hT
iC
+10 -56
View File
@@ -944,24 +944,6 @@
},
/turf/open/floor/plating,
/area/awaymission/spacebattle/cruiser)
"ec" = (
/obj/machinery/gateway{
dir = 9
},
/turf/open/floor/plating,
/area/awaymission/spacebattle/cruiser)
"ed" = (
/obj/machinery/gateway{
dir = 1
},
/turf/open/floor/plating,
/area/awaymission/spacebattle/cruiser)
"ee" = (
/obj/machinery/gateway{
dir = 5
},
/turf/open/floor/plating,
/area/awaymission/spacebattle/cruiser)
"ef" = (
/mob/living/simple_animal/hostile/syndicate/melee/spacebattle,
/turf/open/floor/mineral/plastitanium/red,
@@ -999,24 +981,12 @@
"el" = (
/turf/open/floor/engine,
/area/awaymission/spacebattle/cruiser)
"em" = (
/obj/machinery/gateway{
dir = 8
},
/turf/open/floor/plating,
/area/awaymission/spacebattle/cruiser)
"en" = (
/obj/machinery/gateway/centeraway{
/obj/machinery/gateway/away{
calibrated = 0
},
/turf/open/floor/plating,
/area/awaymission/spacebattle/cruiser)
"eo" = (
/obj/machinery/gateway{
dir = 4
},
/turf/open/floor/plating,
/area/awaymission/spacebattle/cruiser)
"ep" = (
/obj/structure/chair{
dir = 1
@@ -1030,22 +1000,6 @@
"er" = (
/turf/closed/wall/mineral/plastitanium,
/area/awaymission/spacebattle/syndicate4)
"et" = (
/obj/machinery/gateway{
dir = 10
},
/turf/open/floor/plating,
/area/awaymission/spacebattle/cruiser)
"eu" = (
/obj/machinery/gateway,
/turf/open/floor/plating,
/area/awaymission/spacebattle/cruiser)
"ev" = (
/obj/machinery/gateway{
dir = 6
},
/turf/open/floor/plating,
/area/awaymission/spacebattle/cruiser)
"ew" = (
/obj/structure/chair,
/turf/open/floor/mineral/plastitanium/red,
@@ -2553,13 +2507,13 @@
/turf/open/floor/plating,
/area/awaymission/spacebattle/cruiser)
"jK" = (
/mob/living/simple_animal/hostile/syndicate/melee/sword,
/obj/effect/turf_decal/tile/blue{
dir = 1
},
/obj/effect/turf_decal/tile/blue{
dir = 8
},
/mob/living/simple_animal/hostile/syndicate/melee/sword,
/turf/open/floor/plasteel,
/area/awaymission/spacebattle/cruiser)
"jL" = (
@@ -26891,9 +26845,9 @@ cc
cc
bT
cK
ec
em
et
cK
cK
cK
cK
cK
cK
@@ -27148,9 +27102,9 @@ cA
cc
bT
cK
ed
cK
en
eu
cK
cK
cK
cK
@@ -27405,9 +27359,9 @@ cc
cc
bT
cK
ee
eo
ev
cK
cK
cK
cK
jF
fb
+7 -119
View File
@@ -3276,45 +3276,6 @@
},
/area/awaymission/undergroundoutpost45/central)
"gR" = (
/obj/machinery/gateway{
dir = 9
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark{
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/gateway)
"gS" = (
/obj/machinery/gateway{
dir = 1
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark{
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/gateway)
"gT" = (
/obj/machinery/gateway{
dir = 5
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -3585,26 +3546,8 @@
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/crew_quarters)
"ht" = (
/obj/machinery/gateway{
dir = 8
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark{
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/gateway)
"hu" = (
/obj/machinery/gateway/centeraway{
/obj/machinery/gateway/away{
calibrated = 0
},
/obj/structure/cable,
@@ -3612,24 +3555,6 @@
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/gateway)
"hv" = (
/obj/machinery/gateway{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark{
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/gateway)
"hw" = (
/obj/structure/chair{
dir = 8
@@ -3906,26 +3831,7 @@
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/central)
"hY" = (
/obj/machinery/gateway{
dir = 10
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark{
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/gateway)
"hZ" = (
/obj/machinery/gateway,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -3941,24 +3847,6 @@
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/gateway)
"ia" = (
/obj/machinery/gateway{
dir = 6
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark{
heat_capacity = 1e+006
},
/area/awaymission/undergroundoutpost45/gateway)
"ib" = (
/obj/structure/chair{
dir = 8
@@ -32687,8 +32575,8 @@ ad
gv
gJ
gR
ht
hY
gR
gR
it
iO
jh
@@ -32943,7 +32831,7 @@ ad
ad
gv
gJ
gS
gR
hu
hZ
iu
@@ -33200,9 +33088,9 @@ ad
ad
gw
gJ
gT
hv
ia
gR
gR
gR
iv
iQ
jj
+9 -55
View File
@@ -63,58 +63,12 @@
/obj/structure/destructible/cult/pylon,
/turf/open/floor/circuit/green/off,
/area/awaymission/wildwest/vault)
"ar" = (
/obj/machinery/gateway{
dir = 9
},
/turf/open/floor/circuit/green/off,
/area/awaymission/wildwest/vault)
"as" = (
/obj/machinery/gateway{
dir = 1
},
/turf/open/floor/circuit/green/off,
/area/awaymission/wildwest/vault)
"at" = (
/obj/machinery/gateway{
dir = 5
},
/turf/open/floor/circuit/green/off,
/area/awaymission/wildwest/vault)
"au" = (
/obj/machinery/gateway{
dir = 8
},
/turf/open/floor/circuit/green/off,
/area/awaymission/wildwest/vault)
"av" = (
/obj/machinery/gateway/centeraway{
/obj/machinery/gateway/away{
calibrated = 0
},
/turf/open/floor/circuit/green/off,
/area/awaymission/wildwest/vault)
"aw" = (
/obj/machinery/gateway{
dir = 4
},
/turf/open/floor/circuit/green/off,
/area/awaymission/wildwest/vault)
"ax" = (
/obj/machinery/gateway{
dir = 10
},
/turf/open/floor/circuit/green/off,
/area/awaymission/wildwest/vault)
"ay" = (
/obj/machinery/gateway,
/turf/open/floor/circuit/green/off,
/area/awaymission/wildwest/vault)
"az" = (
/obj/machinery/gateway{
dir = 6
},
/turf/open/floor/circuit/green/off,
/area/awaymission/wildwest/vault)
"aA" = (
/obj/effect/meatgrinder,
/turf/open/floor/circuit/green/off,
@@ -47405,9 +47359,9 @@ aa
ab
ab
ab
ar
au
ax
ao
ao
ao
ao
ao
ao
@@ -47662,9 +47616,9 @@ aa
ab
ab
ab
as
ao
av
ay
ao
ao
ao
ao
@@ -47919,9 +47873,9 @@ aa
aa
ab
ab
at
aw
az
ao
ao
ao
ao
ao
ao
+6 -84
View File
@@ -9922,9 +9922,6 @@
/turf/open/space,
/area/space/nearstation)
"azJ" = (
/obj/machinery/gateway{
dir = 9
},
/obj/effect/turf_decal/bot_white/right,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -9945,9 +9942,6 @@
/turf/open/floor/plasteel/dark,
/area/gateway)
"azL" = (
/obj/machinery/gateway{
dir = 5
},
/obj/effect/turf_decal/bot_white/left,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -9962,9 +9956,6 @@
/turf/open/floor/plasteel/dark,
/area/gateway)
"azM" = (
/obj/machinery/gateway{
dir = 1
},
/obj/effect/turf_decal/bot_white,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -10454,43 +10445,9 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/closed/wall/r_wall,
/area/ai_monitored/nuke_storage)
"aBd" = (
/obj/machinery/gateway{
dir = 8
},
/obj/effect/turf_decal/bot_white,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark,
/area/gateway)
"aBe" = (
/turf/open/floor/plasteel/dark,
/area/gateway)
"aBf" = (
/obj/machinery/gateway{
dir = 4
},
/obj/effect/turf_decal/bot_white,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark,
/area/gateway)
"aBg" = (
/obj/machinery/gateway/centerstation,
/turf/open/floor/plasteel/dark,
@@ -10814,42 +10771,7 @@
},
/turf/open/floor/plasteel/dark,
/area/ai_monitored/nuke_storage)
"aBX" = (
/obj/machinery/gateway{
dir = 10
},
/obj/effect/turf_decal/bot_white/left,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark,
/area/gateway)
"aBY" = (
/obj/machinery/gateway{
dir = 6
},
/obj/effect/turf_decal/bot_white/right,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark,
/area/gateway)
"aBZ" = (
/obj/machinery/gateway,
/obj/effect/turf_decal/bot_white,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -11905,8 +11827,7 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/nuke_storage)
"aEQ" = (
/obj/structure/table,
/obj/item/paper/pamphlet/gateway,
/obj/machinery/computer/gateway_control,
/turf/open/floor/plasteel,
/area/gateway)
"aER" = (
@@ -11920,6 +11841,7 @@
},
/obj/item/storage/firstaid/regular,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/item/paper/pamphlet/gateway,
/turf/open/floor/plasteel,
/area/gateway)
"aES" = (
@@ -79036,8 +78958,8 @@ awb
axt
ayG
azJ
aBd
aBX
azM
azL
aDi
aEQ
aFW
@@ -79550,8 +79472,8 @@ awc
axt
ayG
azL
aBf
aBY
azM
azJ
aDw
aES
aJh
+4 -43
View File
@@ -69031,12 +69031,11 @@
/obj/structure/table,
/obj/item/storage/firstaid/regular,
/obj/effect/turf_decal/bot,
/obj/item/paper/pamphlet/gateway,
/obj/item/paper/pamphlet/gateway,
/turf/open/floor/plasteel,
/area/gateway)
"cyE" = (
/obj/machinery/gateway{
dir = 9
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/bot_white/right,
/obj/effect/turf_decal/tile/neutral{
@@ -69052,9 +69051,6 @@
/turf/open/floor/plasteel/dark,
/area/gateway)
"cyF" = (
/obj/machinery/gateway{
dir = 1
},
/obj/machinery/status_display/evac{
pixel_y = 32
},
@@ -69073,9 +69069,6 @@
/turf/open/floor/plasteel/dark,
/area/gateway)
"cyG" = (
/obj/machinery/gateway{
dir = 5
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/bot_white/left,
/obj/effect/turf_decal/tile/neutral{
@@ -69954,20 +69947,13 @@
/turf/open/floor/plasteel,
/area/gateway)
"cAg" = (
/obj/structure/table,
/obj/item/clipboard,
/obj/item/paper/pamphlet/gateway,
/obj/item/paper/pamphlet/gateway,
/obj/item/paper/pamphlet/gateway,
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/bot,
/obj/structure/cable,
/obj/machinery/computer/gateway_control,
/turf/open/floor/plasteel,
/area/gateway)
"cAi" = (
/obj/machinery/gateway{
dir = 8
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/bot_white,
/obj/effect/turf_decal/tile/neutral{
@@ -69988,24 +69974,6 @@
/obj/structure/cable,
/turf/open/floor/plasteel/dark,
/area/gateway)
"cAk" = (
/obj/machinery/gateway{
dir = 4
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/bot_white,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark,
/area/gateway)
"cAl" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/camera{
@@ -70730,9 +70698,6 @@
/turf/closed/wall,
/area/gateway)
"cBD" = (
/obj/machinery/gateway{
dir = 10
},
/obj/machinery/light{
dir = 8
},
@@ -70751,7 +70716,6 @@
/turf/open/floor/plasteel/dark,
/area/gateway)
"cBE" = (
/obj/machinery/gateway,
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/bot_white,
/obj/effect/turf_decal/tile/neutral{
@@ -70768,9 +70732,6 @@
/turf/open/floor/plasteel/dark,
/area/gateway)
"cBF" = (
/obj/machinery/gateway{
dir = 6
},
/obj/effect/decal/cleanable/dirt,
/obj/machinery/camera{
c_tag = "Bridge - Gateway Chamber";
@@ -159324,7 +159285,7 @@ cuk
cvE
cvz
cyG
cAk
cAi
cBF
cDm
cFa
@@ -2680,9 +2680,6 @@
/turf/open/floor/plasteel/dark,
/area/gateway)
"gg" = (
/obj/machinery/gateway{
dir = 9
},
/obj/effect/turf_decal/bot_white/right,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -2917,9 +2914,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/upper)
"gG" = (
/obj/machinery/gateway{
dir = 1
},
/obj/effect/turf_decal/bot_white,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -2938,9 +2932,6 @@
/turf/open/floor/plasteel/dark,
/area/gateway)
"gH" = (
/obj/machinery/gateway{
dir = 5
},
/obj/effect/turf_decal/bot_white/left,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -3007,9 +2998,6 @@
/turf/open/floor/plasteel,
/area/hallway/primary/upper)
"gN" = (
/obj/machinery/gateway{
dir = 8
},
/obj/effect/turf_decal/bot_white,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -3069,44 +3057,7 @@
},
/turf/open/floor/plating,
/area/quartermaster/sorting)
"gS" = (
/obj/machinery/gateway{
dir = 4
},
/obj/effect/turf_decal/bot_white,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
/area/gateway)
"gT" = (
/obj/machinery/gateway{
dir = 10
},
/obj/effect/turf_decal/bot_white/left,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
/area/gateway)
"gU" = (
/obj/machinery/gateway,
/obj/effect/turf_decal/bot_white,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -3128,24 +3079,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/upper)
"gW" = (
/obj/machinery/gateway{
dir = 6
},
/obj/effect/turf_decal/bot_white/right,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
/area/gateway)
"gX" = (
/obj/effect/turf_decal/trimline/white/filled/corner{
dir = 8
@@ -3222,13 +3155,13 @@
/area/gateway)
"hd" = (
/obj/effect/turf_decal/bot,
/obj/structure/closet/secure_closet/exile,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/machinery/computer/gateway_control,
/turf/open/floor/plasteel,
/area/gateway)
"he" = (
@@ -20906,6 +20839,17 @@
},
/turf/open/openspace/airless,
/area/hallway/primary/upper)
"Ya" = (
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/structure/closet/secure_closet/exile,
/turf/open/floor/plasteel,
/area/gateway)
"YH" = (
/turf/open/openspace/airless,
/area/hallway/primary/upper)
@@ -57547,7 +57491,7 @@ lK
eL
gg
gN
gT
gH
gY
hc
tC
@@ -58060,10 +58004,10 @@ lz
lK
eL
gH
gS
gW
gN
gg
uf
hc
Ya
tE
tK
ob
+1 -23
View File
@@ -2778,7 +2778,6 @@
/turf/open/floor/plating/airless,
/area/maintenance/starboard/fore)
"aeH" = (
/obj/structure/closet/cardboard,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/small{
dir = 4
@@ -2787,6 +2786,7 @@
dir = 8;
pixel_x = 32
},
/obj/machinery/computer/gateway_control,
/turf/open/floor/plasteel/dark,
/area/gateway)
"aeI" = (
@@ -7579,9 +7579,6 @@
/turf/open/floor/plasteel/dark,
/area/tcommsat/computer)
"amk" = (
/obj/machinery/gateway{
dir = 1
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -14359,9 +14356,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/obj/machinery/gateway{
dir = 10
},
/obj/effect/decal/cleanable/dirt,
/obj/machinery/airalarm{
dir = 4;
@@ -81458,9 +81452,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/machinery/gateway{
dir = 9
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
/area/gateway)
@@ -81527,9 +81518,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/machinery/gateway{
dir = 5
},
/obj/effect/decal/cleanable/dirt,
/obj/machinery/camera{
c_tag = "Gateway";
@@ -82905,9 +82893,6 @@
dir = 8
},
/obj/effect/decal/cleanable/greenglow,
/obj/machinery/gateway{
dir = 8
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
/area/gateway)
@@ -82924,9 +82909,6 @@
dir = 4
},
/obj/effect/decal/cleanable/greenglow,
/obj/machinery/gateway{
dir = 4
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
/area/gateway)
@@ -82988,7 +82970,6 @@
dir = 8
},
/obj/effect/decal/cleanable/greenglow,
/obj/machinery/gateway,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
/area/gateway)
@@ -83001,9 +82982,6 @@
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/machinery/gateway{
dir = 6
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
/area/gateway)
+5 -69
View File
@@ -39280,14 +39280,12 @@
dir = 1
},
/obj/structure/cable,
/obj/item/paper/pamphlet/gateway,
/turf/open/floor/plasteel{
dir = 1
},
/area/gateway)
"bJY" = (
/obj/machinery/gateway{
dir = 9
},
/obj/effect/turf_decal/bot_white/right,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -39302,9 +39300,6 @@
/turf/open/floor/plasteel/dark,
/area/gateway)
"bJZ" = (
/obj/machinery/gateway{
dir = 1
},
/obj/machinery/status_display/evac{
pixel_y = 32
},
@@ -39322,9 +39317,6 @@
/turf/open/floor/plasteel/dark,
/area/gateway)
"bKa" = (
/obj/machinery/gateway{
dir = 5
},
/obj/effect/turf_decal/bot_white/left,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -39956,19 +39948,15 @@
/turf/open/floor/plasteel,
/area/gateway)
"bLB" = (
/obj/structure/table,
/obj/item/paper/pamphlet/gateway,
/obj/effect/turf_decal/bot{
dir = 1
},
/obj/machinery/computer/gateway_control,
/turf/open/floor/plasteel{
dir = 1
},
/area/gateway)
"bLD" = (
/obj/machinery/gateway{
dir = 8
},
/obj/effect/turf_decal/bot_white,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -39986,23 +39974,6 @@
/obj/machinery/gateway/centerstation,
/turf/open/floor/plasteel/dark,
/area/gateway)
"bLF" = (
/obj/machinery/gateway{
dir = 4
},
/obj/effect/turf_decal/bot_white,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark,
/area/gateway)
"bLG" = (
/obj/item/cigbutt,
/obj/effect/landmark/blobstart,
@@ -40790,25 +40761,7 @@
dir = 1
},
/area/gateway)
"bNp" = (
/obj/machinery/gateway{
dir = 10
},
/obj/effect/turf_decal/bot_white/left,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark,
/area/gateway)
"bNq" = (
/obj/machinery/gateway,
/obj/effect/turf_decal/bot_white,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -40823,23 +40776,6 @@
/obj/structure/cable,
/turf/open/floor/plasteel/dark,
/area/gateway)
"bNr" = (
/obj/machinery/gateway{
dir = 6
},
/obj/effect/turf_decal/bot_white/right,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark,
/area/gateway)
"bNs" = (
/obj/structure/cable,
/turf/open/floor/plating,
@@ -108758,7 +108694,7 @@ bGQ
bGM
bJY
bLD
bNp
bKa
bOK
bQu
bRL
@@ -109271,8 +109207,8 @@ bFd
bGS
bGM
bKa
bLF
bNr
bLD
bJY
bOM
bQw
bRM
+5 -69
View File
@@ -5430,9 +5430,6 @@
/turf/closed/wall,
/area/maintenance/fore)
"aoA" = (
/obj/machinery/gateway{
dir = 9
},
/obj/effect/turf_decal/bot_white/right,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -5447,9 +5444,6 @@
/turf/open/floor/plasteel/dark,
/area/gateway)
"aoB" = (
/obj/machinery/gateway{
dir = 1
},
/obj/machinery/light{
dir = 1
},
@@ -5467,9 +5461,6 @@
/turf/open/floor/plasteel/dark,
/area/gateway)
"aoC" = (
/obj/machinery/gateway{
dir = 5
},
/obj/effect/turf_decal/bot_white/left,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -5763,9 +5754,6 @@
/turf/open/space,
/area/space/nearstation)
"apq" = (
/obj/machinery/gateway{
dir = 8
},
/obj/effect/turf_decal/bot_white,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -5784,23 +5772,6 @@
/obj/structure/cable,
/turf/open/floor/plasteel/dark,
/area/gateway)
"aps" = (
/obj/machinery/gateway{
dir = 4
},
/obj/effect/turf_decal/bot_white,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark,
/area/gateway)
"apt" = (
/obj/structure/chair{
dir = 4
@@ -5933,25 +5904,7 @@
"apT" = (
/turf/closed/wall/r_wall,
/area/ai_monitored/nuke_storage)
"apU" = (
/obj/machinery/gateway{
dir = 10
},
/obj/effect/turf_decal/bot_white/left,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark,
/area/gateway)
"apV" = (
/obj/machinery/gateway,
/obj/effect/turf_decal/bot_white,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -5966,23 +5919,6 @@
/obj/structure/cable,
/turf/open/floor/plasteel/dark,
/area/gateway)
"apW" = (
/obj/machinery/gateway{
dir = 6
},
/obj/effect/turf_decal/bot_white/right,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
/turf/open/floor/plasteel/dark,
/area/gateway)
"apX" = (
/turf/closed/wall,
/area/crew_quarters/dorms)
@@ -6782,12 +6718,11 @@
c_tag = "Gateway";
dir = 4
},
/obj/structure/table,
/obj/structure/sign/warning/biohazard{
pixel_x = -32
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/item/paper/pamphlet,
/obj/machinery/computer/gateway_control,
/turf/open/floor/plasteel,
/area/gateway)
"arY" = (
@@ -6842,6 +6777,7 @@
pixel_x = 32
},
/obj/item/radio/off,
/obj/item/paper/pamphlet,
/turf/open/floor/plasteel,
/area/gateway)
"asb" = (
@@ -94588,7 +94524,7 @@ aaa
lcZ
aoA
apq
apU
aoC
aqQ
arX
ata
@@ -95101,8 +95037,8 @@ aiS
aaa
lcZ
aoC
aps
apW
apq
aoA
aqS
arZ
atc
+1 -2
View File
@@ -36,8 +36,7 @@ GLOBAL_LIST_EMPTY(deathsquadspawn)
GLOBAL_LIST_EMPTY(emergencyresponseteamspawn)
GLOBAL_LIST_EMPTY(ruin_landmarks)
//away missions
GLOBAL_LIST_EMPTY(awaydestinations) //a list of landmarks that the warpgate can take you to
//away missions
GLOBAL_LIST_EMPTY(vr_spawnpoints)
//used by jump-to-area etc. Updated by area/updateName()
+3 -12
View File
@@ -68,18 +68,9 @@
// And here are some good things for free:
// Now you can click through portals, wormholes, gateways, and teleporters while observing. -Sayu
/obj/machinery/gateway/centerstation/attack_ghost(mob/user)
if(awaygate)
user.forceMove(awaygate.loc)
else
to_chat(user, "<span class='boldwarning'>[src] has no destination.</span>")
return ..()
/obj/machinery/gateway/centeraway/attack_ghost(mob/user)
if(stationgate)
user.forceMove(stationgate.loc)
else
to_chat(user, "<span class='boldwarning'>[src] has no destination.</span>")
/obj/effect/gateway_portal_bumper/attack_ghost(mob/user)
if(gateway)
gateway.Transfer(user)
return ..()
/obj/machinery/teleport/hub/attack_ghost(mob/user)
-12
View File
@@ -456,18 +456,6 @@ GLOBAL_LIST_EMPTY(the_station_areas)
message_admins("Loading [away_name] failed!")
return
if(GLOB.the_gateway)
//Link any found away gate with station gate
var/obj/machinery/gateway/centeraway/new_gate
for(var/obj/machinery/gateway/centeraway/G in GLOB.machines)
if(G.z == away_level.z_value) //I'll have to refactor gateway shitcode before multi-away support.
new_gate = G
break
//Link station gate with away gate and remove wait time.
GLOB.the_gateway.awaygate = new_gate
GLOB.the_gateway.wait = world.time
/datum/controller/subsystem/mapping/proc/RequestBlockReservation(width, height, z, type = /datum/turf_reservation, turf_type_override)
UNTIL((!z || reservation_ready["[z]"]) && !clearing_reserved_turfs)
var/datum/turf_reservation/reserve = new type
+268 -196
View File
@@ -1,164 +1,246 @@
/// Station home gateway
GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
/// List of possible gateway destinations.
GLOBAL_LIST_EMPTY(gateway_destinations)
/**
* Corresponds to single entry in gateway control.
*
* Will NOT be added automatically to GLOB.gateway_destinations list.
*/
/datum/gateway_destination
var/name = "Unknown Destination"
var/wait = 0 /// How long after roundstart this destination becomes active
var/enabled = TRUE /// If disabled, the destination won't be availible
var/hidden = FALSE /// Will not show on gateway controls at all.
/* Can a gateway link to this destination right now. */
/datum/gateway_destination/proc/is_availible()
return enabled && (world.time - SSticker.round_start_time >= wait)
/* Returns user-friendly description why you can't connect to this destination, displayed in UI */
/datum/gateway_destination/proc/get_availible_reason()
. = "Unreachable"
if(world.time - SSticker.round_start_time < wait)
. = "Connection desynchronized. Recalibration in progress."
/* Check if the movable is allowed to arrive at this destination (exile implants mostly) */
/datum/gateway_destination/proc/incoming_pass_check(atom/movable/AM)
return TRUE
/* Get the actual turf we'll arrive at */
/datum/gateway_destination/proc/get_target_turf()
CRASH("get target turf not implemented for this destination type")
/* Called after moving the movable to target turf */
/datum/gateway_destination/proc/post_transfer(atom/movable/AM)
if (ismob(AM))
var/mob/M = AM
if (M.client)
M.client.move_delay = max(world.time + 5, M.client.move_delay)
/* Called when gateway activates with this destination. */
/datum/gateway_destination/proc/activate(obj/machinery/gateway/activated)
return
/* Called when gateway targeting this destination deactivates. */
/datum/gateway_destination/proc/deactivate(obj/machinery/gateway/deactivated)
return
/* Returns data used by gateway controller ui */
/datum/gateway_destination/proc/get_ui_data()
. = list()
.["ref"] = REF(src)
.["name"] = name
.["availible"] = is_availible()
.["reason"] = get_availible_reason()
if(wait)
.["timeout"] = max(1 - (wait - (world.time - SSticker.round_start_time)) / wait, 0)
/* Destination is another gateway */
/datum/gateway_destination/gateway
/// The gateway this destination points at
var/obj/machinery/gateway/target_gateway
/* We set the target gateway target to activator gateway */
/datum/gateway_destination/gateway/activate(obj/machinery/gateway/activated)
if(!target_gateway.target)
target_gateway.activate(activated)
/* We turn off the target gateway if it's linked with us */
/datum/gateway_destination/gateway/deactivate(obj/machinery/gateway/deactivated)
if(target_gateway.target == deactivated.destination)
target_gateway.deactivate()
/datum/gateway_destination/gateway/is_availible()
return ..() && target_gateway.calibrated && !target_gateway.target && target_gateway.powered()
/datum/gateway_destination/gateway/get_availible_reason()
. = ..()
if(!target_gateway.calibrated)
. = "Exit gateway malfunction. Manual recalibration required."
if(target_gateway.target)
. = "Exit gateway in use."
if(!target_gateway.powered())
. = "Exit gateway unpowered."
/datum/gateway_destination/gateway/get_target_turf()
return get_step(target_gateway.portal,SOUTH)
/datum/gateway_destination/gateway/post_transfer(atom/movable/AM)
. = ..()
addtimer(CALLBACK(AM,/atom/movable.proc/setDir,SOUTH),0)
/* Special home destination, so we can check exile implants */
/datum/gateway_destination/gateway/home
/datum/gateway_destination/gateway/home/incoming_pass_check(atom/movable/AM)
if(isliving(AM))
if(check_exile_implant(AM))
return FALSE
else
for(var/mob/living/L in AM.contents)
if(check_exile_implant(L))
target_gateway.say("Rejecting [AM]: Exile implant detected in contained lifeform.")
return FALSE
if(AM.has_buckled_mobs())
for(var/mob/living/L in AM.buckled_mobs)
if(check_exile_implant(L))
target_gateway.say("Rejecting [AM]: Exile implant detected in close proximity lifeform.")
return FALSE
return TRUE
/datum/gateway_destination/gateway/home/proc/check_exile_implant(mob/living/L)
for(var/obj/item/implant/exile/E in L.implants)//Checking that there is an exile implant
to_chat(L, "<span class='userdanger'>The station gate has detected your exile implant and is blocking your entry.</span>")
return TRUE
return FALSE
/* Destination is one ore more turfs - created by landmarks */
/datum/gateway_destination/point
var/list/target_turfs = list()
/// Used by away landmarks
var/id
/datum/gateway_destination/point/get_target_turf()
return pick(target_turfs)
/* Dense invisible object starting the teleportation. Created by gateways on activation. */
/obj/effect/gateway_portal_bumper
var/obj/machinery/gateway/gateway
density = TRUE
invisibility = INVISIBILITY_ABSTRACT
/obj/effect/gateway_portal_bumper/Bumped(atom/movable/AM)
if(get_dir(src,AM) == SOUTH)
gateway.Transfer(AM)
/obj/effect/gateway_portal_bumper/Destroy(force)
. = ..()
gateway = null
/obj/machinery/gateway
name = "gateway"
desc = "A mysterious gateway built by unknown hands, it allows for faster than light travel to far-flung locations."
icon = 'icons/obj/machines/gateway.dmi'
icon_state = "off"
density = TRUE
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
var/active = 0
var/checkparts = TRUE
var/list/obj/effect/landmark/randomspawns = list()
// 3x2 offset by one row
pixel_x = -32
pixel_y = -32
bound_height = 64
bound_width = 96
bound_x = -32
bound_y = 0
density = TRUE
use_power = IDLE_POWER_USE
idle_power_usage = 100
active_power_usage = 5000
var/calibrated = TRUE
var/list/linked = list()
var/can_link = FALSE //Is this the centerpiece?
/// Type of instanced gateway destination, needs to be subtype of /datum/gateway_destination/gateway
var/destination_type = /datum/gateway_destination/gateway
/// Name of the generated destination
var/destination_name = "Unknown Gateway"
/// This is our own destination, pointing at this gateway
var/datum/gateway_destination/gateway/destination
/// This is current active destination
var/datum/gateway_destination/target
/// bumper object, the thing that starts actual teleport
var/obj/effect/gateway_portal_bumper/portal
/obj/machinery/gateway/Initialize()
randomspawns = GLOB.awaydestinations
generate_destination()
update_icon()
if(!istype(src, /obj/machinery/gateway/centerstation) && !istype(src, /obj/machinery/gateway/centeraway))
switch(dir)
if(SOUTH,SOUTHEAST,SOUTHWEST)
density = FALSE
return ..()
/obj/machinery/gateway/proc/toggleoff()
for(var/obj/machinery/gateway/G in linked)
G.active = 0
G.update_icon()
active = 0
/obj/machinery/gateway/proc/generate_destination()
destination = new destination_type
destination.name = destination_name
destination.target_gateway = src
GLOB.gateway_destinations += destination
/obj/machinery/gateway/proc/deactivate()
var/datum/gateway_destination/dest = target
target = null
dest.deactivate(src)
QDEL_NULL(portal)
use_power = IDLE_POWER_USE
update_icon()
/obj/machinery/gateway/proc/detect()
if(!can_link)
return FALSE
linked = list() //clear the list
var/turf/T = loc
var/ready = FALSE
for(var/i in GLOB.alldirs)
T = get_step(loc, i)
var/obj/machinery/gateway/G = locate(/obj/machinery/gateway) in T
if(G)
linked.Add(G)
continue
//this is only done if we fail to find a part
ready = FALSE
toggleoff()
break
if((linked.len == 8) || !checkparts)
ready = TRUE
return ready
/obj/machinery/gateway/process()
if((machine_stat & (NOPOWER)) && use_power)
if(target)
deactivate()
return
/obj/machinery/gateway/update_icon_state()
if(active)
if(target)
icon_state = "on"
else
icon_state = "off"
/obj/machinery/gateway/attack_hand(mob/user)
. = ..()
if(.)
return
if(!detect())
return
if(!active)
toggleon(user)
return
toggleoff()
/obj/machinery/gateway/proc/toggleon(mob/user)
return FALSE
/obj/machinery/gateway/safe_throw_at(atom/target, range, speed, mob/thrower, spin = TRUE, diagonals_first = FALSE, datum/callback/callback, force = MOVE_FORCE_STRONG, gentle = FALSE)
return
/obj/machinery/gateway/proc/generate_bumper()
portal = new(get_turf(src))
portal.gateway = src
/obj/machinery/gateway/proc/activate(datum/gateway_destination/D)
if(!powered() || target)
return
target = D
target.activate(destination)
generate_bumper()
use_power = ACTIVE_POWER_USE
update_icon()
/obj/machinery/gateway/proc/Transfer(atom/movable/AM)
if(!target || !target.incoming_pass_check(AM))
return
AM.forceMove(target.get_target_turf())
target.post_transfer(AM)
/* Station's primary gateway */
/obj/machinery/gateway/centerstation
destination_type = /datum/gateway_destination/gateway/home
destination_name = "Home Gateway"
/obj/machinery/gateway/centerstation/Initialize()
. = ..()
if(!GLOB.the_gateway)
GLOB.the_gateway = src
update_icon()
wait = world.time + CONFIG_GET(number/gateway_delay) //+ thirty minutes default
awaygate = locate(/obj/machinery/gateway/centeraway)
/obj/machinery/gateway/centerstation/Destroy()
if(GLOB.the_gateway == src)
GLOB.the_gateway = null
return ..()
//this is da important part wot makes things go
/obj/machinery/gateway/centerstation
density = TRUE
icon_state = "offcenter"
use_power = IDLE_POWER_USE
//warping vars
var/wait = 0 //this just grabs world.time at world start
var/obj/machinery/gateway/centeraway/awaygate = null
can_link = TRUE
/obj/machinery/gateway/centerstation/update_icon_state()
if(active)
icon_state = "oncenter"
else
icon_state = "offcenter"
/obj/machinery/gateway/centerstation/process()
if((machine_stat & (NOPOWER)) && use_power)
if(active)
toggleoff()
return
if(active)
use_power(5000)
/obj/machinery/gateway/centerstation/toggleon(mob/user)
if(!detect())
return
if(!powered())
return
if(!awaygate)
to_chat(user, "<span class='alert'>Error: No destination found.</span>")
return
if(world.time < wait)
to_chat(user, "<span class='notice'>Error: Warpspace triangulation in progress. Estimated time to completion: [DisplayTimeText(wait - world.time)].</span>")
return
for(var/obj/machinery/gateway/G in linked)
G.active = 1
G.update_icon()
active = 1
update_icon()
//okay, here's the good teleporting stuff
/obj/machinery/gateway/centerstation/Bumped(atom/movable/AM)
if(!active)
return
if(!detect())
return
if(!awaygate || QDELETED(awaygate))
return
if(awaygate.calibrated)
AM.forceMove(get_step(awaygate.loc, SOUTH))
AM.setDir(SOUTH)
if (ismob(AM))
var/mob/M = AM
if (M.client)
M.client.move_delay = max(world.time + 5, M.client.move_delay)
return
else
var/obj/effect/landmark/dest = pick(randomspawns)
if(dest)
AM.forceMove(get_turf(dest))
AM.setDir(SOUTH)
use_power(5000)
return
/obj/machinery/gateway/centeraway/multitool_act(mob/living/user, obj/item/I)
/obj/machinery/gateway/multitool_act(mob/living/user, obj/item/I)
if(calibrated)
to_chat(user, "<span class='alert'>The gate is already calibrated, there is no work for you to do here.</span>")
else
@@ -166,87 +248,77 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
calibrated = TRUE
return TRUE
/////////////////////////////////////Away////////////////////////
/obj/machinery/gateway/centeraway
/* Doesn't need control console or power, always links to home when interacting. */
/obj/machinery/gateway/away
density = TRUE
icon_state = "offcenter"
use_power = NO_POWER_USE
var/obj/machinery/gateway/centerstation/stationgate = null
can_link = TRUE
/obj/machinery/gateway/centeraway/Initialize()
/obj/machinery/gateway/away/interact(mob/user, special_state)
. = ..()
update_icon()
stationgate = locate(/obj/machinery/gateway/centerstation)
/obj/machinery/gateway/centeraway/update_icon_state()
if(active)
icon_state = "oncenter"
else
icon_state = "offcenter"
/obj/machinery/gateway/centeraway/toggleon(mob/user)
if(!detect())
return
if(!stationgate)
to_chat(user, "<span class='notice'>Error: No destination found.</span>")
return
for(var/obj/machinery/gateway/G in linked)
G.active = 1
G.update_icon()
active = 1
update_icon()
/obj/machinery/gateway/centeraway/proc/check_exile_implant(mob/living/L)
for(var/obj/item/implant/exile/E in L.implants)//Checking that there is an exile implant
to_chat(L, "\black The station gate has detected your exile implant and is blocking your entry.")
return TRUE
return FALSE
/obj/machinery/gateway/centeraway/Bumped(atom/movable/AM)
if(!detect())
return
if(!active)
return
if(!stationgate || QDELETED(stationgate))
return
if(isliving(AM))
if(check_exile_implant(AM))
if(!target)
if(!GLOB.the_gateway)
to_chat(user,"<span class='warning'>Home gateway is not responding!</span>")
if(GLOB.the_gateway.target)
to_chat(user,"<span class='warning'>Home gateway already in use!</span>")
return
activate(GLOB.the_gateway.destination)
else
for(var/mob/living/L in AM.contents)
if(check_exile_implant(L))
say("Rejecting [AM]: Exile implant detected in contained lifeform.")
return
if(AM.has_buckled_mobs())
for(var/mob/living/L in AM.buckled_mobs)
if(check_exile_implant(L))
say("Rejecting [AM]: Exile implant detected in close proximity lifeform.")
return
AM.forceMove(get_step(stationgate.loc, SOUTH))
AM.setDir(SOUTH)
if (ismob(AM))
var/mob/M = AM
if (M.client)
M.client.move_delay = max(world.time + 5, M.client.move_delay)
deactivate()
/* Gateway control computer */
/obj/machinery/computer/gateway_control
name = "Gateway Control"
desc = "Human friendly interface to the mysterious gate next to it."
var/obj/machinery/gateway/G
/obj/machinery/gateway/centeraway/admin
desc = "A mysterious gateway built by unknown hands, this one seems more compact."
/obj/machinery/gateway/centeraway/admin/Initialize()
/obj/machinery/computer/gateway_control/Initialize(mapload, obj/item/circuitboard/C)
. = ..()
if(stationgate && !stationgate.awaygate)
stationgate.awaygate = src
try_to_linkup()
/obj/machinery/gateway/centeraway/admin/detect()
return TRUE
/obj/machinery/computer/gateway_control/ui_interact(mob/user, ui_key = "main", datum/tgui/ui, force_open, datum/tgui/master_ui, datum/ui_state/state = GLOB.default_state)
. = ..()
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "gateway", name, ui_x, ui_y, master_ui, state)
ui.open()
/obj/machinery/computer/gateway_control/ui_data(mob/user)
. = ..()
.["gateway_present"] = G
.["gateway_status"] = G ? G.powered() : FALSE
.["current_target"] = G?.target?.get_ui_data()
var/list/destinations = list()
if(G)
for(var/datum/gateway_destination/D in GLOB.gateway_destinations)
if(D == G.destination)
continue
destinations += list(D.get_ui_data())
.["destinations"] = destinations
/obj/machinery/computer/gateway_control/ui_act(action, list/params)
. = ..()
switch(action)
if("linkup")
try_to_linkup()
return TRUE
if("activate")
var/datum/gateway_destination/D = locate(params["destination"]) in GLOB.gateway_destinations
try_to_connect(D)
return TRUE
if("deactivate")
if(G && G.target)
G.deactivate()
return TRUE
/obj/machinery/computer/gateway_control/proc/try_to_linkup()
G = locate(/obj/machinery/gateway) in view(7,get_turf(src))
/obj/machinery/computer/gateway_control/proc/try_to_connect(datum/gateway_destination/D)
if(!D || !G)
return
if(!D.is_availible() || G.target)
return
G.activate(D)
/obj/item/paper/fluff/gateway
info = "Congratulations,<br><br>Your station has been selected to carry out the Gateway Project.<br><br>The equipment will be shipped to you at the start of the next quarter.<br> You are to prepare a secure location to house the equipment as outlined in the attached documents.<br><br>--Nanotrasen Bluespace Research"
+17 -16
View File
@@ -2,33 +2,34 @@
GLOBAL_LIST_INIT(potentialRandomZlevels, generateMapList(filename = "[global.config.directory]/awaymissionconfig.txt"))
/proc/createRandomZlevel()
if(GLOB.awaydestinations.len) //crude, but it saves another var!
return
if(GLOB.potentialRandomZlevels && GLOB.potentialRandomZlevels.len)
to_chat(world, "<span class='boldannounce'>Loading away mission...</span>")
var/map = pick(GLOB.potentialRandomZlevels)
load_new_z_level(map, "Away Mission")
to_chat(world, "<span class='boldannounce'>Away mission loaded.</span>")
/proc/reset_gateway_spawns(reset = FALSE)
for(var/obj/machinery/gateway/G in world)
if(reset)
G.randomspawns = GLOB.awaydestinations
else
G.randomspawns.Add(GLOB.awaydestinations)
/obj/effect/landmark/awaystart
name = "away mission spawn"
desc = "Randomly picked away mission spawn points."
var/id
var/delay = TRUE // If the generated destination should be delayed by configured gateway delay
/obj/effect/landmark/awaystart/New()
GLOB.awaydestinations += src
..()
/obj/effect/landmark/awaystart/Initialize()
. = ..()
var/datum/gateway_destination/point/current
for(var/datum/gateway_destination/point/D in GLOB.gateway_destinations)
if(D.id == id)
current = D
if(!current)
current = new
current.id = id
if(delay)
current.wait = CONFIG_GET(number/gateway_delay)
GLOB.gateway_destinations += current
current.target_turfs += get_turf(src)
/obj/effect/landmark/awaystart/Destroy()
GLOB.awaydestinations -= src
return ..()
/obj/effect/landmark/awaystart/nodelay
delay = FALSE
/proc/generateMapList(filename)
. = list()
Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 16 KiB

+78
View File
@@ -0,0 +1,78 @@
import { useBackend } from '../backend';
import { Box, Button, NoticeBox, Section, Icon, ProgressBar } from '../components';
import { Fragment } from 'inferno';
export const Gateway = props => {
const { act, data } = useBackend(props);
const {
gateway_present = false,
gateway_status = false,
current_target = null,
destinations = [],
} = data;
if (!gateway_present) {
return (
<Section>
<NoticeBox textAlign="center">
No linked gateway
</NoticeBox>
<Button fluid onClick={() => act("linkup")}>Linkup</Button>
</Section>
);
}
if (current_target)
{
return (
<Section title={current_target.name} textAlign="center">
<Icon name="rainbow" size={4} color="green" />
<Button
fluid
onClick={() => act("deactivate")}>
Deactivate
</Button>
</Section>
);
}
if (!destinations.length) {
return (<Section>No gateway nodes detected.</Section>);
}
const GatewayDest = dest => {
if (dest.availible)
{
return (
<Section
key={dest.ref}
title={dest.name}
textAlign="center">
<Button
fluid
onClick={() => act("activate", { "destination": dest.ref })}>
Activate
</Button>
</Section>);
}
else
{
return (
<Section
textAlign="center"
key={dest.ref}
title={dest.name}>
<Box m={1} textColor="bad">{dest.reason}</Box>
{!!dest.timeout && (<ProgressBar
value={dest.timeout}
content="Calibrating..." />)}
</Section>);
}
};
return (
<Fragment>
{!gateway_status && (<NoticeBox>Gateway Unpowered</NoticeBox>)}
{destinations.map(GatewayDest)}
</Fragment>);
};
File diff suppressed because one or more lines are too long
+5
View File
@@ -44,6 +44,7 @@ import { Electropack } from './interfaces/Electropack';
import { EmergencyShuttleConsole } from './interfaces/EmergencyShuttleConsole';
import { EngravedMessage } from './interfaces/EngravedMessage';
import { ExosuitControlConsole } from './interfaces/ExosuitControlConsole';
import { Gateway } from './interfaces/Gateway';
import { Gps } from './interfaces/Gps';
import { GravityGenerator } from './interfaces/GravityGenerator';
import { GulagTeleporterConsole } from './interfaces/GulagTeleporterConsole';
@@ -318,6 +319,10 @@ const ROUTES = {
component: () => ExosuitControlConsole,
scrollable: true,
},
gateway: {
component: () => Gateway,
scrollable: true,
},
gps: {
component: () => Gps,
scrollable: true,