Merge remote-tracking branch 'Citadel-Station-13/master' into Garlic
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
FROM tgstation/byond:513.1503 as base
|
||||
FROM tgstation/byond:513.1508 as base
|
||||
|
||||
FROM base as build_base
|
||||
|
||||
|
||||
@@ -1,4 +1,35 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"aa" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"ab" = (
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"ac" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"ad" = (
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aT" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/button/door{
|
||||
@@ -166,13 +197,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"wt" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"xx" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
@@ -320,16 +344,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"HW" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"In" = (
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
|
||||
/obj/machinery/door/airlock/external{
|
||||
@@ -366,13 +380,6 @@
|
||||
/obj/machinery/power/am_control_unit,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"JC" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"JZ" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/orange/visible{
|
||||
dir = 4
|
||||
@@ -525,16 +532,6 @@
|
||||
/obj/effect/turf_decal/box/red,
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/engineering)
|
||||
"YY" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"Zb" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 10
|
||||
@@ -862,7 +859,7 @@ xJ
|
||||
gf
|
||||
fh
|
||||
dN
|
||||
YY
|
||||
aa
|
||||
MD
|
||||
Ch
|
||||
dz
|
||||
@@ -890,7 +887,7 @@ LO
|
||||
Eu
|
||||
Pg
|
||||
cP
|
||||
JC
|
||||
ab
|
||||
WI
|
||||
rj
|
||||
dz
|
||||
@@ -918,7 +915,7 @@ NS
|
||||
xx
|
||||
fh
|
||||
zW
|
||||
JC
|
||||
ab
|
||||
WI
|
||||
rj
|
||||
dz
|
||||
@@ -946,7 +943,7 @@ yo
|
||||
me
|
||||
aT
|
||||
Aw
|
||||
JC
|
||||
ab
|
||||
WI
|
||||
rj
|
||||
dz
|
||||
@@ -973,7 +970,7 @@ MJ
|
||||
jH
|
||||
FK
|
||||
Ch
|
||||
wt
|
||||
ad
|
||||
Ch
|
||||
rj
|
||||
rj
|
||||
@@ -1026,7 +1023,7 @@ MJ
|
||||
MJ
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
wt
|
||||
ad
|
||||
Zz
|
||||
Wf
|
||||
Ox
|
||||
@@ -1082,7 +1079,7 @@ MJ
|
||||
MJ
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
wt
|
||||
ad
|
||||
eJ
|
||||
Zx
|
||||
nW
|
||||
@@ -1141,7 +1138,7 @@ MJ
|
||||
jH
|
||||
Nz
|
||||
Ch
|
||||
wt
|
||||
ad
|
||||
Ch
|
||||
rj
|
||||
rj
|
||||
@@ -1170,7 +1167,7 @@ fh
|
||||
WX
|
||||
HQ
|
||||
Aw
|
||||
JC
|
||||
ab
|
||||
WI
|
||||
rj
|
||||
dz
|
||||
@@ -1198,7 +1195,7 @@ fh
|
||||
kh
|
||||
fh
|
||||
fh
|
||||
JC
|
||||
ab
|
||||
WI
|
||||
rj
|
||||
dz
|
||||
@@ -1226,7 +1223,7 @@ fh
|
||||
kh
|
||||
uG
|
||||
cP
|
||||
JC
|
||||
ab
|
||||
WI
|
||||
rj
|
||||
dz
|
||||
@@ -1254,7 +1251,7 @@ eA
|
||||
FY
|
||||
mB
|
||||
Rp
|
||||
HW
|
||||
ac
|
||||
Mi
|
||||
Ch
|
||||
dz
|
||||
|
||||
@@ -1,4 +1,52 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"aa" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"ab" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"ac" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"ad" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"ae" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"af" = (
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aT" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/button/door{
|
||||
@@ -35,16 +83,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"dW" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"ea" = (
|
||||
/obj/effect/turf_decal/stripes/line,
|
||||
/turf/open/floor/engine,
|
||||
@@ -299,23 +337,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"wt" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"xg" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"xx" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
@@ -542,16 +563,6 @@
|
||||
/obj/structure/closet/radiation,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"HW" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"In" = (
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
|
||||
/obj/machinery/door/airlock/external{
|
||||
@@ -582,19 +593,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"JC" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"Kg" = (
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "1-2"
|
||||
@@ -825,19 +823,6 @@
|
||||
},
|
||||
/turf/closed/wall,
|
||||
/area/engine/engineering)
|
||||
"YY" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"Zb" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 10
|
||||
@@ -1169,7 +1154,7 @@ xJ
|
||||
gf
|
||||
fh
|
||||
dN
|
||||
YY
|
||||
aa
|
||||
MD
|
||||
Ch
|
||||
Pt
|
||||
@@ -1197,7 +1182,7 @@ LO
|
||||
Eu
|
||||
Pg
|
||||
cP
|
||||
JC
|
||||
ab
|
||||
tv
|
||||
rj
|
||||
Pt
|
||||
@@ -1225,7 +1210,7 @@ NS
|
||||
xx
|
||||
fh
|
||||
zW
|
||||
dW
|
||||
ac
|
||||
ea
|
||||
rj
|
||||
Pt
|
||||
@@ -1253,7 +1238,7 @@ yo
|
||||
me
|
||||
aT
|
||||
Aw
|
||||
JC
|
||||
ab
|
||||
tv
|
||||
rj
|
||||
Og
|
||||
@@ -1280,7 +1265,7 @@ MJ
|
||||
jH
|
||||
FK
|
||||
Ch
|
||||
wt
|
||||
af
|
||||
tE
|
||||
rj
|
||||
rj
|
||||
@@ -1333,7 +1318,7 @@ dz
|
||||
MJ
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
wt
|
||||
af
|
||||
Zz
|
||||
Wf
|
||||
Ox
|
||||
@@ -1389,7 +1374,7 @@ MJ
|
||||
MJ
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
wt
|
||||
af
|
||||
eJ
|
||||
Zx
|
||||
nW
|
||||
@@ -1448,7 +1433,7 @@ MJ
|
||||
jH
|
||||
Nz
|
||||
Ch
|
||||
wt
|
||||
af
|
||||
tE
|
||||
rj
|
||||
rj
|
||||
@@ -1477,7 +1462,7 @@ AF
|
||||
WX
|
||||
HQ
|
||||
Aw
|
||||
JC
|
||||
ab
|
||||
tv
|
||||
rj
|
||||
Og
|
||||
@@ -1505,7 +1490,7 @@ fh
|
||||
kh
|
||||
fh
|
||||
fh
|
||||
dW
|
||||
ac
|
||||
ea
|
||||
rj
|
||||
Pt
|
||||
@@ -1533,7 +1518,7 @@ fh
|
||||
kh
|
||||
uG
|
||||
cP
|
||||
xg
|
||||
ad
|
||||
tv
|
||||
rj
|
||||
Pt
|
||||
@@ -1561,7 +1546,7 @@ eA
|
||||
FY
|
||||
mB
|
||||
Rp
|
||||
HW
|
||||
ae
|
||||
Mi
|
||||
Ch
|
||||
Pt
|
||||
|
||||
@@ -1,4 +1,18 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"aa" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"ab" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -13,6 +27,76 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/engine/engineering)
|
||||
"ad" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"ae" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/item/tank/internals/plasma,
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"af" = (
|
||||
/obj/effect/decal/cleanable/oil,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"ag" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"ah" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"at" = (
|
||||
/obj/structure/closet/crate/bin,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -178,21 +262,6 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/engineering)
|
||||
"df" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/decal/cleanable/oil,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"dl" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-4"
|
||||
@@ -600,21 +669,6 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/engineering)
|
||||
"nW" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/item/tank/internals/plasma,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"ou" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/orange/visible{
|
||||
dir = 4
|
||||
@@ -636,20 +690,6 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/engineering)
|
||||
"px" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"pA" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/general/visible{
|
||||
dir = 4
|
||||
@@ -737,19 +777,6 @@
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/supermatter)
|
||||
"re" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"rt" = (
|
||||
/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
|
||||
dir = 4
|
||||
@@ -1091,19 +1118,6 @@
|
||||
/obj/machinery/meter,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/engine/engineering)
|
||||
"Cn" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"CH" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/engineering/glass{
|
||||
@@ -1571,20 +1585,6 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/engineering)
|
||||
"Nw" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"Nx" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
@@ -2385,9 +2385,9 @@ VP
|
||||
EX
|
||||
Vg
|
||||
KX
|
||||
px
|
||||
nW
|
||||
Cn
|
||||
aa
|
||||
ae
|
||||
ag
|
||||
fj
|
||||
xB
|
||||
WI
|
||||
@@ -2609,9 +2609,9 @@ Ws
|
||||
Pa
|
||||
wz
|
||||
fj
|
||||
Nw
|
||||
df
|
||||
re
|
||||
ad
|
||||
af
|
||||
ah
|
||||
KX
|
||||
ni
|
||||
lw
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"aa" = (
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/supermatter)
|
||||
"ab" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -1805,13 +1812,6 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/engine/engineering)
|
||||
"Vz" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/supermatter)
|
||||
"VP" = (
|
||||
/obj/machinery/meter,
|
||||
/obj/machinery/atmospherics/pipe/simple/green/visible{
|
||||
@@ -2320,7 +2320,7 @@ Vg
|
||||
KX
|
||||
px
|
||||
nW
|
||||
Vz
|
||||
aa
|
||||
cN
|
||||
xB
|
||||
WI
|
||||
@@ -2348,7 +2348,7 @@ lQ
|
||||
KX
|
||||
RA
|
||||
tE
|
||||
Vz
|
||||
aa
|
||||
cN
|
||||
Xy
|
||||
Ml
|
||||
@@ -2376,7 +2376,7 @@ uz
|
||||
RA
|
||||
ti
|
||||
YY
|
||||
Vz
|
||||
aa
|
||||
cN
|
||||
JK
|
||||
WT
|
||||
@@ -2488,7 +2488,7 @@ RA
|
||||
Wf
|
||||
mW
|
||||
bq
|
||||
Vz
|
||||
aa
|
||||
cN
|
||||
JK
|
||||
WT
|
||||
@@ -2516,7 +2516,7 @@ wz
|
||||
fj
|
||||
RA
|
||||
cY
|
||||
Vz
|
||||
aa
|
||||
cN
|
||||
vO
|
||||
Np
|
||||
@@ -2544,7 +2544,7 @@ Ey
|
||||
fj
|
||||
Cn
|
||||
df
|
||||
Vz
|
||||
aa
|
||||
cN
|
||||
JK
|
||||
lw
|
||||
|
||||
@@ -1,4 +1,18 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"aa" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"ab" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -13,6 +27,76 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/engine/engineering)
|
||||
"ad" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"ae" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/item/tank/internals/plasma,
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"af" = (
|
||||
/obj/effect/decal/cleanable/oil,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"ag" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"ah" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"at" = (
|
||||
/obj/structure/closet/crate/bin,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -178,21 +262,6 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/engineering)
|
||||
"df" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/decal/cleanable/oil,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"dl" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-4"
|
||||
@@ -591,21 +660,6 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/engineering)
|
||||
"nW" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/item/tank/internals/plasma,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"ou" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/orange/visible{
|
||||
dir = 4
|
||||
@@ -627,20 +681,6 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/engineering)
|
||||
"px" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"pA" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/general/visible{
|
||||
dir = 4
|
||||
@@ -728,19 +768,6 @@
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/supermatter)
|
||||
"re" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"rt" = (
|
||||
/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
|
||||
dir = 4
|
||||
@@ -1065,19 +1092,6 @@
|
||||
/obj/machinery/meter,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/engine/engineering)
|
||||
"Cn" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"CH" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/engineering/glass{
|
||||
@@ -1546,20 +1560,6 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/engineering)
|
||||
"Nw" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"Nx" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
@@ -2335,9 +2335,9 @@ VP
|
||||
EX
|
||||
Vg
|
||||
KX
|
||||
px
|
||||
nW
|
||||
Cn
|
||||
aa
|
||||
ae
|
||||
ag
|
||||
fj
|
||||
xB
|
||||
WI
|
||||
@@ -2559,9 +2559,9 @@ Ws
|
||||
Pa
|
||||
wz
|
||||
fj
|
||||
Nw
|
||||
df
|
||||
re
|
||||
ad
|
||||
af
|
||||
ah
|
||||
KX
|
||||
ni
|
||||
lw
|
||||
|
||||
@@ -1,4 +1,18 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"aa" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"ab" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -13,6 +27,76 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/engine/engineering)
|
||||
"ad" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"ae" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/item/tank/internals/plasma,
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"af" = (
|
||||
/obj/effect/decal/cleanable/oil,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"ag" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"ah" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"at" = (
|
||||
/obj/structure/closet/crate/bin,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -190,21 +274,6 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/engineering)
|
||||
"df" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/decal/cleanable/oil,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"dl" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-4"
|
||||
@@ -619,21 +688,6 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/engineering)
|
||||
"nW" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/item/tank/internals/plasma,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"ou" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/orange/visible{
|
||||
dir = 4
|
||||
@@ -655,20 +709,6 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/engineering)
|
||||
"px" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"pA" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/general/visible{
|
||||
dir = 4
|
||||
@@ -770,19 +810,6 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/supermatter)
|
||||
"re" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"rt" = (
|
||||
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
|
||||
dir = 1
|
||||
@@ -1127,19 +1154,6 @@
|
||||
/obj/machinery/meter,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/engine/engineering)
|
||||
"Cn" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"CH" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/engineering/glass{
|
||||
@@ -1605,20 +1619,6 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/engineering)
|
||||
"Nw" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"Nx" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 9
|
||||
@@ -2384,11 +2384,11 @@ bW
|
||||
VP
|
||||
rt
|
||||
Vg
|
||||
px
|
||||
px
|
||||
nW
|
||||
Cn
|
||||
Cn
|
||||
aa
|
||||
aa
|
||||
ae
|
||||
ag
|
||||
ag
|
||||
xB
|
||||
WI
|
||||
IE
|
||||
@@ -2608,12 +2608,12 @@ hy
|
||||
js
|
||||
Pa
|
||||
xB
|
||||
Nw
|
||||
Nw
|
||||
df
|
||||
re
|
||||
re
|
||||
Vg
|
||||
ad
|
||||
ad
|
||||
af
|
||||
ah
|
||||
ah
|
||||
vO
|
||||
lw
|
||||
bH
|
||||
JV
|
||||
|
||||
@@ -1,4 +1,67 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"aa" = (
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"ab" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"ac" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"ad" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"ae" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"af" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"aT" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/button/door{
|
||||
@@ -348,23 +411,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"wt" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"xg" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"xx" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
@@ -478,19 +524,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"Bh" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"Bj" = (
|
||||
/obj/structure/lattice/catwalk,
|
||||
/obj/structure/cable{
|
||||
@@ -605,16 +638,6 @@
|
||||
/obj/item/clothing/gloves/color/yellow,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"HW" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"In" = (
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
|
||||
/obj/machinery/door/airlock/external{
|
||||
@@ -645,16 +668,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"JC" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"JZ" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/orange/visible{
|
||||
dir = 4
|
||||
@@ -968,19 +981,6 @@
|
||||
/obj/structure/lattice,
|
||||
/turf/open/space/basic,
|
||||
/area/space/nearstation)
|
||||
"YY" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"Zb" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 10
|
||||
@@ -1318,7 +1318,7 @@ xJ
|
||||
gf
|
||||
fh
|
||||
dN
|
||||
YY
|
||||
ab
|
||||
MD
|
||||
Ch
|
||||
Pt
|
||||
@@ -1346,7 +1346,7 @@ LO
|
||||
Eu
|
||||
Pg
|
||||
cP
|
||||
Bh
|
||||
ac
|
||||
tv
|
||||
rj
|
||||
Pt
|
||||
@@ -1374,7 +1374,7 @@ NS
|
||||
xx
|
||||
fh
|
||||
zW
|
||||
Bh
|
||||
ac
|
||||
tv
|
||||
rj
|
||||
Pt
|
||||
@@ -1402,7 +1402,7 @@ yo
|
||||
me
|
||||
aT
|
||||
Aw
|
||||
JC
|
||||
ad
|
||||
WI
|
||||
rj
|
||||
Og
|
||||
@@ -1429,7 +1429,7 @@ MJ
|
||||
jH
|
||||
FK
|
||||
Ch
|
||||
wt
|
||||
aa
|
||||
tE
|
||||
rj
|
||||
rj
|
||||
@@ -1482,7 +1482,7 @@ dz
|
||||
MJ
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
wt
|
||||
aa
|
||||
Zz
|
||||
Wf
|
||||
Ox
|
||||
@@ -1538,7 +1538,7 @@ MJ
|
||||
MJ
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
wt
|
||||
aa
|
||||
eJ
|
||||
Zx
|
||||
nW
|
||||
@@ -1597,7 +1597,7 @@ MJ
|
||||
jH
|
||||
Nz
|
||||
Ch
|
||||
wt
|
||||
aa
|
||||
tE
|
||||
rj
|
||||
rj
|
||||
@@ -1626,7 +1626,7 @@ AF
|
||||
WX
|
||||
HQ
|
||||
Aw
|
||||
JC
|
||||
ad
|
||||
WI
|
||||
rj
|
||||
Og
|
||||
@@ -1654,7 +1654,7 @@ fh
|
||||
kh
|
||||
fh
|
||||
fh
|
||||
Bh
|
||||
ac
|
||||
tv
|
||||
rj
|
||||
Pt
|
||||
@@ -1682,7 +1682,7 @@ fh
|
||||
kh
|
||||
uG
|
||||
cP
|
||||
xg
|
||||
ae
|
||||
tv
|
||||
rj
|
||||
Pt
|
||||
@@ -1710,7 +1710,7 @@ eA
|
||||
FY
|
||||
mB
|
||||
Rp
|
||||
HW
|
||||
af
|
||||
Mi
|
||||
Ch
|
||||
Pt
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -124,6 +124,33 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/crew_quarters/abandoned_gambling_den)
|
||||
"aaq" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"aar" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"aas" = (
|
||||
/obj/docking_port/stationary/random{
|
||||
id = "pod_lavaland1";
|
||||
@@ -143,10 +170,265 @@
|
||||
/obj/effect/landmark/xeno_spawn,
|
||||
/turf/open/space,
|
||||
/area/solar/starboard/fore)
|
||||
"aav" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/decal/cleanable/oil,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"aaw" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"aax" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engpa";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aay" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engpa";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aaz" = (
|
||||
/obj/effect/decal/cleanable/oil,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-4"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-4"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engpa";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aaA" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-8"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engpa";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aaB" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engpa";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"aaC" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engpa";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"aaD" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-4"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-4"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engpa";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aaE" = (
|
||||
/obj/structure/lattice/catwalk,
|
||||
/turf/open/space,
|
||||
/area/solar/starboard/fore)
|
||||
"aaF" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/atmospherics_engine)
|
||||
"aaG" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "0-2"
|
||||
},
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "2-4"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/atmospherics_engine)
|
||||
"aaH" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/atmospherics_engine)
|
||||
"aaI" = (
|
||||
/obj/structure/dresser,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/structure/sign/poster/contraband/scum{
|
||||
pixel_x = 32
|
||||
},
|
||||
/turf/open/floor/plasteel/cafeteria,
|
||||
/area/maintenance/port/fore)
|
||||
"aaJ" = (
|
||||
/obj/item/twohanded/required/kirbyplants/random,
|
||||
/obj/effect/turf_decal/tile/red,
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/sign/poster/official/nt_storm_officer{
|
||||
pixel_y = -32
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/main)
|
||||
"aaK" = (
|
||||
/obj/machinery/flasher/portable,
|
||||
/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/structure/sign/poster/official/nt_storm{
|
||||
pixel_y = 32
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/security/armory)
|
||||
"aaL" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/gun/energy/ionrifle,
|
||||
/obj/item/clothing/suit/armor/laserproof,
|
||||
/obj/item/gun/energy/temperature/security,
|
||||
/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/structure/sign/poster/official/ion_rifle{
|
||||
pixel_x = 32
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/security/armory)
|
||||
"aaM" = (
|
||||
/obj/machinery/vending/wardrobe/medi_wardrobe,
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/sign/poster/official/medical_green_cross{
|
||||
pixel_y = 32
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/medical/storage)
|
||||
"aaN" = (
|
||||
/obj/structure/bed/roller,
|
||||
/obj/machinery/iv_drip,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/sign/poster/official/medical_green_cross{
|
||||
pixel_y = 32
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"aaO" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
@@ -154,6 +436,30 @@
|
||||
"aaP" = (
|
||||
/turf/closed/wall/mineral/plastitanium,
|
||||
/area/hallway/secondary/entry)
|
||||
"aaQ" = (
|
||||
/obj/structure/sign/poster/official/medical_green_cross,
|
||||
/turf/closed/wall,
|
||||
/area/medical/medbay/central)
|
||||
"aaR" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/assembly/igniter,
|
||||
/obj/item/assembly/igniter,
|
||||
/obj/item/assembly/timer{
|
||||
pixel_x = 3;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/sign/poster/contraband/scum{
|
||||
pixel_x = 32
|
||||
},
|
||||
/obj/structure/sign/poster/contraband/scum{
|
||||
pixel_x = 32
|
||||
},
|
||||
/obj/structure/sign/poster/contraband/scum{
|
||||
pixel_x = 32
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/crew_quarters/abandoned_gambling_den)
|
||||
"aaS" = (
|
||||
/turf/closed/wall/mineral/plastitanium,
|
||||
/area/construction/mining/aux_base)
|
||||
@@ -9068,13 +9374,6 @@
|
||||
/obj/effect/turf_decal/bot,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/atmospherics_engine)
|
||||
"avk" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/atmospherics_engine)
|
||||
"avl" = (
|
||||
/obj/structure/lattice/catwalk,
|
||||
/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{
|
||||
@@ -10232,20 +10531,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/atmospherics_engine)
|
||||
"axv" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"axw" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
@@ -10303,19 +10588,6 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/supermatter)
|
||||
"axD" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"axE" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
@@ -10427,12 +10699,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/port/fore)
|
||||
"axN" = (
|
||||
/obj/structure/dresser,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/turf/open/floor/plasteel/cafeteria,
|
||||
/area/maintenance/port/fore)
|
||||
"axO" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/camera,
|
||||
@@ -10979,20 +11245,6 @@
|
||||
},
|
||||
/turf/open/floor/circuit/green,
|
||||
/area/engine/supermatter)
|
||||
"ayM" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/decal/cleanable/oil,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"ayN" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
@@ -11587,19 +11839,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/atmospherics_engine)
|
||||
"azS" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"azT" = (
|
||||
/obj/machinery/power/rad_collector/anchored,
|
||||
/obj/machinery/atmospherics/pipe/manifold/general/visible{
|
||||
@@ -16677,20 +16916,6 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/engine/atmospherics_engine)
|
||||
"aID" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "0-2"
|
||||
},
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "2-4"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/atmospherics_engine)
|
||||
"aIE" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/structure/cable/white{
|
||||
@@ -16710,14 +16935,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/atmospherics_engine)
|
||||
"aIF" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/atmospherics_engine)
|
||||
"aIG" = (
|
||||
/obj/machinery/portable_atmospherics/canister/toxins,
|
||||
/obj/effect/turf_decal/bot,
|
||||
@@ -41291,14 +41508,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/main)
|
||||
"bwj" = (
|
||||
/obj/item/twohanded/required/kirbyplants/random,
|
||||
/obj/effect/turf_decal/tile/red,
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/main)
|
||||
"bwk" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-2"
|
||||
@@ -60266,23 +60475,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ai_monitored/security/armory)
|
||||
"bXR" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/gun/energy/ionrifle,
|
||||
/obj/item/clothing/suit/armor/laserproof,
|
||||
/obj/item/gun/energy/temperature/security,
|
||||
/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/ai_monitored/security/armory)
|
||||
"bXS" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
@@ -66492,16 +66684,6 @@
|
||||
/obj/effect/turf_decal/stripes/line,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"chv" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engpa";
|
||||
name = "Engineering Chamber Shutters"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"chw" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
@@ -67523,19 +67705,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"cjf" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engpa";
|
||||
name = "Engineering Chamber Shutters"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"cjg" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -68306,26 +68475,6 @@
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/space/nearstation)
|
||||
"ckA" = (
|
||||
/obj/effect/decal/cleanable/oil,
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engpa";
|
||||
name = "Engineering Chamber Shutters"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-4"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-4"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"ckB" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
@@ -69094,19 +69243,6 @@
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/space/nearstation)
|
||||
"clV" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engpa";
|
||||
name = "Engineering Chamber Shutters"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-8"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"clW" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/crowbar,
|
||||
@@ -70125,20 +70261,6 @@
|
||||
/obj/machinery/status_display/evac,
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/engine/engineering)
|
||||
"cnE" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engpa";
|
||||
name = "Engineering Chamber Shutters"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"cnF" = (
|
||||
/obj/machinery/requests_console{
|
||||
department = "Chapel Office";
|
||||
@@ -71572,22 +71694,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"cqw" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engpa";
|
||||
name = "Engineering Chamber Shutters"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"cqx" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
@@ -76839,25 +76945,6 @@
|
||||
/obj/effect/turf_decal/stripes/corner,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/space/nearstation)
|
||||
"czs" = (
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engpa";
|
||||
name = "Engineering Chamber Shutters"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-4"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-4"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"czt" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-8"
|
||||
@@ -85482,14 +85569,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/medical/storage)
|
||||
"cNO" = (
|
||||
/obj/machinery/vending/wardrobe/medi_wardrobe,
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/medical/storage)
|
||||
"cNP" = (
|
||||
/obj/machinery/disposal/bin,
|
||||
/obj/structure/disposalpipe/trunk,
|
||||
@@ -87271,17 +87350,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"cRa" = (
|
||||
/obj/structure/bed/roller,
|
||||
/obj/machinery/iv_drip,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"cRb" = (
|
||||
/obj/structure/bed/roller,
|
||||
/obj/machinery/iv_drip,
|
||||
@@ -103990,17 +104058,6 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/turf/open/floor/wood,
|
||||
/area/crew_quarters/abandoned_gambling_den)
|
||||
"duk" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/assembly/igniter,
|
||||
/obj/item/assembly/igniter,
|
||||
/obj/item/assembly/timer{
|
||||
pixel_x = 3;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating,
|
||||
/area/crew_quarters/abandoned_gambling_den)
|
||||
"dul" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/stack/packageWrap,
|
||||
@@ -151484,10 +151541,10 @@ car
|
||||
cbV
|
||||
cdJ
|
||||
car
|
||||
chv
|
||||
cjf
|
||||
ckA
|
||||
clV
|
||||
aax
|
||||
aay
|
||||
aaz
|
||||
aaA
|
||||
cnC
|
||||
cpa
|
||||
cqs
|
||||
@@ -151495,10 +151552,10 @@ cqr
|
||||
ctq
|
||||
cuR
|
||||
cnC
|
||||
cjf
|
||||
czs
|
||||
clV
|
||||
chv
|
||||
aay
|
||||
aaD
|
||||
aaA
|
||||
aax
|
||||
car
|
||||
cFO
|
||||
cbV
|
||||
@@ -152002,13 +152059,13 @@ chx
|
||||
cjh
|
||||
ckC
|
||||
clX
|
||||
cnE
|
||||
aaB
|
||||
cpc
|
||||
cqu
|
||||
cqr
|
||||
cts
|
||||
cuT
|
||||
cnE
|
||||
aaB
|
||||
clX
|
||||
czt
|
||||
cAL
|
||||
@@ -152040,7 +152097,7 @@ dof
|
||||
dmi
|
||||
dry
|
||||
dta
|
||||
duk
|
||||
aaR
|
||||
dvY
|
||||
dod
|
||||
dmi
|
||||
@@ -152458,9 +152515,9 @@ asq
|
||||
atO
|
||||
auX
|
||||
awf
|
||||
axv
|
||||
axv
|
||||
azS
|
||||
aaq
|
||||
aaq
|
||||
aaw
|
||||
awi
|
||||
aCk
|
||||
aDn
|
||||
@@ -152518,9 +152575,9 @@ cjn
|
||||
clZ
|
||||
cnF
|
||||
car
|
||||
cqw
|
||||
aaC
|
||||
car
|
||||
cqw
|
||||
aaC
|
||||
car
|
||||
car
|
||||
cxF
|
||||
@@ -154514,16 +154571,16 @@ asy
|
||||
atW
|
||||
avf
|
||||
awi
|
||||
axD
|
||||
ayM
|
||||
axD
|
||||
aar
|
||||
aav
|
||||
aar
|
||||
awf
|
||||
aCp
|
||||
aDs
|
||||
aEv
|
||||
aFE
|
||||
aHh
|
||||
aID
|
||||
aaG
|
||||
aKb
|
||||
aLv
|
||||
aMG
|
||||
@@ -155037,7 +155094,7 @@ aDt
|
||||
aEx
|
||||
aFG
|
||||
aHj
|
||||
aIF
|
||||
aaH
|
||||
aKd
|
||||
aLx
|
||||
aMG
|
||||
@@ -155797,8 +155854,8 @@ aad
|
||||
alT
|
||||
alT
|
||||
alT
|
||||
avk
|
||||
avk
|
||||
aaF
|
||||
aaF
|
||||
alT
|
||||
alT
|
||||
azZ
|
||||
@@ -159140,7 +159197,7 @@ asL
|
||||
aue
|
||||
avt
|
||||
aws
|
||||
axN
|
||||
aaI
|
||||
ayY
|
||||
aAc
|
||||
aBo
|
||||
@@ -170534,7 +170591,7 @@ cNz
|
||||
dbm
|
||||
dcX
|
||||
dev
|
||||
cPy
|
||||
aaQ
|
||||
dhe
|
||||
diz
|
||||
dkp
|
||||
@@ -171296,7 +171353,7 @@ cKE
|
||||
bsE
|
||||
cNE
|
||||
cPy
|
||||
cRa
|
||||
aaN
|
||||
cSK
|
||||
cUE
|
||||
cQX
|
||||
@@ -174892,7 +174949,7 @@ cIc
|
||||
cAm
|
||||
cKO
|
||||
cMm
|
||||
cNO
|
||||
aaM
|
||||
vEq
|
||||
cRi
|
||||
cSV
|
||||
@@ -180771,7 +180828,7 @@ bFP
|
||||
bHI
|
||||
bJC
|
||||
bLs
|
||||
bNp
|
||||
aaK
|
||||
bNp
|
||||
bNp
|
||||
bTi
|
||||
@@ -181018,7 +181075,7 @@ bpp
|
||||
bru
|
||||
btt
|
||||
buQ
|
||||
bwj
|
||||
aaJ
|
||||
bhd
|
||||
byO
|
||||
bAs
|
||||
@@ -181804,7 +181861,7 @@ bPA
|
||||
bRw
|
||||
bTk
|
||||
bVr
|
||||
bXR
|
||||
aaL
|
||||
bZY
|
||||
cbL
|
||||
bLs
|
||||
|
||||
@@ -53,6 +53,17 @@
|
||||
"aaf" = (
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/security/brig)
|
||||
"aag" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/turf_decal/caution/stand_clear,
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/engine/supermatter)
|
||||
"aah" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
@@ -72321,17 +72332,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/showroomfloor,
|
||||
/area/ai_monitored/security/armory)
|
||||
"cin" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/turf_decal/caution/stand_clear,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/engine/supermatter)
|
||||
"cio" = (
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 4
|
||||
@@ -122951,9 +122951,9 @@ coc
|
||||
azE
|
||||
brn
|
||||
aLF
|
||||
cin
|
||||
cin
|
||||
cin
|
||||
aag
|
||||
aag
|
||||
aag
|
||||
aLF
|
||||
cut
|
||||
cuO
|
||||
@@ -125007,9 +125007,9 @@ cos
|
||||
aAd
|
||||
bFh
|
||||
aLF
|
||||
cin
|
||||
cin
|
||||
cin
|
||||
aag
|
||||
aag
|
||||
aag
|
||||
aLF
|
||||
cuA
|
||||
cuW
|
||||
|
||||
@@ -2,10 +2,77 @@
|
||||
"aaa" = (
|
||||
/turf/open/space/basic,
|
||||
/area/space)
|
||||
"aab" = (
|
||||
/obj/item/radio/intercom{
|
||||
name = "Station Intercom (General)";
|
||||
pixel_y = 24
|
||||
},
|
||||
/obj/structure/rack,
|
||||
/obj/item/grenade/barrier{
|
||||
pixel_x = -3;
|
||||
pixel_y = 1
|
||||
},
|
||||
/obj/item/grenade/barrier,
|
||||
/obj/item/grenade/barrier{
|
||||
pixel_x = 3;
|
||||
pixel_y = -1
|
||||
},
|
||||
/obj/item/grenade/barrier{
|
||||
pixel_x = 6;
|
||||
pixel_y = -2
|
||||
},
|
||||
/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/structure/sign/poster/official/nt_storm_officer{
|
||||
pixel_x = -32
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/security/armory)
|
||||
"aac" = (
|
||||
/obj/effect/landmark/carpspawn,
|
||||
/turf/open/space,
|
||||
/area/space)
|
||||
"aad" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/clothing/suit/armor/bulletproof,
|
||||
/obj/item/clothing/head/helmet/alt,
|
||||
/obj/item/clothing/suit/armor/bulletproof,
|
||||
/obj/item/clothing/head/helmet/alt,
|
||||
/obj/item/clothing/suit/armor/bulletproof,
|
||||
/obj/item/clothing/head/helmet/alt,
|
||||
/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/structure/sign/poster/official/nt_storm{
|
||||
pixel_x = 32
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/security/armory)
|
||||
"aae" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"aaf" = (
|
||||
/obj/structure/lattice,
|
||||
/turf/open/space,
|
||||
@@ -246,6 +313,19 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/security/prison)
|
||||
"aaM" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-8"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"aaN" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-2"
|
||||
@@ -288,6 +368,58 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/prison)
|
||||
"aaU" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/item/crowbar,
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"aaV" = (
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "1-8"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 10
|
||||
},
|
||||
/obj/effect/landmark/start/station_engineer,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"aaW" = (
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/window{
|
||||
id = "armory";
|
||||
name = "Armoury Shutters"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/security/armory)
|
||||
"aaX" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 9
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/landmark/start/station_engineer,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"aaY" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
@@ -322,6 +454,20 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/open/floor/plating,
|
||||
/area/security/prison)
|
||||
"abd" = (
|
||||
/obj/machinery/vending/cola/random,
|
||||
/obj/structure/sign/poster/official/pda_ad600{
|
||||
pixel_x = -32
|
||||
},
|
||||
/obj/structure/sign/poster/official/pda_ad800{
|
||||
pixel_x = -32;
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/structure/sign/poster/official/pda_ad{
|
||||
pixel_y = 32
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/hallway/secondary/command)
|
||||
"abe" = (
|
||||
/turf/closed/wall,
|
||||
/area/security/prison)
|
||||
@@ -376,6 +522,14 @@
|
||||
/obj/item/canvas/twentythreeXtwentythree,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/prison)
|
||||
"abk" = (
|
||||
/obj/structure/kitchenspike_frame,
|
||||
/obj/effect/decal/cleanable/blood/gibs/old,
|
||||
/obj/structure/sign/poster/contraband/scum{
|
||||
pixel_y = -32
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/aft)
|
||||
"abl" = (
|
||||
/obj/structure/table,
|
||||
/obj/machinery/computer/libraryconsole/bookmanagement,
|
||||
@@ -445,6 +599,25 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/cafeteria,
|
||||
/area/security/prison)
|
||||
"abt" = (
|
||||
/obj/machinery/vending/hydroseeds{
|
||||
slogan_delay = 700
|
||||
},
|
||||
/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/structure/sign/poster/official/hydro_ad{
|
||||
pixel_x = -32
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/hallway/primary/central)
|
||||
"abu" = (
|
||||
/obj/docking_port/stationary{
|
||||
dwidth = 1;
|
||||
@@ -521,6 +694,16 @@
|
||||
/obj/structure/chair/stool,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/prison)
|
||||
"abE" = (
|
||||
/obj/machinery/hydroponics/constructable,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/sign/poster/official/hydro_ad{
|
||||
pixel_y = -32
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hydroponics)
|
||||
"abF" = (
|
||||
/obj/structure/table,
|
||||
/obj/structure/cable/yellow{
|
||||
@@ -542,6 +725,30 @@
|
||||
/obj/item/toy/cards/deck,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/prison)
|
||||
"abH" = (
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/sign/poster/official/medical_green_cross{
|
||||
pixel_y = 32
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"abI" = (
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "2-4"
|
||||
@@ -723,6 +930,16 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/prison)
|
||||
"acd" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/sign/poster/official/medical_green_cross{
|
||||
pixel_x = -32
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/aft)
|
||||
"ace" = (
|
||||
/obj/machinery/vending/sustenance{
|
||||
desc = "A vending machine normally reserved for work camps.";
|
||||
@@ -1388,6 +1605,22 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/crew_quarters/fitness/recreation)
|
||||
"adk" = (
|
||||
/obj/structure/sign/poster/contraband/scum{
|
||||
pixel_y = -32
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/fore)
|
||||
"adl" = (
|
||||
/obj/structure/closet/crate{
|
||||
icon_state = "crateopen"
|
||||
},
|
||||
/obj/item/storage/box/donkpockets,
|
||||
/obj/structure/sign/poster/contraband/scum{
|
||||
pixel_y = -32
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/fore)
|
||||
"adm" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/flashlight/lamp,
|
||||
@@ -1568,6 +1801,35 @@
|
||||
},
|
||||
/turf/open/space,
|
||||
/area/space/nearstation)
|
||||
"adH" = (
|
||||
/obj/structure/closet/wardrobe/grey,
|
||||
/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/structure/sign/poster/official/fashion{
|
||||
pixel_y = -32
|
||||
},
|
||||
/obj/structure/sign/poster/official/fashion{
|
||||
pixel_y = -32
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/crew_quarters/locker)
|
||||
"adI" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/hatchet,
|
||||
/obj/item/reagent_containers/blood/random,
|
||||
/obj/structure/sign/poster/contraband/scum{
|
||||
pixel_y = -32
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/starboard/aft)
|
||||
"adJ" = (
|
||||
/obj/item/radio/intercom{
|
||||
name = "Station Intercom (General)";
|
||||
@@ -2918,37 +3180,6 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/security/armory)
|
||||
"afZ" = (
|
||||
/obj/item/radio/intercom{
|
||||
name = "Station Intercom (General)";
|
||||
pixel_y = 24
|
||||
},
|
||||
/obj/structure/rack,
|
||||
/obj/item/grenade/barrier{
|
||||
pixel_x = -3;
|
||||
pixel_y = 1
|
||||
},
|
||||
/obj/item/grenade/barrier,
|
||||
/obj/item/grenade/barrier{
|
||||
pixel_x = 3;
|
||||
pixel_y = -1
|
||||
},
|
||||
/obj/item/grenade/barrier{
|
||||
pixel_x = 6;
|
||||
pixel_y = -2
|
||||
},
|
||||
/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/ai_monitored/security/armory)
|
||||
"aga" = (
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
@@ -3427,26 +3658,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/security/prison)
|
||||
"agQ" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/clothing/suit/armor/bulletproof,
|
||||
/obj/item/clothing/head/helmet/alt,
|
||||
/obj/item/clothing/suit/armor/bulletproof,
|
||||
/obj/item/clothing/head/helmet/alt,
|
||||
/obj/item/clothing/suit/armor/bulletproof,
|
||||
/obj/item/clothing/head/helmet/alt,
|
||||
/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/ai_monitored/security/armory)
|
||||
"agR" = (
|
||||
/obj/machinery/airalarm{
|
||||
dir = 4;
|
||||
@@ -4781,23 +4992,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/security/warden)
|
||||
"ajs" = (
|
||||
/obj/machinery/door/poddoor/shutters{
|
||||
id = "armory";
|
||||
name = "armory shutters"
|
||||
},
|
||||
/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/ai_monitored/security/armory)
|
||||
"ajt" = (
|
||||
/obj/structure/closet{
|
||||
name = "Evidence Closet 5"
|
||||
@@ -11663,13 +11857,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/security/brig)
|
||||
"awA" = (
|
||||
/obj/structure/closet/crate{
|
||||
icon_state = "crateopen"
|
||||
},
|
||||
/obj/item/storage/box/donkpockets,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/fore)
|
||||
"awB" = (
|
||||
/obj/structure/reagent_dispensers/watertank,
|
||||
/obj/item/storage/box/lights/mixed,
|
||||
@@ -16876,11 +17063,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"aGW" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/effect/landmark/start/station_engineer,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"aGX" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
dir = 8
|
||||
@@ -21786,20 +21968,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"aRq" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/landmark/start/station_engineer,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-8"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"aRr" = (
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "1-2"
|
||||
@@ -22834,15 +23002,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/engine/engineering)
|
||||
"aTF" = (
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "1-8"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 10
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"aTG" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 6
|
||||
@@ -23483,20 +23642,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/crew_quarters/locker)
|
||||
"aUO" = (
|
||||
/obj/structure/closet/wardrobe/grey,
|
||||
/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/crew_quarters/locker)
|
||||
"aUP" = (
|
||||
/obj/structure/closet/wardrobe/white,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
@@ -26034,19 +26179,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"aZJ" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 9
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"aZK" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
|
||||
/obj/machinery/shower{
|
||||
@@ -39514,10 +39646,6 @@
|
||||
"bzJ" = (
|
||||
/turf/closed/wall,
|
||||
/area/hallway/secondary/command)
|
||||
"bzK" = (
|
||||
/obj/machinery/vending/cola/random,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/hallway/secondary/command)
|
||||
"bzL" = (
|
||||
/obj/effect/turf_decal/bot,
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -53582,22 +53710,6 @@
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/crew_quarters/theatre)
|
||||
"ccp" = (
|
||||
/obj/machinery/vending/hydroseeds{
|
||||
slogan_delay = 700
|
||||
},
|
||||
/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/hallway/primary/central)
|
||||
"ccq" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/book/manual/hydroponics_pod_people,
|
||||
@@ -56716,27 +56828,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/sleeper)
|
||||
"cik" = (
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"cil" = (
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "2-8"
|
||||
@@ -61846,12 +61937,6 @@
|
||||
/obj/item/gun/syringe/dart,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/starboard/aft)
|
||||
"csb" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/hatchet,
|
||||
/obj/item/reagent_containers/blood/random,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/starboard/aft)
|
||||
"csc" = (
|
||||
/obj/machinery/iv_drip,
|
||||
/obj/item/roller,
|
||||
@@ -80107,27 +80192,6 @@
|
||||
/obj/structure/lattice/catwalk,
|
||||
/turf/open/space,
|
||||
/area/science/xenobiology)
|
||||
"djt" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"djx" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/item/crowbar,
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"djz" = (
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
|
||||
/obj/machinery/door/airlock/external{
|
||||
@@ -81817,11 +81881,6 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/open/floor/wood,
|
||||
/area/security/vacantoffice)
|
||||
"hvt" = (
|
||||
/obj/structure/kitchenspike_frame,
|
||||
/obj/effect/decal/cleanable/blood/gibs/old,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/aft)
|
||||
"hyP" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Escape Pod Two"
|
||||
@@ -99850,7 +99909,7 @@ dux
|
||||
iLj
|
||||
dvt
|
||||
bXE
|
||||
hvt
|
||||
abk
|
||||
dux
|
||||
dux
|
||||
dux
|
||||
@@ -105768,7 +105827,7 @@ cdr
|
||||
cew
|
||||
cfL
|
||||
bXK
|
||||
cik
|
||||
abH
|
||||
cjK
|
||||
clj
|
||||
cmr
|
||||
@@ -106515,7 +106574,7 @@ bsM
|
||||
bun
|
||||
bwi
|
||||
bkz
|
||||
bzK
|
||||
abd
|
||||
bBz
|
||||
bDa
|
||||
bEE
|
||||
@@ -110319,7 +110378,7 @@ aaa
|
||||
aaf
|
||||
aeq
|
||||
aeq
|
||||
afZ
|
||||
aab
|
||||
agR
|
||||
ahE
|
||||
aiA
|
||||
@@ -110394,7 +110453,7 @@ cdG
|
||||
caq
|
||||
cgb
|
||||
chg
|
||||
chg
|
||||
acd
|
||||
chg
|
||||
clx
|
||||
cmD
|
||||
@@ -111607,7 +111666,7 @@ afX
|
||||
agc
|
||||
dBX
|
||||
agc
|
||||
ajs
|
||||
aaW
|
||||
ajz
|
||||
akI
|
||||
amc
|
||||
@@ -111861,7 +111920,7 @@ aaa
|
||||
aaf
|
||||
aeq
|
||||
aeq
|
||||
agQ
|
||||
aad
|
||||
ahC
|
||||
ahI
|
||||
aeq
|
||||
@@ -115529,7 +115588,7 @@ bWH
|
||||
bYc
|
||||
bZq
|
||||
caG
|
||||
ccp
|
||||
abt
|
||||
bSS
|
||||
ceZ
|
||||
cgo
|
||||
@@ -116750,7 +116809,7 @@ agq
|
||||
agq
|
||||
aje
|
||||
alb
|
||||
aje
|
||||
adk
|
||||
agq
|
||||
aur
|
||||
aqb
|
||||
@@ -117034,7 +117093,7 @@ aOt
|
||||
aQU
|
||||
aSg
|
||||
aTt
|
||||
aUO
|
||||
adH
|
||||
aUM
|
||||
boW
|
||||
aZt
|
||||
@@ -117272,7 +117331,7 @@ ary
|
||||
asR
|
||||
aje
|
||||
auc
|
||||
awA
|
||||
adl
|
||||
axC
|
||||
ayK
|
||||
aAa
|
||||
@@ -117842,7 +117901,7 @@ bWQ
|
||||
soe
|
||||
bWQ
|
||||
caL
|
||||
ccv
|
||||
abE
|
||||
bST
|
||||
csg
|
||||
cgq
|
||||
@@ -121195,7 +121254,7 @@ dwX
|
||||
ciL
|
||||
ciL
|
||||
cou
|
||||
csb
|
||||
adI
|
||||
dvY
|
||||
mjJ
|
||||
krD
|
||||
@@ -123201,7 +123260,7 @@ axY
|
||||
aPY
|
||||
aRn
|
||||
aSt
|
||||
aTF
|
||||
aaV
|
||||
aUY
|
||||
aWA
|
||||
aYp
|
||||
@@ -123962,7 +124021,7 @@ aBK
|
||||
aCS
|
||||
aEo
|
||||
aFw
|
||||
aGW
|
||||
aHY
|
||||
aHY
|
||||
aHY
|
||||
aKB
|
||||
@@ -123970,7 +124029,7 @@ aMd
|
||||
aNr
|
||||
aOP
|
||||
dCw
|
||||
aRq
|
||||
aaM
|
||||
aSw
|
||||
aTI
|
||||
aVb
|
||||
@@ -124233,7 +124292,7 @@ aTJ
|
||||
dfX
|
||||
aWD
|
||||
aVc
|
||||
aZJ
|
||||
aaX
|
||||
bbz
|
||||
bcK
|
||||
bel
|
||||
@@ -126275,7 +126334,7 @@ ddZ
|
||||
ded
|
||||
del
|
||||
des
|
||||
djt
|
||||
aae
|
||||
daY
|
||||
daZ
|
||||
dbb
|
||||
@@ -126283,7 +126342,7 @@ aMk
|
||||
aNv
|
||||
dfk
|
||||
dfq
|
||||
djt
|
||||
aae
|
||||
dfG
|
||||
dfQ
|
||||
dfZ
|
||||
@@ -126532,7 +126591,7 @@ aBQ
|
||||
dee
|
||||
aEr
|
||||
des
|
||||
djt
|
||||
aae
|
||||
daY
|
||||
daZ
|
||||
dbb
|
||||
@@ -126540,7 +126599,7 @@ dfa
|
||||
aNv
|
||||
dfk
|
||||
daY
|
||||
djx
|
||||
aaU
|
||||
dfG
|
||||
cXz
|
||||
aVe
|
||||
@@ -126789,7 +126848,7 @@ aBQ
|
||||
dee
|
||||
aEr
|
||||
aKL
|
||||
djt
|
||||
aae
|
||||
daY
|
||||
deS
|
||||
dbb
|
||||
@@ -126797,7 +126856,7 @@ aMk
|
||||
aNv
|
||||
dfm
|
||||
daY
|
||||
djt
|
||||
aae
|
||||
dbg
|
||||
dfR
|
||||
dga
|
||||
|
||||
@@ -950,6 +950,23 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/bridge)
|
||||
"abn" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"abo" = (
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
@@ -1257,6 +1274,20 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/mixing)
|
||||
"abQ" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "0-2"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 6
|
||||
},
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/gravity_generator)
|
||||
"abR" = (
|
||||
/obj/structure/lattice,
|
||||
/turf/open/space,
|
||||
@@ -1638,6 +1669,54 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/starboard)
|
||||
"acz" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "0-2"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"acA" = (
|
||||
/obj/structure/cable/white,
|
||||
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/gravity_generator)
|
||||
"acB" = (
|
||||
/obj/structure/cable/white,
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"acC" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"acD" = (
|
||||
/obj/item/pickaxe/emergency,
|
||||
/turf/open/floor/plating/asteroid,
|
||||
@@ -2076,6 +2155,33 @@
|
||||
/obj/structure/sign/warning/vacuum,
|
||||
/turf/open/floor/plating,
|
||||
/area/quartermaster/storage)
|
||||
"adr" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"ads" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/decal/cleanable/oil,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"adv" = (
|
||||
/obj/structure/closet/crate{
|
||||
icon_state = "crateopen"
|
||||
@@ -18300,19 +18406,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"aGl" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aGm" = (
|
||||
/obj/structure/sign/warning/radiation,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
@@ -20085,16 +20178,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/gravity_generator)
|
||||
"aJo" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "0-2"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 6
|
||||
},
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/gravity_generator)
|
||||
"aJp" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-2"
|
||||
@@ -20171,16 +20254,6 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/engineering)
|
||||
"aJA" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "0-2"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aJB" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/stack/sheet/metal/fifty,
|
||||
@@ -21472,14 +21545,6 @@
|
||||
/obj/item/clothing/glasses/meson/engine,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/gravity_generator)
|
||||
"aLL" = (
|
||||
/obj/structure/cable/white,
|
||||
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/gravity_generator)
|
||||
"aLM" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-2"
|
||||
@@ -21574,11 +21639,6 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/engineering)
|
||||
"aLX" = (
|
||||
/obj/structure/cable/white,
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aLY" = (
|
||||
/obj/effect/turf_decal/tile/yellow{
|
||||
dir = 1
|
||||
@@ -22553,20 +22613,6 @@
|
||||
/obj/machinery/power/supermatter_crystal/shard/engine,
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/supermatter)
|
||||
"aOb" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/decal/cleanable/oil,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"aOd" = (
|
||||
/obj/machinery/power/apc{
|
||||
areastring = "/area/engine/engineering";
|
||||
@@ -22788,19 +22834,6 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/engineering)
|
||||
"aOB" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"aOC" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/general/visible{
|
||||
dir = 5
|
||||
@@ -22827,19 +22860,6 @@
|
||||
},
|
||||
/turf/open/floor/circuit/green,
|
||||
/area/engine/supermatter)
|
||||
"aOE" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"aOF" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-8"
|
||||
@@ -72989,9 +73009,9 @@ aFq
|
||||
aGf
|
||||
sIA
|
||||
aIe
|
||||
aJo
|
||||
abQ
|
||||
aKx
|
||||
aLL
|
||||
acA
|
||||
aMN
|
||||
aMN
|
||||
sJD
|
||||
@@ -73763,9 +73783,9 @@ aIh
|
||||
aJr
|
||||
aKz
|
||||
aLO
|
||||
aOB
|
||||
aOB
|
||||
aOB
|
||||
acC
|
||||
acC
|
||||
acC
|
||||
aLU
|
||||
aQK
|
||||
aRH
|
||||
@@ -75042,7 +75062,7 @@ kaA
|
||||
aDr
|
||||
aEv
|
||||
aFx
|
||||
aGl
|
||||
abn
|
||||
aHp
|
||||
aIm
|
||||
bxa
|
||||
@@ -75819,9 +75839,9 @@ aIp
|
||||
aJw
|
||||
aKE
|
||||
aLU
|
||||
aOE
|
||||
aOb
|
||||
aOE
|
||||
adr
|
||||
ads
|
||||
adr
|
||||
aLO
|
||||
blK
|
||||
aRP
|
||||
@@ -76587,9 +76607,9 @@ aDv
|
||||
aDv
|
||||
aHv
|
||||
sHV
|
||||
aJA
|
||||
acz
|
||||
aKH
|
||||
aLX
|
||||
acB
|
||||
aEt
|
||||
aEt
|
||||
aOH
|
||||
|
||||
@@ -2,12 +2,267 @@
|
||||
"aaa" = (
|
||||
/turf/open/space/basic,
|
||||
/area/space)
|
||||
"aab" = (
|
||||
/obj/machinery/holopad,
|
||||
/obj/effect/landmark/start/cyborg,
|
||||
/mob/living/simple_animal/bot/secbot/pingsky,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"aac" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aad" = (
|
||||
/obj/effect/spawner/lootdrop/maintenance,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg3"
|
||||
},
|
||||
/area/maintenance/department/science)
|
||||
"aae" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aaf" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aag" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aah" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aai" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aaj" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/orange/visible{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aak" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aal" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/orange/visible{
|
||||
dir = 9
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aam" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aan" = (
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"aao" = (
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"aap" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
|
||||
dir = 9
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aaq" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 5
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aar" = (
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/item/tank/internals/plasma,
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"aas" = (
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/decal/cleanable/oil,
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"aat" = (
|
||||
/obj/structure/closet/wardrobe/green,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/sign/poster/official/fashion{
|
||||
pixel_y = -32
|
||||
},
|
||||
/obj/structure/sign/poster/official/fashion{
|
||||
pixel_y = -32
|
||||
},
|
||||
/turf/open/floor/plasteel/white/corner,
|
||||
/area/crew_quarters/fitness/recreation)
|
||||
"aau" = (
|
||||
/obj/structure/closet/secure_closet/hydroponics,
|
||||
/obj/structure/sign/poster/official/hydro_ad{
|
||||
pixel_y = 32
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hydroponics)
|
||||
"aav" = (
|
||||
/obj/structure/closet,
|
||||
/obj/effect/spawner/lootdrop/maintenance,
|
||||
/obj/structure/sign/poster/contraband/scum{
|
||||
pixel_y = 32
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/cargo)
|
||||
"aaw" = (
|
||||
/obj/structure/sign/poster/official/hydro_ad,
|
||||
/turf/closed/wall,
|
||||
/area/hydroponics)
|
||||
"aax" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/effect/turf_decal/tile/blue,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/sign/poster/official/medical_green_cross{
|
||||
pixel_x = 32
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/zone3)
|
||||
"aay" = (
|
||||
/obj/structure/sign/poster/official/medical_green_cross,
|
||||
/turf/closed/wall,
|
||||
/area/medical/medbay/central)
|
||||
"aaz" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/structure/sign/poster/official/medical_green_cross{
|
||||
pixel_x = 32;
|
||||
pixel_y = -32
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"aaA" = (
|
||||
/obj/structure/sign/poster/contraband/scum{
|
||||
pixel_y = 32
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/science)
|
||||
"aaB" = (
|
||||
/obj/structure/closet/masks,
|
||||
/obj/item/reagent_containers/food/snacks/deadmouse,
|
||||
/obj/structure/sign/poster/contraband/scum{
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/structure/sign/poster/contraband/scum{
|
||||
pixel_y = 32
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/engine)
|
||||
"aaC" = (
|
||||
/obj/structure/sign/poster/contraband/scum{
|
||||
pixel_y = 32
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/department/engine)
|
||||
"abf" = (
|
||||
/obj/structure/bed,
|
||||
/turf/open/floor/plating,
|
||||
@@ -1589,12 +1844,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"afP" = (
|
||||
/obj/machinery/holopad,
|
||||
/mob/living/simple_animal/bot/secbot/pingsky,
|
||||
/obj/effect/landmark/start/cyborg,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"afQ" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
|
||||
dir = 1
|
||||
@@ -11506,13 +11755,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/white/corner,
|
||||
/area/crew_quarters/fitness/recreation)
|
||||
"aBV" = (
|
||||
/obj/structure/closet/wardrobe/green,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/white/corner,
|
||||
/area/crew_quarters/fitness/recreation)
|
||||
"aBW" = (
|
||||
/obj/structure/closet/wardrobe/grey,
|
||||
/obj/machinery/light,
|
||||
@@ -15182,13 +15424,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/cargo)
|
||||
"aKm" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/orange/visible{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"aKn" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
@@ -18463,10 +18698,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hydroponics)
|
||||
"aSD" = (
|
||||
/obj/structure/closet/secure_closet/hydroponics,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hydroponics)
|
||||
"aSE" = (
|
||||
/obj/machinery/airalarm{
|
||||
pixel_y = 24
|
||||
@@ -19833,11 +20064,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/cargo)
|
||||
"aVF" = (
|
||||
/obj/structure/closet,
|
||||
/obj/effect/spawner/lootdrop/maintenance,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/cargo)
|
||||
"aVG" = (
|
||||
/obj/structure/easel,
|
||||
/turf/open/floor/plating,
|
||||
@@ -27844,14 +28070,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/zone3)
|
||||
"boB" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/effect/turf_decal/tile/blue,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/zone3)
|
||||
"boC" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
@@ -31673,13 +31891,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"bwM" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"bwN" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
@@ -36749,11 +36960,6 @@
|
||||
icon_state = "platingdmg3"
|
||||
},
|
||||
/area/maintenance/department/engine)
|
||||
"bGL" = (
|
||||
/obj/structure/closet/masks,
|
||||
/obj/item/reagent_containers/food/snacks/deadmouse,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/engine)
|
||||
"bGM" = (
|
||||
/obj/machinery/vending/cigarette,
|
||||
/turf/open/floor/plating,
|
||||
@@ -46083,13 +46289,6 @@
|
||||
/obj/structure/sign/warning/nosmoking,
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/engine/engineering)
|
||||
"ccd" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"cci" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/light{
|
||||
@@ -47013,17 +47212,6 @@
|
||||
/obj/structure/closet/firecloset,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/engine/engineering)
|
||||
"cfV" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"cfX" = (
|
||||
/obj/machinery/atmospherics/pipe/manifold/orange/visible{
|
||||
dir = 1
|
||||
@@ -47378,23 +47566,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"chw" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 5
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"chA" = (
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"chB" = (
|
||||
/obj/item/seeds/banana,
|
||||
/obj/item/seeds/grass,
|
||||
@@ -54807,17 +54978,6 @@
|
||||
icon_state = "platingdmg3"
|
||||
},
|
||||
/area/maintenance/department/science)
|
||||
"hQy" = (
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/item/tank/internals/plasma,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"hQz" = (
|
||||
/obj/structure/closet/emcloset/anchored,
|
||||
/obj/structure/cable/yellow{
|
||||
@@ -55157,11 +55317,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/engine/engineering)
|
||||
"izm" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"izB" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Escape Pod"
|
||||
@@ -56542,13 +56697,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/engine)
|
||||
"lRX" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/orange/visible{
|
||||
dir = 9
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"lTC" = (
|
||||
/obj/item/shard,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -57810,13 +57958,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"oJr" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"oKa" = (
|
||||
/obj/structure/rack,
|
||||
/obj/effect/spawner/lootdrop/maintenance{
|
||||
@@ -58798,11 +58939,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/engine)
|
||||
"qOS" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"qPB" = (
|
||||
/obj/structure/chair/stool,
|
||||
/obj/machinery/light/small{
|
||||
@@ -59976,13 +60112,6 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/engineering)
|
||||
"tQT" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"tRc" = (
|
||||
/obj/structure/ore_box,
|
||||
/turf/open/floor/plating{
|
||||
@@ -60180,17 +60309,6 @@
|
||||
luminosity = 2
|
||||
},
|
||||
/area/maintenance/department/science)
|
||||
"uoq" = (
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"uos" = (
|
||||
/obj/machinery/computer/camera_advanced/base_construction,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -60626,13 +60744,6 @@
|
||||
/obj/structure/lattice,
|
||||
/turf/open/space/basic,
|
||||
/area/space/nearstation)
|
||||
"vor" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"vpz" = (
|
||||
/obj/structure/girder,
|
||||
/turf/open/floor/plating{
|
||||
@@ -61074,17 +61185,6 @@
|
||||
/obj/structure/sign/warning,
|
||||
/turf/closed/wall,
|
||||
/area/science/mixing)
|
||||
"woh" = (
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters/preopen{
|
||||
id = "engsm";
|
||||
name = "Radiation Chamber Shutters"
|
||||
},
|
||||
/obj/effect/decal/cleanable/oil,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/supermatter)
|
||||
"woq" = (
|
||||
/obj/structure/chair,
|
||||
/turf/open/floor/plating,
|
||||
@@ -61228,13 +61328,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/science)
|
||||
"wHI" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
|
||||
dir = 9
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"wIo" = (
|
||||
/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
|
||||
/obj/structure/lattice,
|
||||
@@ -83932,7 +84025,7 @@ bBX
|
||||
bva
|
||||
bEm
|
||||
bva
|
||||
bGL
|
||||
aaB
|
||||
bHQ
|
||||
bJe
|
||||
bKj
|
||||
@@ -85497,7 +85590,7 @@ bSw
|
||||
bva
|
||||
bOB
|
||||
bva
|
||||
kRq
|
||||
aaC
|
||||
kRq
|
||||
kRq
|
||||
bva
|
||||
@@ -87507,7 +87600,7 @@ aVS
|
||||
aVS
|
||||
aVS
|
||||
aVS
|
||||
aRL
|
||||
aaw
|
||||
aJI
|
||||
aDZ
|
||||
aHN
|
||||
@@ -88030,7 +88123,7 @@ bjR
|
||||
blc
|
||||
biX
|
||||
bny
|
||||
boB
|
||||
aax
|
||||
bpF
|
||||
brd
|
||||
bsz
|
||||
@@ -88522,7 +88615,7 @@ aKP
|
||||
aPz
|
||||
aQJ
|
||||
aRL
|
||||
aSD
|
||||
aau
|
||||
aTT
|
||||
aXS
|
||||
aRL
|
||||
@@ -90606,7 +90699,7 @@ brg
|
||||
bsG
|
||||
brf
|
||||
bvn
|
||||
bwM
|
||||
aaz
|
||||
byt
|
||||
bzX
|
||||
bpP
|
||||
@@ -90905,9 +90998,9 @@ svA
|
||||
mjK
|
||||
mjK
|
||||
mjK
|
||||
wHI
|
||||
eyj
|
||||
eyj
|
||||
aap
|
||||
aac
|
||||
aac
|
||||
bXk
|
||||
shH
|
||||
shH
|
||||
@@ -91157,7 +91250,7 @@ cah
|
||||
cdO
|
||||
ioF
|
||||
ceX
|
||||
qOS
|
||||
aah
|
||||
cfS
|
||||
fFv
|
||||
fmL
|
||||
@@ -91631,7 +91724,7 @@ bnD
|
||||
boJ
|
||||
bpS
|
||||
bjd
|
||||
bjc
|
||||
aay
|
||||
cqm
|
||||
bvl
|
||||
bwP
|
||||
@@ -91671,7 +91764,7 @@ cbh
|
||||
cbh
|
||||
cbh
|
||||
hjD
|
||||
vor
|
||||
aai
|
||||
cfU
|
||||
tIS
|
||||
iCs
|
||||
@@ -91929,12 +92022,12 @@ irM
|
||||
qFu
|
||||
cet
|
||||
ulY
|
||||
cfV
|
||||
aak
|
||||
cgu
|
||||
cgU
|
||||
izm
|
||||
chw
|
||||
eyj
|
||||
aam
|
||||
aaq
|
||||
aac
|
||||
jzE
|
||||
bXk
|
||||
bXk
|
||||
@@ -92181,9 +92274,9 @@ bZA
|
||||
can
|
||||
cbi
|
||||
ccc
|
||||
eyj
|
||||
aac
|
||||
cdR
|
||||
tQT
|
||||
aaf
|
||||
bXk
|
||||
bXk
|
||||
sWW
|
||||
@@ -92437,12 +92530,12 @@ bYR
|
||||
bZA
|
||||
can
|
||||
cbj
|
||||
eyj
|
||||
aac
|
||||
cbX
|
||||
wcs
|
||||
iyJ
|
||||
cfa
|
||||
eyj
|
||||
aac
|
||||
twv
|
||||
hoS
|
||||
sWj
|
||||
@@ -92694,7 +92787,7 @@ bYS
|
||||
bZA
|
||||
can
|
||||
qpS
|
||||
ccd
|
||||
aae
|
||||
ccX
|
||||
ccX
|
||||
ceu
|
||||
@@ -92703,9 +92796,9 @@ cfu
|
||||
tlN
|
||||
ncm
|
||||
cCI
|
||||
uoq
|
||||
hQy
|
||||
chA
|
||||
aan
|
||||
aar
|
||||
aao
|
||||
meF
|
||||
oKv
|
||||
wbB
|
||||
@@ -92951,12 +93044,12 @@ bYT
|
||||
bZB
|
||||
caq
|
||||
cbk
|
||||
eyj
|
||||
aac
|
||||
ccY
|
||||
cdT
|
||||
ccY
|
||||
cbX
|
||||
eyj
|
||||
aac
|
||||
vlC
|
||||
iej
|
||||
qeY
|
||||
@@ -93208,7 +93301,7 @@ bYU
|
||||
bZE
|
||||
car
|
||||
mgz
|
||||
eyj
|
||||
aac
|
||||
cbX
|
||||
wcs
|
||||
wcs
|
||||
@@ -94236,7 +94329,7 @@ bYQ
|
||||
bZA
|
||||
cam
|
||||
mgz
|
||||
eyj
|
||||
aac
|
||||
cbX
|
||||
wcs
|
||||
wcs
|
||||
@@ -94493,12 +94586,12 @@ wjm
|
||||
bZF
|
||||
cbm
|
||||
mgz
|
||||
eyj
|
||||
aac
|
||||
oHa
|
||||
oHa
|
||||
eWi
|
||||
cbX
|
||||
eyj
|
||||
aac
|
||||
vlC
|
||||
cgx
|
||||
qeY
|
||||
@@ -94750,7 +94843,7 @@ bYO
|
||||
bZA
|
||||
cam
|
||||
lrM
|
||||
ccd
|
||||
aae
|
||||
cAQ
|
||||
cAQ
|
||||
cLw
|
||||
@@ -94759,9 +94852,9 @@ cfu
|
||||
jBn
|
||||
oxw
|
||||
meF
|
||||
chA
|
||||
chA
|
||||
woh
|
||||
aao
|
||||
aao
|
||||
aas
|
||||
cCI
|
||||
cBS
|
||||
iLh
|
||||
@@ -94900,7 +94993,7 @@ aey
|
||||
aeO
|
||||
aff
|
||||
afy
|
||||
afP
|
||||
aab
|
||||
bIK
|
||||
agt
|
||||
agD
|
||||
@@ -95007,12 +95100,12 @@ bYY
|
||||
bZA
|
||||
cam
|
||||
cbn
|
||||
eyj
|
||||
aac
|
||||
cbX
|
||||
wcs
|
||||
cfP
|
||||
cff
|
||||
eyj
|
||||
aac
|
||||
cfX
|
||||
vVO
|
||||
iop
|
||||
@@ -95265,9 +95358,9 @@ bZG
|
||||
cax
|
||||
cbo
|
||||
ccc
|
||||
eyj
|
||||
aac
|
||||
cdR
|
||||
oJr
|
||||
aag
|
||||
bXq
|
||||
bXq
|
||||
cfY
|
||||
@@ -95527,7 +95620,7 @@ kTj
|
||||
qhE
|
||||
loz
|
||||
frj
|
||||
lRX
|
||||
aal
|
||||
eyj
|
||||
uIB
|
||||
eyj
|
||||
@@ -95783,7 +95876,7 @@ cam
|
||||
cam
|
||||
cam
|
||||
haA
|
||||
aKm
|
||||
aaj
|
||||
upc
|
||||
wIo
|
||||
hyh
|
||||
@@ -96040,7 +96133,7 @@ cCV
|
||||
ceb
|
||||
epV
|
||||
qLI
|
||||
aKm
|
||||
aaj
|
||||
eiV
|
||||
upc
|
||||
dsz
|
||||
@@ -103154,7 +103247,7 @@ axx
|
||||
ayv
|
||||
azD
|
||||
aAS
|
||||
aBV
|
||||
aat
|
||||
atn
|
||||
aEh
|
||||
aFe
|
||||
@@ -107799,7 +107892,7 @@ sZh
|
||||
aLm
|
||||
aTx
|
||||
aEj
|
||||
aVF
|
||||
aav
|
||||
aFi
|
||||
aFi
|
||||
aFi
|
||||
@@ -109372,7 +109465,7 @@ blX
|
||||
blX
|
||||
blX
|
||||
bkF
|
||||
lWy
|
||||
aaA
|
||||
lWy
|
||||
fKj
|
||||
lWy
|
||||
|
||||
@@ -2,18 +2,6 @@
|
||||
//Be sure to update the min/max of these if you do change them.
|
||||
//Measurements are in imperial units. Inches, feet, yards, miles. Tsp, tbsp, cups, quarts, gallons, etc
|
||||
|
||||
//HUD stuff
|
||||
#define ui_arousal "EAST-1:28,CENTER-4:8"//Below the health doll
|
||||
#define ui_stamina "EAST-1:28,CENTER:17" // replacing internals button
|
||||
#define ui_overridden_resist "EAST-3:24,SOUTH+1:7"
|
||||
#define ui_combat_toggle "EAST-4:22,SOUTH:5"
|
||||
|
||||
//1:1 HUD layout stuff
|
||||
#define ui_boxcraft "EAST-4:22,SOUTH+1:6"
|
||||
#define ui_boxarea "EAST-4:6,SOUTH+1:6"
|
||||
#define ui_boxlang "EAST-5:22,SOUTH+1:6"
|
||||
#define ui_boxvore "EAST-5:22,SOUTH+1:6"
|
||||
|
||||
//Filters
|
||||
#define CIT_FILTER_STAMINACRIT filter(type="drop_shadow", x=0, y=0, size=-3, color="#04080F")
|
||||
|
||||
@@ -35,6 +23,8 @@
|
||||
#define MASTURBATE_LINKED_ORGAN (1<<6) //used to pass our mission to the linked organ
|
||||
#define CAN_CLIMAX_WITH (1<<7)
|
||||
#define GENITAL_CAN_AROUSE (1<<8)
|
||||
#define GENITAL_UNDIES_HIDDEN (1<<9)
|
||||
#define UPDATE_OWNER_APPEARANCE (1<<10)
|
||||
|
||||
|
||||
#define DEF_VAGINA_SHAPE "Human"
|
||||
@@ -71,6 +61,12 @@
|
||||
#define MILK_RATE_MULT 1
|
||||
#define MILK_EFFICIENCY 1
|
||||
|
||||
//visibility toggles defines to avoid errors typos code errors.
|
||||
#define GEN_VISIBLE_ALWAYS "Always visible"
|
||||
#define GEN_VISIBLE_NO_CLOTHES "Hidden by clothes"
|
||||
#define GEN_VISIBLE_NO_UNDIES "Hidden by underwear"
|
||||
#define GEN_VISIBLE_NEVER "Always hidden"
|
||||
|
||||
//Individual logging define
|
||||
#define INDIVIDUAL_LOOC_LOG "LOOC log"
|
||||
|
||||
|
||||
@@ -82,6 +82,7 @@
|
||||
#define CANUNCONSCIOUS (1<<2)
|
||||
#define CANPUSH (1<<3)
|
||||
#define GODMODE (1<<4)
|
||||
#define CANSTAGGER (1<<5)
|
||||
|
||||
//Health Defines
|
||||
#define HEALTH_THRESHOLD_CRIT 0
|
||||
|
||||
@@ -175,6 +175,7 @@
|
||||
#define SPEECH_LANGUAGE 5
|
||||
// #define SPEECH_IGNORE_SPAM 6
|
||||
// #define SPEECH_FORCED 7
|
||||
#define COMSIG_MOB_ANTAG_ON_GAIN "mob_antag_on_gain" //from base of /datum/antagonist/on_gain(): (antag_datum)
|
||||
|
||||
// /mob/living signals
|
||||
#define COMSIG_LIVING_REGENERATE_LIMBS "living_regenerate_limbs" //from base of /mob/living/regenerate_limbs(): (noheal, excluded_limbs)
|
||||
@@ -185,6 +186,7 @@
|
||||
#define COMSIG_LIVING_MINOR_SHOCK "living_minor_shock" //sent by stuff like stunbatons and tasers: ()
|
||||
#define COMSIG_LIVING_REVIVE "living_revive" //from base of mob/living/revive() (full_heal, admin_revive)
|
||||
#define COMSIG_MOB_CLIENT_LOGIN "comsig_mob_client_login" //sent when a mob/login() finishes: (client)
|
||||
#define COMSIG_MOB_CLIENT_MOVE "comsig_mob_client_move" //sent when client/Move() finishes with no early returns: (client, direction, n, oldloc)
|
||||
#define COMSIG_LIVING_GUN_PROCESS_FIRE "living_gun_process_fire" //from base of /obj/item/gun/proc/process_fire(): (atom/target, params, zone_override)
|
||||
#define COMSIG_LIVING_COMBAT_ENABLED "combatmode_enabled" //from base of mob/living/enable_combat_mode() (was_forced)
|
||||
#define COMSIG_LIVING_COMBAT_DISABLED "combatmode_disabled" //from base of mob/living/disable_combat_mode() (was_forced)
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#define NO_ASSASSIN (1<<0)
|
||||
#define WAROPS_ALWAYS_ALLOWED (1<<1)
|
||||
#define USE_PREF_WEIGHTS (1<<2)
|
||||
#define FORCE_IF_WON (1<<3)
|
||||
|
||||
#define ONLY_RULESET (1<<0)
|
||||
#define HIGHLANDER_RULESET (1<<1)
|
||||
|
||||
@@ -4,11 +4,16 @@
|
||||
#define CLICKCATCHER_PLANE -99
|
||||
|
||||
#define PLANE_SPACE -95
|
||||
#define PLANE_SPACE_RENDER_TARGET "PLANE_SPACE"
|
||||
#define PLANE_SPACE_PARALLAX -90
|
||||
#define PLANE_SPACE_PARALLAX_RENDER_TARGET "PLANE_SPACE_PARALLAX"
|
||||
|
||||
#define FLOOR_PLANE -2
|
||||
#define FLOOR_PLANE_RENDER_TARGET "FLOOR_PLANE"
|
||||
#define GAME_PLANE -1
|
||||
#define GAME_PLANE_RENDER_TARGET "GAME_PLANE"
|
||||
#define BLACKNESS_PLANE 0 //To keep from conflicts with SEE_BLACKNESS internals
|
||||
#define BLACKNESS_PLANE_RENDER_TARGET "BLACKNESS_PLANE"
|
||||
|
||||
#define SPACE_LAYER 1.8
|
||||
//#define TURF_LAYER 2 //For easy recordkeeping; this is a byond define
|
||||
@@ -78,20 +83,38 @@
|
||||
#define MASSIVE_OBJ_LAYER 11
|
||||
#define POINT_LAYER 12
|
||||
|
||||
#define EMISSIVE_BLOCKER_PLANE 12
|
||||
#define EMISSIVE_BLOCKER_LAYER 12
|
||||
#define EMISSIVE_BLOCKER_RENDER_TARGET "*EMISSIVE_BLOCKER_PLANE"
|
||||
|
||||
#define EMISSIVE_PLANE 13
|
||||
#define EMISSIVE_LAYER 13
|
||||
#define EMISSIVE_RENDER_TARGET "*EMISSIVE_PLANE"
|
||||
|
||||
#define EMISSIVE_UNBLOCKABLE_PLANE 14
|
||||
#define EMISSIVE_UNBLOCKABLE_LAYER 14
|
||||
#define EMISSIVE_UNBLOCKABLE_RENDER_TARGET "*EMISSIVE_UNBLOCKABLE_PLANE"
|
||||
|
||||
#define LIGHTING_PLANE 15
|
||||
#define LIGHTING_LAYER 15
|
||||
#define LIGHTING_RENDER_TARGET "LIGHT_PLANE"
|
||||
|
||||
#define ABOVE_LIGHTING_PLANE 16
|
||||
#define ABOVE_LIGHTING_LAYER 16
|
||||
#define ABOVE_LIGHTING_RENDER_TARGET "ABOVE_LIGHTING_PLANE"
|
||||
|
||||
#define FLOOR_OPENSPACE_PLANE 17
|
||||
#define OPENSPACE_LAYER 17
|
||||
#define OPENSPACE_RENDER_TARGET "OPENSPACE_PLANE"
|
||||
|
||||
#define BYOND_LIGHTING_PLANE 18
|
||||
#define BYOND_LIGHTING_LAYER 18
|
||||
#define BYOND_LIGHTING_RENDER_TARGET "BYOND_LIGHTING_PLANE"
|
||||
|
||||
#define CAMERA_STATIC_PLANE 19
|
||||
#define CAMERA_STATIC_LAYER 19
|
||||
#define CAMERA_STATIC_RENDER_TARGET "CAMERA_STATIC_PLANE"
|
||||
|
||||
//HUD layer defines
|
||||
|
||||
#define FULLSCREEN_PLANE 20
|
||||
@@ -101,11 +124,16 @@
|
||||
#define BLIND_LAYER 20.3
|
||||
#define CRIT_LAYER 20.4
|
||||
#define CURSE_LAYER 20.5
|
||||
#define FULLSCREEN_RENDER_TARGET "FULLSCREEN_PLANE"
|
||||
|
||||
#define HUD_PLANE 21
|
||||
#define HUD_LAYER 21
|
||||
#define HUD_RENDER_TARGET "HUD_PLANE"
|
||||
#define ABOVE_HUD_PLANE 22
|
||||
#define ABOVE_HUD_LAYER 22
|
||||
#define ABOVE_HUD_RENDER_TARGET "ABOVE_HUD_PLANE"
|
||||
|
||||
#define SPLASHSCREEN_LAYER 23
|
||||
#define SPLASHSCREEN_PLANE 23
|
||||
#define SPLASHSCREEN_RENDER_TARGET "SPLASHSCREEN_PLANE"
|
||||
|
||||
|
||||
@@ -83,3 +83,8 @@
|
||||
#define FLASH_LIGHT_DURATION 2
|
||||
#define FLASH_LIGHT_POWER 3
|
||||
#define FLASH_LIGHT_RANGE 3.8
|
||||
|
||||
/// Uses vis_overlays to leverage caching so that very few new items need to be made for the overlay. For anything that doesn't change outline or opaque area much or at all.
|
||||
#define EMISSIVE_BLOCK_GENERIC 1
|
||||
/// Uses a dedicated render_target object to copy the entire appearance in real time to the blocking layer. For things that can change in appearance a lot from the base state, like humans.
|
||||
#define EMISSIVE_BLOCK_UNIQUE 2
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
#define FLOOR(x, y) ( round((x) / (y)) * (y) )
|
||||
|
||||
// Similar to clamp but the bottom rolls around to the top and vice versa. min is inclusive, max is exclusive
|
||||
#define WRAP(val, min, max) ( min == max ? min : (val) - (round(((val) - (min))/((max) - (min))) * ((max) - (min))) )
|
||||
#define WRAP(val, min, max) CLAMP(( min == max ? min : (val) - (round(((val) - (min))/((max) - (min))) * ((max) - (min))) ),min,max-1)
|
||||
|
||||
// Real modulus that handles decimals
|
||||
#define MODULUS(x, y) ( (x) - (y) * round((x) / (y)) )
|
||||
@@ -203,5 +203,7 @@
|
||||
|
||||
#define MANHATTAN_DISTANCE(a, b) (abs(a.x - b.x) + abs(a.y - b.y))
|
||||
|
||||
#define LOGISTIC_FUNCTION(L,k,x,x_0) (L/(1+(NUM_E**(-k*(x-x_0)))))
|
||||
|
||||
/// Make sure something is a boolean TRUE/FALSE 1/0 value, since things like bitfield & bitflag doesn't always give 1s and 0s.
|
||||
#define FORCE_BOOLEAN(x) ((x)? TRUE : FALSE)
|
||||
|
||||
@@ -345,11 +345,10 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S
|
||||
#define COLOUR_PRIORITY_AMOUNT 4 //how many priority levels there are.
|
||||
|
||||
//Endgame Results
|
||||
#define NUKE_NEAR_MISS 1
|
||||
#define NUKE_MISS_STATION 2
|
||||
#define NUKE_SYNDICATE_BASE 3
|
||||
#define STATION_DESTROYED_NUKE 4
|
||||
#define STATION_EVACUATED 5
|
||||
#define NUKE_MISS_STATION 1
|
||||
#define NUKE_SYNDICATE_BASE 2
|
||||
#define STATION_DESTROYED_NUKE 3
|
||||
#define STATION_EVACUATED 4
|
||||
#define BLOB_WIN 8
|
||||
#define BLOB_NUKE 9
|
||||
#define BLOB_DESTROYED 10
|
||||
|
||||
@@ -289,4 +289,5 @@
|
||||
#define HUMAN_FIRE_STACK_ICON_NUM 3
|
||||
|
||||
#define PULL_PRONE_SLOWDOWN 0.6
|
||||
#define HUMAN_CARRY_SLOWDOWN 0
|
||||
#define FIREMAN_CARRY_SLOWDOWN 0
|
||||
#define PIGGYBACK_CARRY_SLOWDOWN 1
|
||||
|
||||
@@ -212,6 +212,7 @@
|
||||
#define TRAIT_NO_TELEPORT "no-teleport" //you just can't
|
||||
#define TRAIT_NO_INTERNALS "no-internals"
|
||||
#define TRAIT_NO_ALCOHOL "alcohol_intolerance"
|
||||
#define TRAIT_MUTATION_STASIS "mutation_stasis" //Prevents processed genetics mutations from processing.
|
||||
|
||||
// common trait sources
|
||||
#define TRAIT_GENERIC "generic"
|
||||
@@ -236,6 +237,7 @@
|
||||
#define APHRO_TRAIT "aphro"
|
||||
#define BLOODSUCKER_TRAIT "bloodsucker"
|
||||
#define CLOTHING_TRAIT "clothing" //used for quirky carrygloves
|
||||
#define SHOES_TRAIT "shoes" //inherited from your sweet kicks
|
||||
|
||||
// unique trait sources, still defines
|
||||
#define STATUE_MUTE "statue"
|
||||
|
||||
@@ -5,6 +5,11 @@
|
||||
#define MAJORITY_JUDGEMENT_VOTING 4
|
||||
#define INSTANT_RUNOFF_VOTING 5
|
||||
|
||||
#define SHOW_RESULTS (1<<0)
|
||||
#define SHOW_VOTES (1<<1)
|
||||
#define SHOW_WINNER (1<<2)
|
||||
#define SHOW_ABSTENTION (1<<3)
|
||||
|
||||
GLOBAL_LIST_INIT(vote_score_options,list("Bad","Poor","Acceptable","Good","Great"))
|
||||
|
||||
GLOBAL_LIST_INIT(vote_type_names,list(\
|
||||
@@ -15,3 +20,10 @@ GLOBAL_LIST_INIT(vote_type_names,list(\
|
||||
"Raw Score (returns results from 0 to 1, winner is 1)" = SCORE_VOTING,\
|
||||
"Majority Judgement (single-winner score voting)" = MAJORITY_JUDGEMENT_VOTING,\
|
||||
))
|
||||
|
||||
GLOBAL_LIST_INIT(display_vote_settings, list(\
|
||||
"Results" = SHOW_RESULTS,
|
||||
"Ongoing Votes" = SHOW_VOTES,
|
||||
"Winner" = SHOW_WINNER,
|
||||
"Abstainers" = SHOW_ABSTENTION
|
||||
))
|
||||
@@ -58,14 +58,13 @@ GLOBAL_LIST_EMPTY(ipc_antennas_list)
|
||||
//Genitals and Arousal Lists
|
||||
GLOBAL_LIST_EMPTY(genitals_list)
|
||||
GLOBAL_LIST_EMPTY(cock_shapes_list)
|
||||
GLOBAL_LIST_EMPTY(gentlemans_organ_names)
|
||||
GLOBAL_LIST_EMPTY(balls_shapes_list)
|
||||
GLOBAL_LIST_EMPTY(breasts_shapes_list)
|
||||
GLOBAL_LIST_EMPTY(vagina_shapes_list)
|
||||
GLOBAL_LIST_INIT(cum_into_containers_list, list(/obj/item/reagent_containers/food/snacks/pie)) //Yer fuggin snowflake name list jfc
|
||||
GLOBAL_LIST_INIT(dick_nouns, list("dick","cock","member","shaft"))
|
||||
GLOBAL_LIST_INIT(cum_id_list,"semen")
|
||||
GLOBAL_LIST_INIT(milk_id_list,"milk")
|
||||
//longcat memes.
|
||||
GLOBAL_LIST_INIT(dick_nouns, list("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret", "One eyed trouser trout", "Ding dong", "ankle spanker", "Pork sword", "engine cranker", "Harry hot dog", "Davy Crockett", "Kidney cracker", "Heat seeking moisture missile", "Giggle stick", "love whistle", "Tube steak", "Uncle Dick", "Purple helmet warrior"))
|
||||
|
||||
GLOBAL_LIST_INIT(genitals_visibility_toggles, list(GEN_VISIBLE_ALWAYS, GEN_VISIBLE_NO_CLOTHES, GEN_VISIBLE_NO_UNDIES, GEN_VISIBLE_NEVER))
|
||||
|
||||
GLOBAL_LIST_INIT(dildo_shapes, list(
|
||||
"Human" = "human",
|
||||
|
||||
@@ -54,11 +54,6 @@
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/testicles, GLOB.balls_shapes_list)
|
||||
GLOB.gentlemans_organ_names = list("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ",
|
||||
"cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret",
|
||||
"baloney pony", "schlanger", "Mutton dagger", "old blind bob","Hanging Johnny", "fishing rod", "Tally whacker", "polly rocket",
|
||||
"One eyed trouser trout", "Ding dong", "ankle spanker", "Pork sword", "engine cranker", "Harry hot dog", "Davy Crockett",
|
||||
"Kidney cracker", "Heat seeking moisture missile", "Giggle stick", "love whistle", "Tube steak", "Uncle Dick", "Purple helmet warrior")
|
||||
|
||||
for(var/gpath in subtypesof(/obj/item/organ/genital))
|
||||
var/obj/item/organ/genital/G = gpath
|
||||
|
||||
@@ -185,7 +185,6 @@
|
||||
"cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF,
|
||||
"cock_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"),
|
||||
"has_balls" = FALSE,
|
||||
"balls_internal" = FALSE,
|
||||
"balls_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"),
|
||||
"balls_size" = BALLS_SIZE_DEF,
|
||||
"balls_shape" = DEF_BALLS_SHAPE,
|
||||
@@ -200,13 +199,11 @@
|
||||
"has_vag" = FALSE,
|
||||
"vag_shape" = pick(GLOB.vagina_shapes_list),
|
||||
"vag_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"),
|
||||
"vag_clits" = 1,
|
||||
"vag_clit_diam" = 0.25,
|
||||
"vag_clit_len" = 0.25,
|
||||
"has_womb" = FALSE,
|
||||
"womb_cum_rate" = CUM_RATE,
|
||||
"womb_cum_mult" = CUM_RATE_MULT,
|
||||
"womb_efficiency" = CUM_EFFICIENCY,
|
||||
"balls_visibility" = GEN_VISIBLE_NO_UNDIES,
|
||||
"breasts_visibility"= GEN_VISIBLE_NO_UNDIES,
|
||||
"cock_visibility" = GEN_VISIBLE_NO_UNDIES,
|
||||
"vag_visibility" = GEN_VISIBLE_NO_UNDIES,
|
||||
"ipc_screen" = snowflake_ipc_antenna_list ? pick(snowflake_ipc_antenna_list) : "None",
|
||||
"ipc_antenna" = "None",
|
||||
"flavor_text" = "",
|
||||
|
||||
@@ -320,8 +320,8 @@
|
||||
parts += "[FOURSPACES]<i>Nobody died this shift!</i>"
|
||||
if(istype(SSticker.mode, /datum/game_mode/dynamic))
|
||||
var/datum/game_mode/dynamic/mode = SSticker.mode
|
||||
parts += "[FOURSPACES]Threat level: [mode.threat_level]"
|
||||
parts += "[FOURSPACES]Threat left: [mode.threat]"
|
||||
parts += "[FOURSPACES]Final threat level: [mode.threat_level]"
|
||||
parts += "[FOURSPACES]Final threat: [mode.threat]"
|
||||
parts += "[FOURSPACES]Executed rules:"
|
||||
for(var/datum/dynamic_ruleset/rule in mode.executed_rules)
|
||||
parts += "[FOURSPACES][FOURSPACES][rule.ruletype] - <b>[rule.name]</b>: -[rule.cost + rule.scaled_times * rule.scaling_cost] threat"
|
||||
@@ -331,7 +331,7 @@
|
||||
for(var/entry in mode.threat_tallies)
|
||||
parts += "[FOURSPACES][FOURSPACES][entry] added [mode.threat_tallies[entry]]"
|
||||
SSblackbox.record_feedback("tally","dynamic_threat",mode.threat_level,"Final threat level")
|
||||
SSblackbox.record_feedback("tally","dynamic_threat",mode.threat,"Threat left")
|
||||
SSblackbox.record_feedback("tally","dynamic_threat",mode.threat,"Final Threat")
|
||||
return parts.Join("<br>")
|
||||
|
||||
/client/proc/roundend_report_file()
|
||||
|
||||
@@ -152,10 +152,10 @@
|
||||
else
|
||||
if(ismob(A))
|
||||
changeNext_move(CLICK_CD_MELEE)
|
||||
UnarmedAttack(A,1)
|
||||
UnarmedAttack(A, 1)
|
||||
else
|
||||
if(W)
|
||||
W.afterattack(A,src,0,params)
|
||||
W.ranged_attack_chain(src, A, params)
|
||||
else
|
||||
RangedAttack(A,params)
|
||||
|
||||
|
||||
@@ -163,3 +163,14 @@
|
||||
#define ui_ghost_reenter_corpse "SOUTH:6,CENTER:24"
|
||||
#define ui_ghost_teleport "SOUTH:6,CENTER+1:24"
|
||||
#define ui_ghost_pai "SOUTH: 6, CENTER+2:24"
|
||||
|
||||
|
||||
//UI position overrides for 1:1 screen layout. (default is 7:5)
|
||||
#define ui_stamina "EAST-1:28,CENTER:17" // replacing internals button
|
||||
#define ui_overridden_resist "EAST-3:24,SOUTH+1:7"
|
||||
#define ui_combat_toggle "EAST-4:22,SOUTH:5"
|
||||
|
||||
#define ui_boxcraft "EAST-4:22,SOUTH+1:6"
|
||||
#define ui_boxarea "EAST-4:6,SOUTH+1:6"
|
||||
#define ui_boxlang "EAST-5:22,SOUTH+1:6"
|
||||
#define ui_boxvore "EAST-5:22,SOUTH+1:6"
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
//Trust me, you need one. Period. If you don't think you do, you're doing something extremely wrong.
|
||||
/obj/screen/plane_master/proc/backdrop(mob/mymob)
|
||||
|
||||
///Things rendered on "openspace"; holes in multi-z
|
||||
/obj/screen/plane_master/openspace
|
||||
name = "open space plane master"
|
||||
plane = FLOOR_OPENSPACE_PLANE
|
||||
@@ -38,12 +39,14 @@
|
||||
/obj/screen/plane_master/proc/clear_filters()
|
||||
filters = list()
|
||||
|
||||
///Contains just the floor
|
||||
/obj/screen/plane_master/floor
|
||||
name = "floor plane master"
|
||||
plane = FLOOR_PLANE
|
||||
appearance_flags = PLANE_MASTER
|
||||
blend_mode = BLEND_OVERLAY
|
||||
|
||||
///Contains most things in the game world
|
||||
/obj/screen/plane_master/game_world
|
||||
name = "game world plane master"
|
||||
plane = GAME_PLANE
|
||||
@@ -57,12 +60,60 @@
|
||||
remove_filter("ambient_occlusion")
|
||||
update_filters()
|
||||
|
||||
///Contains all lighting objects
|
||||
/obj/screen/plane_master/lighting
|
||||
name = "lighting plane master"
|
||||
plane = LIGHTING_PLANE
|
||||
blend_mode = BLEND_MULTIPLY
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
|
||||
/obj/screen/plane_master/lighting/Initialize()
|
||||
. = ..()
|
||||
filters += filter(type="alpha", render_source=EMISSIVE_RENDER_TARGET, flags=MASK_INVERSE)
|
||||
filters += filter(type="alpha", render_source=EMISSIVE_UNBLOCKABLE_RENDER_TARGET, flags=MASK_INVERSE)
|
||||
|
||||
/**
|
||||
* Things placed on this mask the lighting plane. Doesn't render directly.
|
||||
*
|
||||
* Gets masked by blocking plane. Use for things that you want blocked by
|
||||
* mobs, items, etc.
|
||||
*/
|
||||
/obj/screen/plane_master/emissive
|
||||
name = "emissive plane master"
|
||||
plane = EMISSIVE_PLANE
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
render_target = EMISSIVE_RENDER_TARGET
|
||||
|
||||
/obj/screen/plane_master/emissive/Initialize()
|
||||
. = ..()
|
||||
filters += filter(type="alpha", render_source=EMISSIVE_BLOCKER_RENDER_TARGET, flags=MASK_INVERSE)
|
||||
|
||||
/**
|
||||
* Things placed on this always mask the lighting plane. Doesn't render directly.
|
||||
*
|
||||
* Always masks the light plane, isn't blocked by anything. Use for on mob glows,
|
||||
* magic stuff, etc.
|
||||
*/
|
||||
|
||||
/obj/screen/plane_master/emissive_unblockable
|
||||
name = "unblockable emissive plane master"
|
||||
plane = EMISSIVE_UNBLOCKABLE_PLANE
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
render_target = EMISSIVE_UNBLOCKABLE_RENDER_TARGET
|
||||
|
||||
/**
|
||||
* Things placed on this layer mask the emissive layer. Doesn't render directly
|
||||
*
|
||||
* You really shouldn't be directly using this, use atom helpers instead
|
||||
*/
|
||||
/obj/screen/plane_master/emissive_unblockable
|
||||
name = "emissive mob plane master"
|
||||
plane = EMISSIVE_BLOCKER_PLANE
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
render_target = EMISSIVE_BLOCKER_RENDER_TARGET
|
||||
|
||||
///Contains space parallax
|
||||
|
||||
/obj/screen/plane_master/parallax
|
||||
name = "parallax plane master"
|
||||
plane = PLANE_SPACE_PARALLAX
|
||||
|
||||
@@ -8,12 +8,15 @@
|
||||
*afterattack. The return value does not matter.
|
||||
*/
|
||||
/obj/item/proc/melee_attack_chain(mob/user, atom/target, params)
|
||||
if(item_flags & NO_ATTACK_CHAIN_SOFT_STAMCRIT)
|
||||
if(isliving(user))
|
||||
var/mob/living/L = user
|
||||
if(isliving(user))
|
||||
var/mob/living/L = user
|
||||
if(item_flags & NO_ATTACK_CHAIN_SOFT_STAMCRIT)
|
||||
if(IS_STAMCRIT(L))
|
||||
to_chat(L, "<span class='warning'>You are too exhausted to swing [src]!</span>")
|
||||
return
|
||||
if(!CHECK_MOBILITY(L, MOBILITY_USE))
|
||||
to_chat(L, "<span class='warning'>You are unable to swing [src] right now!</span>")
|
||||
return
|
||||
if(tool_behaviour && target.tool_act(user, src, tool_behaviour))
|
||||
return
|
||||
if(pre_attack(target, user, params))
|
||||
@@ -24,6 +27,15 @@
|
||||
return
|
||||
afterattack(target, user, TRUE, params)
|
||||
|
||||
/// Like melee_attack_chain but for ranged.
|
||||
/obj/item/proc/ranged_attack_chain(mob/user, atom/target, params)
|
||||
if(isliving(user))
|
||||
var/mob/living/L = user
|
||||
if(!CHECK_MOBILITY(L, MOBILITY_USE))
|
||||
to_chat(L, "<span class='warning'>You are unable to raise [src] right now!</span>")
|
||||
return
|
||||
afterattack(target, user, FALSE, params)
|
||||
|
||||
// Called when the item is in the active hand, and clicked; alternately, there is an 'activate held object' verb or you can hit pagedown.
|
||||
/obj/item/proc/attack_self(mob/user)
|
||||
if(SEND_SIGNAL(src, COMSIG_ITEM_ATTACK_SELF, user) & COMPONENT_NO_INTERACT)
|
||||
@@ -50,7 +62,6 @@
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
return I.attack(src, user)
|
||||
|
||||
|
||||
/obj/item/proc/attack(mob/living/M, mob/living/user)
|
||||
if(SEND_SIGNAL(src, COMSIG_ITEM_ATTACK, M, user) & COMPONENT_ITEM_NO_ATTACK)
|
||||
return
|
||||
@@ -117,6 +128,7 @@
|
||||
if(user != src && check_shields(I, totitemdamage, "the [I.name]", MELEE_ATTACK, I.armour_penetration))
|
||||
return FALSE
|
||||
send_item_attack_message(I, user)
|
||||
I.do_stagger_action(src, user)
|
||||
if(I.force)
|
||||
apply_damage(totitemdamage, I.damtype) //CIT CHANGE - replaces I.force with totitemdamage
|
||||
if(I.damtype == BRUTE)
|
||||
@@ -166,5 +178,33 @@
|
||||
playsound(src, 'sound/weapons/dink.ogg', 30, 1)
|
||||
return 1
|
||||
|
||||
/// How much stamina this takes to swing this is not for realism purposes hecc off.
|
||||
/obj/item/proc/getweight()
|
||||
return total_mass || w_class * 1.25
|
||||
|
||||
/// How long this staggers for. 0 and negatives supported.
|
||||
/obj/item/proc/melee_stagger_duration()
|
||||
if(!isnull(stagger_force))
|
||||
return stagger_force
|
||||
/// totally not an untested, arbitrary equation.
|
||||
return clamp((1.5 + (w_class/7.5)) * (force / 2), 0, 10 SECONDS)
|
||||
|
||||
/obj/item/proc/do_stagger_action(mob/living/target, mob/living/user)
|
||||
if(!CHECK_BITFIELD(target.status_flags, CANSTAGGER))
|
||||
return FALSE
|
||||
if(target.combat_flags & COMBAT_FLAG_SPRINT_ACTIVE)
|
||||
target.do_staggered_animation()
|
||||
var/duration = melee_stagger_duration()
|
||||
if(!duration) //0
|
||||
return FALSE
|
||||
else if(duration > 0)
|
||||
target.Stagger(duration)
|
||||
else //negative
|
||||
target.AdjustStaggered(duration)
|
||||
return TRUE
|
||||
|
||||
/mob/proc/do_staggered_animation()
|
||||
set waitfor = FALSE
|
||||
animate(src, pixel_x = -2, pixel_y = -2, time = 1, flags = ANIMATION_RELATIVE | ANIMATION_PARALLEL)
|
||||
animate(pixel_x = 4, pixel_y = 4, time = 1, flags = ANIMATION_RELATIVE)
|
||||
animate(pixel_x = -2, pixel_y = -2, time = 0.5, flags = ANIMATION_RELATIVE)
|
||||
|
||||
@@ -368,12 +368,16 @@
|
||||
var/list/datum/dynamic_storyteller/runnable_storytellers = new
|
||||
var/list/probabilities = Get(/datum/config_entry/keyed_list/storyteller_weight)
|
||||
var/list/repeated_mode_adjust = Get(/datum/config_entry/number_list/repeated_mode_adjust)
|
||||
var/list/min_player_counts = Get(/datum/config_entry/keyed_list/storyteller_min_players)
|
||||
for(var/T in storyteller_cache)
|
||||
var/datum/dynamic_storyteller/S = T
|
||||
var/config_tag = initial(S.config_tag)
|
||||
var/probability = (config_tag in probabilities) ? probabilities[config_tag] : initial(S.weight)
|
||||
var/min_players = (config_tag in min_player_counts) ? min_player_counts[config_tag] : initial(S.min_players)
|
||||
if(probability <= 0)
|
||||
continue
|
||||
if(length(GLOB.player_list) < min_players)
|
||||
continue
|
||||
if(SSpersistence.saved_storytellers.len == repeated_mode_adjust.len)
|
||||
var/name = initial(S.name)
|
||||
var/recent_round = min(SSpersistence.saved_storytellers.Find(name),3)
|
||||
|
||||
@@ -92,3 +92,7 @@
|
||||
/datum/config_entry/keyed_list/storyteller_weight
|
||||
key_mode = KEY_MODE_TEXT
|
||||
value_mode = VALUE_MODE_NUM
|
||||
|
||||
/datum/config_entry/keyed_list/storyteller_min_players
|
||||
key_mode = KEY_MODE_TEXT
|
||||
value_mode = VALUE_MODE_NUM
|
||||
|
||||
@@ -396,6 +396,14 @@
|
||||
key_mode = KEY_MODE_TEXT
|
||||
value_mode = VALUE_MODE_NUM
|
||||
|
||||
/datum/config_entry/keyed_list/job_threat
|
||||
key_mode = KEY_MODE_TEXT
|
||||
value_mode = VALUE_MODE_NUM
|
||||
|
||||
/datum/config_entry/keyed_list/antag_threat
|
||||
key_mode = KEY_MODE_TEXT
|
||||
value_mode = VALUE_MODE_NUM
|
||||
|
||||
/datum/config_entry/number/monkeycap
|
||||
config_entry_value = 64
|
||||
min_val = 0
|
||||
@@ -436,3 +444,8 @@
|
||||
/datum/config_entry/number/penis_max_inches_prefs
|
||||
config_entry_value = 20
|
||||
min_val = 0
|
||||
|
||||
/datum/config_entry/keyed_list/safe_visibility_toggles
|
||||
key_mode = KEY_MODE_TEXT
|
||||
value_mode = VALUE_MODE_FLAG
|
||||
config_entry_value = list(GEN_VISIBLE_NO_CLOTHES, GEN_VISIBLE_NO_UNDIES, GEN_VISIBLE_NEVER) //refer to cit_helpers for all toggles.
|
||||
|
||||
@@ -66,6 +66,7 @@ SUBSYSTEM_DEF(job)
|
||||
|
||||
|
||||
/datum/controller/subsystem/job/proc/GetJob(rank)
|
||||
RETURN_TYPE(/datum/job)
|
||||
if(!occupations.len)
|
||||
SetupOccupations()
|
||||
return name_occupations[rank]
|
||||
@@ -738,4 +739,4 @@ SUBSYSTEM_DEF(job)
|
||||
. |= player.mind
|
||||
|
||||
/datum/controller/subsystem/job/proc/JobDebug(message)
|
||||
log_job_debug(message)
|
||||
log_job_debug(message)
|
||||
|
||||
@@ -37,11 +37,11 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
|
||||
if(job?.blacklisted_quirks)
|
||||
cut = filter_quirks(my_quirks, job.blacklisted_quirks)
|
||||
for(var/V in my_quirks)
|
||||
var/datum/quirk/Q = quirks[V]
|
||||
if(Q)
|
||||
if(V in quirks)
|
||||
var/datum/quirk/Q = quirks[V]
|
||||
user.add_quirk(Q, spawn_effects)
|
||||
else
|
||||
stack_trace("Invalid quirk \"[V]\" in client [cli.ckey] preferences")
|
||||
log_admin("Invalid quirk \"[V]\" in client [cli.ckey] preferences")
|
||||
cli.prefs.all_quirks -= V
|
||||
badquirk = TRUE
|
||||
if(badquirk)
|
||||
|
||||
@@ -479,15 +479,15 @@ SUBSYSTEM_DEF(ticker)
|
||||
var/vote_type = CONFIG_GET(string/map_vote_type)
|
||||
switch(vote_type)
|
||||
if("PLURALITY")
|
||||
SSvote.initiate_vote("map","server",hideresults=TRUE)
|
||||
SSvote.initiate_vote("map","server", display = SHOW_RESULTS)
|
||||
if("APPROVAL")
|
||||
SSvote.initiate_vote("map","server",hideresults=TRUE,votesystem = APPROVAL_VOTING)
|
||||
SSvote.initiate_vote("map","server", display = SHOW_RESULTS, votesystem = APPROVAL_VOTING)
|
||||
if("IRV")
|
||||
SSvote.initiate_vote("map","server",hideresults=TRUE,votesystem = INSTANT_RUNOFF_VOTING)
|
||||
SSvote.initiate_vote("map","server", display = SHOW_RESULTS, votesystem = INSTANT_RUNOFF_VOTING)
|
||||
if("SCORE")
|
||||
SSvote.initiate_vote("map","server",hideresults=TRUE,votesystem = MAJORITY_JUDGEMENT_VOTING)
|
||||
SSvote.initiate_vote("map","server", display = SHOW_RESULTS, votesystem = MAJORITY_JUDGEMENT_VOTING)
|
||||
else
|
||||
SSvote.initiate_vote("map","server",hideresults=TRUE)
|
||||
SSvote.initiate_vote("map","server", display = SHOW_RESULTS)
|
||||
// fallback
|
||||
|
||||
/datum/controller/subsystem/ticker/proc/HasRoundStarted()
|
||||
@@ -503,9 +503,9 @@ SUBSYSTEM_DEF(ticker)
|
||||
SSticker.modevoted = TRUE
|
||||
var/dynamic = CONFIG_GET(flag/dynamic_voting)
|
||||
if(dynamic)
|
||||
SSvote.initiate_vote("dynamic","server",hideresults=TRUE,votesystem=SCORE_VOTING,forced=TRUE,vote_time = 20 MINUTES)
|
||||
SSvote.initiate_vote("dynamic", "server", display = NONE, votesystem = SCORE_VOTING, forced = TRUE,vote_time = 20 MINUTES)
|
||||
else
|
||||
SSvote.initiate_vote("roundtype","server",hideresults=TRUE,votesystem=PLURALITY_VOTING,forced=TRUE, \
|
||||
SSvote.initiate_vote("roundtype", "server", display = NONE, votesystem = PLURALITY_VOTING, forced=TRUE, \
|
||||
vote_time = (CONFIG_GET(flag/modetier_voting) ? 1 MINUTES : 20 MINUTES))
|
||||
|
||||
/datum/controller/subsystem/ticker/Recover()
|
||||
|
||||
@@ -23,7 +23,7 @@ SUBSYSTEM_DEF(vote)
|
||||
var/list/generated_actions = list()
|
||||
var/next_pop = 0
|
||||
|
||||
var/obfuscated = FALSE//CIT CHANGE - adds obfuscated/admin-only votes
|
||||
var/display_votes = SHOW_RESULTS|SHOW_VOTES|SHOW_WINNER|SHOW_ABSTENTION //CIT CHANGE - adds obfuscated/admin-only votes
|
||||
|
||||
var/list/stored_gamemode_votes = list() //Basically the last voted gamemode is stored here for end-of-round use.
|
||||
|
||||
@@ -59,7 +59,7 @@ SUBSYSTEM_DEF(vote)
|
||||
voted.Cut()
|
||||
voting.Cut()
|
||||
scores.Cut()
|
||||
obfuscated = FALSE //CIT CHANGE - obfuscated votes
|
||||
display_votes = initial(display_votes) //CIT CHANGE - obfuscated votes
|
||||
remove_action_buttons()
|
||||
|
||||
/datum/controller/subsystem/vote/proc/get_result()
|
||||
@@ -250,7 +250,7 @@ SUBSYSTEM_DEF(vote)
|
||||
if(winners.len > 0)
|
||||
if(was_roundtype_vote)
|
||||
stored_gamemode_votes = list()
|
||||
if(!obfuscated)
|
||||
if(display_votes & SHOW_RESULTS)
|
||||
if(vote_system == SCHULZE_VOTING)
|
||||
text += "\nIt should be noted that this is not a raw tally of votes (impossible in ranked choice) but the score determined by the schulze method of voting, so the numbers will look weird!"
|
||||
if(vote_system == MAJORITY_JUDGEMENT_VOTING)
|
||||
@@ -261,15 +261,15 @@ SUBSYSTEM_DEF(vote)
|
||||
votes = 0
|
||||
if(was_roundtype_vote)
|
||||
stored_gamemode_votes[choices[i]] = votes
|
||||
text += "\n<b>[choices[i]]:</b> [obfuscated ? "???" : votes]" //CIT CHANGE - adds obfuscated votes
|
||||
text += "\n<b>[choices[i]]:</b> [display_votes & SHOW_RESULTS ? votes : "???"]" //CIT CHANGE - adds obfuscated votes
|
||||
if(mode != "custom")
|
||||
if(winners.len > 1 && !obfuscated) //CIT CHANGE - adds obfuscated votes
|
||||
if(winners.len > 1 && display_votes & SHOW_WINNER) //CIT CHANGE - adds obfuscated votes
|
||||
text = "\n<b>Vote Tied Between:</b>"
|
||||
for(var/option in winners)
|
||||
text += "\n\t[option]"
|
||||
. = pick(winners)
|
||||
text += "\n<b>Vote Result: [obfuscated ? "???" : .]</b>" //CIT CHANGE - adds obfuscated votes
|
||||
else
|
||||
text += "\n<b>Vote Result: [display_votes & SHOW_WINNER ? . : "???"]</b>" //CIT CHANGE - adds obfuscated votes
|
||||
if(display_votes & SHOW_ABSTENTION)
|
||||
text += "\n<b>Did not vote:</b> [GLOB.clients.len-voted.len]"
|
||||
else if(vote_system == SCORE_VOTING)
|
||||
for(var/score_name in scores)
|
||||
@@ -278,7 +278,7 @@ SUBSYSTEM_DEF(vote)
|
||||
score = 0
|
||||
if(was_roundtype_vote)
|
||||
stored_gamemode_votes[score_name] = score
|
||||
text = "\n<b>[score_name]:</b> [obfuscated ? "???" : score]"
|
||||
text = "\n<b>[score_name]:</b> [display_votes & SHOW_RESULTS ? score : "???"]"
|
||||
. = 1
|
||||
else
|
||||
text += "<b>Vote Result: Inconclusive - No Votes!</b>"
|
||||
@@ -295,7 +295,7 @@ SUBSYSTEM_DEF(vote)
|
||||
if(islist(myvote))
|
||||
for(var/j=1,j<=myvote.len,j++)
|
||||
SSblackbox.record_feedback("nested tally","voting",1,list(vote_title_text,"[j]\th",choices[myvote[j]]))
|
||||
if(obfuscated) //CIT CHANGE - adds obfuscated votes. this messages admins with the vote's true results
|
||||
if(!(display_votes & SHOW_RESULTS)) //CIT CHANGE - adds obfuscated votes. this messages admins with the vote's true results
|
||||
var/admintext = "Obfuscated results"
|
||||
if(vote_system != SCORE_VOTING)
|
||||
if(vote_system == SCHULZE_VOTING)
|
||||
@@ -327,7 +327,7 @@ SUBSYSTEM_DEF(vote)
|
||||
if(CONFIG_GET(flag/modetier_voting))
|
||||
reset()
|
||||
started_time = 0
|
||||
initiate_vote("mode tiers","server",hideresults=FALSE,votesystem=SCORE_VOTING,forced=TRUE, vote_time = 30 MINUTES)
|
||||
initiate_vote("mode tiers","server", votesystem=SCORE_VOTING, forced=TRUE, vote_time = 30 MINUTES)
|
||||
to_chat(world,"<b>The vote will end right as the round starts.</b>")
|
||||
return .
|
||||
if("restart")
|
||||
@@ -354,11 +354,15 @@ SUBSYSTEM_DEF(vote)
|
||||
return message_admins("A vote has tried to change the gamemode, but the game has already started. Aborting.")
|
||||
GLOB.master_mode = "dynamic"
|
||||
var/list/runnable_storytellers = config.get_runnable_storytellers()
|
||||
var/datum/dynamic_storyteller/picked
|
||||
for(var/T in runnable_storytellers)
|
||||
var/datum/dynamic_storyteller/S = T
|
||||
if(stored_gamemode_votes[initial(S.name)] == 1 && CHECK_BITFIELD(initial(S.flags), FORCE_IF_WON))
|
||||
picked = S
|
||||
runnable_storytellers[S] *= round(stored_gamemode_votes[initial(S.name)]*100000,1)
|
||||
var/datum/dynamic_storyteller/S = pickweightAllowZero(runnable_storytellers)
|
||||
GLOB.dynamic_storyteller_type = S
|
||||
if(!picked)
|
||||
picked = pickweightAllowZero(runnable_storytellers)
|
||||
GLOB.dynamic_storyteller_type = picked
|
||||
if("map")
|
||||
var/datum/map_config/VM = config.maplist[.]
|
||||
message_admins("The map has been voted for and will change to: [VM.map_name]")
|
||||
@@ -432,7 +436,7 @@ SUBSYSTEM_DEF(vote)
|
||||
saved -= usr.ckey
|
||||
return 0
|
||||
|
||||
/datum/controller/subsystem/vote/proc/initiate_vote(vote_type, initiator_key, hideresults, votesystem = PLURALITY_VOTING, forced = FALSE,vote_time = -1)//CIT CHANGE - adds hideresults argument to votes to allow for obfuscated votes
|
||||
/datum/controller/subsystem/vote/proc/initiate_vote(vote_type, initiator_key, display = display_votes, votesystem = PLURALITY_VOTING, forced = FALSE,vote_time = -1)//CIT CHANGE - adds display argument to votes to allow for obfuscated votes
|
||||
vote_system = votesystem
|
||||
if(!mode)
|
||||
if(started_time)
|
||||
@@ -452,7 +456,7 @@ SUBSYSTEM_DEF(vote)
|
||||
|
||||
SEND_SOUND(world, sound('sound/misc/notice2.ogg'))
|
||||
reset()
|
||||
obfuscated = hideresults //CIT CHANGE - adds obfuscated votes
|
||||
display_votes = display //CIT CHANGE - adds obfuscated votes
|
||||
switch(vote_type)
|
||||
if("restart")
|
||||
choices.Add("Restart Round","Continue Playing")
|
||||
@@ -503,6 +507,21 @@ SUBSYSTEM_DEF(vote)
|
||||
if(!option || mode || !usr.client)
|
||||
break
|
||||
choices.Add(option)
|
||||
var/keep_going = TRUE
|
||||
var/toggles = SHOW_RESULTS|SHOW_VOTES|SHOW_WINNER
|
||||
while(keep_going)
|
||||
var/list/choices = list()
|
||||
for(var/A in GLOB.display_vote_settings)
|
||||
var/toggletext
|
||||
var/bitflag = GLOB.display_vote_settings[A]
|
||||
toggletext = "[toggles & bitflag ? "Show" : "Hide"] [A]"
|
||||
choices[toggletext] = bitflag
|
||||
var/chosen = input(usr, "Toggle vote display settings. Cancel to finalize.", toggles) as null|anything in choices
|
||||
if(!chosen)
|
||||
keep_going = FALSE
|
||||
else
|
||||
toggles ^= choices[chosen]
|
||||
display_votes = toggles
|
||||
else
|
||||
return 0
|
||||
mode = vote_type
|
||||
@@ -573,7 +592,7 @@ SUBSYSTEM_DEF(vote)
|
||||
ivotedforthis = ((C.ckey in voted) && (i in voted[C.ckey]))
|
||||
if(!votes)
|
||||
votes = 0
|
||||
. += "<li>[ivotedforthis ? "<b>" : ""]<a href='?src=[REF(src)];vote=[i]'>[choices[i]]</a> ([obfuscated ? (admin ? "??? ([votes])" : "???") : votes] votes)[ivotedforthis ? "</b>" : ""]</li>" // CIT CHANGE - adds obfuscated votes
|
||||
. += "<li>[ivotedforthis ? "<b>" : ""]<a href='?src=[REF(src)];vote=[i]'>[choices[i]]</a> ([display_votes & SHOW_VOTES ? votes : (admin ? "??? ([votes])" : "???")] votes)[ivotedforthis ? "</b>" : ""]</li>" // CIT CHANGE - adds obfuscated votes
|
||||
if(choice_descs.len >= i)
|
||||
. += "<li>[choice_descs[i]]</li>"
|
||||
. += "</ul><hr>"
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
var/max_distance = 0
|
||||
var/sleep_time = 3
|
||||
var/finished = 0
|
||||
var/target_oldloc = null
|
||||
var/origin_oldloc = null
|
||||
var/turf/target_oldloc
|
||||
var/turf/origin_oldloc
|
||||
var/static_beam = 0
|
||||
var/beam_type = /obj/effect/ebeam //must be subtype
|
||||
var/timing_id = null
|
||||
@@ -23,13 +23,13 @@
|
||||
target_oldloc = get_turf(target)
|
||||
sleep_time = beam_sleep_time
|
||||
if(origin_oldloc == origin && target_oldloc == target)
|
||||
static_beam = 1
|
||||
static_beam = TRUE
|
||||
max_distance = maxdistance
|
||||
base_icon = new(beam_icon,beam_icon_state)
|
||||
icon = beam_icon
|
||||
icon_state = beam_icon_state
|
||||
beam_type = btype
|
||||
if(time < INFINITY)
|
||||
if(time < INFINITY)
|
||||
addtimer(CALLBACK(src,.proc/End), time)
|
||||
|
||||
/datum/beam/proc/Start()
|
||||
@@ -42,10 +42,14 @@
|
||||
return
|
||||
recalculating = TRUE
|
||||
timing_id = null
|
||||
if(origin && target && get_dist(origin,target)<max_distance && origin.z == target.z)
|
||||
var/origin_turf = get_turf(origin)
|
||||
var/target_turf = get_turf(target)
|
||||
if(!static_beam && (origin_turf != origin_oldloc || target_turf != target_oldloc))
|
||||
var/turf/origin_turf
|
||||
if(origin)
|
||||
origin_turf = get_turf(origin)
|
||||
var/turf/target_turf
|
||||
if(target)
|
||||
target_turf = get_turf(target)
|
||||
if(origin_turf && target_turf && (get_dist(origin_turf, target_turf) < max_distance) && (origin_turf.z == target_turf.z))
|
||||
if(!static_beam && ((origin_turf != origin_oldloc) || (target_turf != target_oldloc)))
|
||||
origin_oldloc = origin_turf //so we don't keep checking against their initial positions, leading to endless Reset()+Draw() calls
|
||||
target_oldloc = target_turf
|
||||
Reset()
|
||||
@@ -90,13 +94,15 @@
|
||||
return ..()
|
||||
|
||||
/datum/beam/proc/Draw()
|
||||
var/Angle = round(Get_Angle(origin,target))
|
||||
if(!origin_oldloc || !target_oldloc)
|
||||
return
|
||||
var/Angle = round(Get_Angle(origin_oldloc,target_oldloc))
|
||||
var/matrix/rot_matrix = matrix()
|
||||
rot_matrix.Turn(Angle)
|
||||
|
||||
//Translation vector for origin and target
|
||||
var/DX = (32*target.x+target.pixel_x)-(32*origin.x+origin.pixel_x)
|
||||
var/DY = (32*target.y+target.pixel_y)-(32*origin.y+origin.pixel_y)
|
||||
var/DX = (32*target_oldloc.x+target_oldloc.pixel_x)-(32*origin_oldloc.x+origin_oldloc.pixel_x)
|
||||
var/DY = (32*target_oldloc.y+target_oldloc.pixel_y)-(32*origin_oldloc.y+origin_oldloc.pixel_y)
|
||||
var/N = 0
|
||||
var/length = round(sqrt((DX)**2+(DY)**2)) //hypotenuse of the triangle formed by target and origin's displacement
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
..()
|
||||
make_backseats()
|
||||
get_ghost()
|
||||
RegisterSignal(M, COMSIG_MOB_DEATH, .proc/revert_to_normal)
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/proc/make_backseats()
|
||||
stranger_backseat = new(owner, src)
|
||||
@@ -37,23 +38,23 @@
|
||||
qdel(src)
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/on_life()
|
||||
if(owner.stat == DEAD)
|
||||
if(current_controller != OWNER)
|
||||
switch_personalities()
|
||||
qdel(src)
|
||||
else if(prob(3))
|
||||
if(prob(3))
|
||||
switch_personalities()
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/on_lose()
|
||||
if(current_controller != OWNER) //it would be funny to cure a guy only to be left with the other personality, but it seems too cruel
|
||||
switch_personalities()
|
||||
switch_personalities(TRUE)
|
||||
QDEL_NULL(stranger_backseat)
|
||||
QDEL_NULL(owner_backseat)
|
||||
UnregisterSignal(owner, COMSIG_MOB_DEATH)
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/proc/switch_personalities()
|
||||
if(QDELETED(owner) || owner.stat == DEAD || QDELETED(stranger_backseat) || QDELETED(owner_backseat))
|
||||
/datum/brain_trauma/severe/split_personality/proc/revert_to_normal()
|
||||
qdel(src)
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/proc/switch_personalities(forced = FALSE)
|
||||
if(QDELETED(owner) || (owner.stat == DEAD && !forced) || QDELETED(stranger_backseat) || QDELETED(owner_backseat))
|
||||
return
|
||||
|
||||
var/mob/living/split_personality/current_backseat
|
||||
@@ -126,10 +127,6 @@
|
||||
if(QDELETED(body))
|
||||
qdel(src) //in case trauma deletion doesn't already do it
|
||||
|
||||
if((body.stat == DEAD && trauma.owner_backseat == src))
|
||||
trauma.switch_personalities()
|
||||
qdel(trauma)
|
||||
|
||||
//if one of the two ghosts, the other one stays permanently
|
||||
if(!body.client && trauma.initialized)
|
||||
trauma.switch_personalities()
|
||||
|
||||
@@ -72,9 +72,9 @@
|
||||
|
||||
return {"<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<head>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||||
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
|
||||
[head_content]
|
||||
</head>
|
||||
<body scroll=auto>
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
var/obj/screen/craft/C = new()
|
||||
C.icon = H.ui_style
|
||||
H.static_inventory += C
|
||||
if(!CL.prefs.widescreenpref)
|
||||
C.screen_loc = ui_boxcraft
|
||||
CL.screen += C
|
||||
RegisterSignal(C, COMSIG_CLICK, .proc/component_ui_interact)
|
||||
|
||||
|
||||
@@ -191,20 +191,28 @@
|
||||
|
||||
///////Yes, I said humans. No, this won't end well...//////////
|
||||
/datum/component/riding/human
|
||||
var/fireman_carrying = FALSE
|
||||
|
||||
/datum/component/riding/human/Initialize()
|
||||
. = ..()
|
||||
RegisterSignal(parent, COMSIG_HUMAN_MELEE_UNARMED_ATTACK, .proc/on_host_unarmed_melee)
|
||||
|
||||
/datum/component/riding/human/vehicle_mob_unbuckle(datum/source, mob/living/M, force = FALSE)
|
||||
var/mob/living/carbon/human/H = parent
|
||||
H.remove_movespeed_modifier(MOVESPEED_ID_HUMAN_CARRYING)
|
||||
. = ..()
|
||||
var/mob/living/carbon/human/H = parent
|
||||
if(!length(H.buckled_mobs))
|
||||
H.remove_movespeed_modifier(MOVESPEED_ID_HUMAN_CARRYING)
|
||||
if(!fireman_carrying)
|
||||
M.Daze(25)
|
||||
REMOVE_TRAIT(M, TRAIT_MOBILITY_NOUSE, src)
|
||||
|
||||
/datum/component/riding/human/vehicle_mob_buckle(datum/source, mob/living/M, force = FALSE)
|
||||
. = ..()
|
||||
var/mob/living/carbon/human/H = parent
|
||||
H.add_movespeed_modifier(MOVESPEED_ID_HUMAN_CARRYING, multiplicative_slowdown = HUMAN_CARRY_SLOWDOWN)
|
||||
if(length(H.buckled_mobs))
|
||||
H.add_movespeed_modifier(MOVESPEED_ID_HUMAN_CARRYING, multiplicative_slowdown = fireman_carrying? FIREMAN_CARRY_SLOWDOWN : PIGGYBACK_CARRY_SLOWDOWN)
|
||||
if(fireman_carrying)
|
||||
ADD_TRAIT(M, TRAIT_MOBILITY_NOUSE, src)
|
||||
|
||||
/datum/component/riding/human/proc/on_host_unarmed_melee(atom/target)
|
||||
var/mob/living/carbon/human/H = parent
|
||||
@@ -236,11 +244,11 @@
|
||||
else
|
||||
return list(TEXT_NORTH = list(0, 6), TEXT_SOUTH = list(0, 6), TEXT_EAST = list(-6, 4), TEXT_WEST = list( 6, 4))
|
||||
|
||||
|
||||
/datum/component/riding/human/force_dismount(mob/living/user)
|
||||
var/atom/movable/AM = parent
|
||||
AM.unbuckle_mob(user)
|
||||
user.DefaultCombatKnockdown(60)
|
||||
user.Daze(50)
|
||||
user.visible_message("<span class='warning'>[AM] pushes [user] off of [AM.p_them()]!</span>")
|
||||
|
||||
/datum/component/riding/cyborg
|
||||
|
||||
@@ -175,6 +175,7 @@
|
||||
var/html = {"
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||||
<title>[title]</title>
|
||||
<style>
|
||||
body {
|
||||
|
||||
@@ -412,13 +412,13 @@
|
||||
|
||||
switch(deconstruct_block(getblock(dna.uni_identity, DNA_GENDER_BLOCK), 4))
|
||||
if(G_MALE)
|
||||
set_gender(MALE, TRUE)
|
||||
set_gender(MALE, TRUE, forced = TRUE)
|
||||
if(G_FEMALE)
|
||||
set_gender(FEMALE, TRUE)
|
||||
set_gender(FEMALE, TRUE, forced = TRUE)
|
||||
if(G_PLURAL)
|
||||
set_gender(PLURAL, TRUE)
|
||||
set_gender(PLURAL, TRUE, forced = TRUE)
|
||||
else
|
||||
set_gender(NEUTER, TRUE)
|
||||
set_gender(NEUTER, TRUE, forced = TRUE)
|
||||
|
||||
/mob/living/carbon/human/updateappearance(icon_update=1, mutcolor_update=0, mutations_overlay_update=0)
|
||||
..()
|
||||
|
||||
@@ -72,7 +72,7 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
|
||||
var/atom/target = locate(href_list["show_flavor"])
|
||||
var/text = texts_by_atom[target]
|
||||
if(text)
|
||||
usr << browse("<HTML><HEAD><TITLE>[target.name]</TITLE></HEAD><BODY><TT>[replacetext(texts_by_atom[target], "\n", "<BR>")]</TT></BODY></HTML>", "window=[target.name];size=500x200")
|
||||
usr << browse("<HTML><HEAD><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><TITLE>[target.name]</TITLE></HEAD><BODY><TT>[replacetext(texts_by_atom[target], "\n", "<BR>")]</TT></BODY></HTML>", "window=[target.name];size=500x200")
|
||||
onclose(usr, "[target.name]")
|
||||
return TRUE
|
||||
|
||||
@@ -114,6 +114,9 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
|
||||
|
||||
//subtypes with additional hooks for DNA and preferences.
|
||||
/datum/element/flavor_text/carbon
|
||||
//list of antagonists etcetera that should have nothing to do with people's snowflakes.
|
||||
var/static/list/i_dont_even_know_who_you_are = typecacheof(list(/datum/antagonist/abductor, /datum/antagonist/ert,
|
||||
/datum/antagonist/nukeop, /datum/antagonist/wizard))
|
||||
|
||||
/datum/element/flavor_text/carbon/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FLAVOR_LEN, _always_show = FALSE, _edit = TRUE)
|
||||
if(!iscarbon(target))
|
||||
@@ -122,6 +125,7 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
|
||||
if(. == ELEMENT_INCOMPATIBLE)
|
||||
return
|
||||
RegisterSignal(target, COMSIG_CARBON_IDENTITY_TRANSFERRED_TO, .proc/update_dna_flavor_text)
|
||||
RegisterSignal(target, COMSIG_MOB_ANTAG_ON_GAIN, .proc/on_antag_gain)
|
||||
if(ishuman(target))
|
||||
RegisterSignal(target, COMSIG_HUMAN_PREFS_COPIED_TO, .proc/update_prefs_flavor_text)
|
||||
RegisterSignal(target, COMSIG_HUMAN_HARDSET_DNA, .proc/update_dna_flavor_text)
|
||||
@@ -129,7 +133,7 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
|
||||
|
||||
/datum/element/flavor_text/carbon/Detach(mob/living/carbon/C)
|
||||
. = ..()
|
||||
UnregisterSignal(C, list(COMSIG_CARBON_IDENTITY_TRANSFERRED_TO, COMSIG_HUMAN_PREFS_COPIED_TO, COMSIG_HUMAN_HARDSET_DNA, COMSIG_HUMAN_ON_RANDOMIZE))
|
||||
UnregisterSignal(C, list(COMSIG_CARBON_IDENTITY_TRANSFERRED_TO, COMSIG_MOB_ANTAG_ON_GAIN, COMSIG_HUMAN_PREFS_COPIED_TO, COMSIG_HUMAN_HARDSET_DNA, COMSIG_HUMAN_ON_RANDOMIZE))
|
||||
|
||||
/datum/element/flavor_text/carbon/proc/update_dna_flavor_text(mob/living/carbon/C)
|
||||
texts_by_atom[C] = C.dna.features["flavor_text"]
|
||||
@@ -144,3 +148,9 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code
|
||||
|
||||
/datum/element/flavor_text/carbon/proc/unset_flavor(mob/living/carbon/user)
|
||||
texts_by_atom[user] = ""
|
||||
|
||||
/datum/element/flavor_text/carbon/proc/on_antag_gain(mob/living/carbon/user, datum/antagonist/antag)
|
||||
if(is_type_in_typecache(antag, i_dont_even_know_who_you_are))
|
||||
texts_by_atom[user] = ""
|
||||
if(user.dna)
|
||||
user.dna.features["flavor_text"] = ""
|
||||
@@ -15,4 +15,4 @@
|
||||
|
||||
/datum/element/sword_point/proc/point(datum/source, atom/target, mob/user, proximity_flag, params)
|
||||
if(!proximity_flag && ismob(target))
|
||||
user.visible_message("<span class='notice'>[user] points the tip of [source] at [target].</span>", "<span class='notice'>You point the tip of [src] at [target].</span>")
|
||||
user.visible_message("<span class='notice'>[user] points the tip of [source] at [target].</span>", "<span class='notice'>You point the tip of [source] at [target].</span>")
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
D.apply_damage(damage, STAMINA, affecting, armor_block)
|
||||
log_combat(A, D, "punched (boxing) ")
|
||||
if(D.getStaminaLoss() > 100)
|
||||
if(D.getStaminaLoss() > 100 && istype(D.mind?.martial_art, /datum/martial_art/boxing))
|
||||
var/knockout_prob = (D.getStaminaLoss() + rand(-15,15))*0.75
|
||||
if((D.stat != DEAD) && prob(knockout_prob))
|
||||
D.visible_message("<span class='danger'>[A] has knocked [D] out with a haymaker!</span>", \
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
name = "Asteroid 1"
|
||||
description = "I-spy with my little eye, something beginning with R."
|
||||
|
||||
|
||||
/datum/map_template/ruin/space/asteroid2
|
||||
id = "asteroid2"
|
||||
suffix = "asteroid2.dmm"
|
||||
@@ -187,6 +186,7 @@
|
||||
name = "Abandoned Teleporter"
|
||||
description = "In space construction the teleporter is often the first system brought online. \
|
||||
This lonely half built teleporter is a sign of a proposed structure that for one reason or another just never got built."
|
||||
always_place = TRUE
|
||||
|
||||
/datum/map_template/ruin/space/crashedclownship
|
||||
id = "crashedclownship"
|
||||
@@ -268,6 +268,7 @@
|
||||
suffix = "whiteshipdock.dmm"
|
||||
name = "Whiteship Dock"
|
||||
description = "An abandoned but functional vessel parked in deep space, ripe for the taking."
|
||||
always_place = TRUE
|
||||
|
||||
/datum/map_template/ruin/space/cat_experiments
|
||||
id = "meow"
|
||||
@@ -287,6 +288,7 @@
|
||||
suffix = "hilbertshoteltestingsite.dmm"
|
||||
name = "Hilbert Research Facility"
|
||||
description = "A research facility of great bluespace discoveries. Long since abandoned, willingly or not..."
|
||||
|
||||
/datum/map_template/ruin/space/augmentation
|
||||
id = "augmentationfacility"
|
||||
suffix = "augmentationfacility.dmm"
|
||||
@@ -376,13 +378,13 @@
|
||||
id = "roid8"
|
||||
suffix = "roid8.dmm"
|
||||
name = "Dead wizard Roid"
|
||||
description = "Mineral asteroid. Ft. Dead wizard and toilet paradox bag."
|
||||
description = "Mineral asteroid. Ft. Dead wizard and toilet wand."
|
||||
|
||||
/datum/map_template/ruin/spacenearstation/roid9
|
||||
id = "roid9"
|
||||
suffix = "roid9.dmm"
|
||||
name = "Monitoring Roid"
|
||||
description = "Mineral asteroid. Ft. Station monitoring, syndie toolbox and erp."
|
||||
description = "Mineral asteroid. Ft. Station monitoring, toolbox and erp."
|
||||
|
||||
/datum/map_template/ruin/spacenearstation/roid10
|
||||
id = "roid10"
|
||||
|
||||
@@ -90,6 +90,7 @@
|
||||
/datum/status_effect/staggered
|
||||
id = "staggered"
|
||||
blocks_sprint = TRUE
|
||||
alert_type = null
|
||||
|
||||
/datum/status_effect/staggered/on_creation(mob/living/new_owner, set_duration)
|
||||
if(isnum(set_duration))
|
||||
|
||||
@@ -88,14 +88,6 @@
|
||||
if(quirk_holder)
|
||||
quirk_holder.remove_client_colour(/datum/client_colour/monochrome)
|
||||
|
||||
/datum/quirk/libido
|
||||
name = "Nymphomania"
|
||||
desc = "You're always feeling a bit in heat. Also, you get aroused faster than usual."
|
||||
value = 0
|
||||
mob_trait = TRAIT_PERMABONER
|
||||
gain_text = "<span class='notice'>You are feeling extra wild.</span>"
|
||||
lose_text = "<span class='notice'>You don't feel that burning sensation anymore.</span>"
|
||||
|
||||
/datum/quirk/maso
|
||||
name = "Masochism"
|
||||
desc = "You are aroused by pain."
|
||||
|
||||
@@ -39,6 +39,37 @@
|
||||
|
||||
var/zfalling = FALSE
|
||||
|
||||
/// Either FALSE, [EMISSIVE_BLOCK_GENERIC], or [EMISSIVE_BLOCK_UNIQUE]
|
||||
var/blocks_emissive = FALSE
|
||||
///Internal holder for emissive blocker object, do not use directly use blocks_emissive
|
||||
var/atom/movable/emissive_blocker/em_block
|
||||
|
||||
|
||||
/atom/movable/Initialize(mapload)
|
||||
. = ..()
|
||||
switch(blocks_emissive)
|
||||
if(EMISSIVE_BLOCK_GENERIC)
|
||||
update_emissive_block()
|
||||
if(EMISSIVE_BLOCK_UNIQUE)
|
||||
render_target = ref(src)
|
||||
em_block = new(src, render_target)
|
||||
vis_contents += em_block
|
||||
|
||||
/atom/movable/Destroy()
|
||||
QDEL_NULL(em_block)
|
||||
return ..()
|
||||
|
||||
/atom/movable/proc/update_emissive_block()
|
||||
if(blocks_emissive != EMISSIVE_BLOCK_GENERIC)
|
||||
return
|
||||
if(length(managed_vis_overlays))
|
||||
for(var/a in managed_vis_overlays)
|
||||
var/obj/effect/overlay/vis/vs
|
||||
if(vs.plane == EMISSIVE_BLOCKER_PLANE)
|
||||
SSvis_overlays.remove_vis_overlay(src, list(vs))
|
||||
break
|
||||
SSvis_overlays.add_vis_overlay(src, icon, icon_state, EMISSIVE_BLOCKER_LAYER, EMISSIVE_BLOCKER_PLANE)
|
||||
|
||||
/atom/movable/proc/can_zFall(turf/source, levels = 1, turf/target, direction)
|
||||
if(!direction)
|
||||
direction = DOWN
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
antag_flag = ROLE_BLOODSUCKER
|
||||
false_report_weight = 1
|
||||
restricted_jobs = list("AI","Cyborg")
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
|
||||
protected_jobs = list("Chaplain", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
|
||||
required_players = 20
|
||||
required_enemies = 2
|
||||
recommended_enemies = 4
|
||||
|
||||
@@ -88,13 +88,13 @@ GLOBAL_VAR(changeling_team_objective_type) //If this is not null, we hand our th
|
||||
user.underwear = chosen_prof.underwear
|
||||
user.undie_color = chosen_prof.undie_color
|
||||
user.undershirt = chosen_prof.undershirt
|
||||
user.shirt_color =chosen_prof.shirt_color
|
||||
user.shirt_color = chosen_prof.shirt_color
|
||||
user.socks = chosen_prof.socks
|
||||
user.socks_color =chosen_prof.socks_color
|
||||
|
||||
chosen_dna.transfer_identity(user, 1)
|
||||
user.updateappearance(mutcolor_update=1)
|
||||
user.update_body()
|
||||
user.update_body(TRUE)
|
||||
user.domutcheck()
|
||||
|
||||
//vars hackery. not pretty, but better than the alternative.
|
||||
|
||||
@@ -351,5 +351,5 @@ Credit where due:
|
||||
|
||||
/obj/item/paper/servant_primer/oui_getcontent(mob/target)
|
||||
if(!is_servant_of_ratvar(target) && !isobserver(target))
|
||||
return "<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[stars(info)]<HR>[stamps]</BODY></HTML>"
|
||||
return "<HTML><HEAD><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><TITLE>[name]</TITLE></HEAD><BODY>[stars(info)]<HR>[stamps]</BODY></HTML>"
|
||||
return ..()
|
||||
|
||||
@@ -54,16 +54,16 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
|
||||
// Current storyteller
|
||||
var/datum/dynamic_storyteller/storyteller = null
|
||||
// Threat logging vars
|
||||
/// The "threat cap", threat shouldn't normally go above this and is used in ruleset calculations
|
||||
/// Target threat level right now. Events and antags will try to keep the round at this level.
|
||||
var/threat_level = 0
|
||||
/// Set at the beginning of the round. Spent by the mode to "purchase" rules.
|
||||
var/threat = 0
|
||||
/// The current antag threat. Recalculated every time a ruletype starts or ends.
|
||||
var/threat = 0
|
||||
/// Starting threat level, for things that increase it but can bring it back down.
|
||||
var/initial_threat_level = 0
|
||||
/// Things that cause a rolling threat adjustment to be displayed at roundend.
|
||||
var/list/threat_tallies = list()
|
||||
/// Running information about the threat. Can store text or datum entries.
|
||||
var/list/threat_log = list()
|
||||
var/list/threat_log = list()
|
||||
/// As above, but with info such as refunds.
|
||||
var/list/threat_log_verbose = list()
|
||||
/// List of roundstart rules used for selecting the rules.
|
||||
@@ -127,6 +127,8 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
|
||||
var/only_ruleset_executed = FALSE
|
||||
/// Antags rolled by rules so far, to keep track of and discourage scaling past a certain ratio of crew/antags especially on lowpop.
|
||||
var/antags_rolled = 0
|
||||
// Arbitrary threat addition, for fudging purposes.
|
||||
var/added_threat = 50
|
||||
|
||||
/datum/game_mode/dynamic/New() // i have NO IDEA if this is the proper way to do this.
|
||||
..()
|
||||
@@ -150,11 +152,11 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
|
||||
GLOB.dynamic_first_midround_delay_max = CONFIG_GET(number/dynamic_first_midround_delay_max)*600
|
||||
|
||||
/datum/game_mode/dynamic/admin_panel()
|
||||
var/list/dat = list("<html><head><title>Game Mode Panel</title></head><body><h1><B>Game Mode Panel</B></h1>")
|
||||
var/list/dat = list("<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>Game Mode Panel</title></head><body><h1><B>Game Mode Panel</B></h1>")
|
||||
dat += "Dynamic Mode <a href='?_src_=vars;[HrefToken()];Vars=[REF(src)]'>\[VV\]</A><a href='?src=\ref[src];[HrefToken()]'>\[Refresh\]</A><BR>"
|
||||
dat += "Threat Level: <b>[threat_level]</b><br/>"
|
||||
dat += "Target threat: <b>[threat_level]</b><br/>"
|
||||
|
||||
dat += "Threat to Spend: <b>[threat]</b> <a href='?src=\ref[src];[HrefToken()];adjustthreat=1'>\[Adjust\]</A> <a href='?src=\ref[src];[HrefToken()];threatlog=1'>\[View Log\]</a><br/>"
|
||||
dat += "Current threat: <b>[threat]</b> <a href='?src=\ref[src];[HrefToken()];adjustthreat=1'>\[Adjust\]</A> <a href='?src=\ref[src];[HrefToken()];threatlog=1'>\[View Log\]</a><br/>"
|
||||
dat += "<br/>"
|
||||
dat += "Storyteller: <b>[storyteller.name]</b><br/>"
|
||||
dat += "Parameters: centre = [GLOB.dynamic_curve_centre] ; width = [GLOB.dynamic_curve_width].<br/>"
|
||||
@@ -172,9 +174,9 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
|
||||
else
|
||||
dat += "none.<br>"
|
||||
dat += "<br>Injection Timers: (<b>[storyteller.get_injection_chance(TRUE)]%</b> chance)<BR>"
|
||||
dat += "Latejoin: [(latejoin_injection_cooldown-world.time)>60*10 ? "[round((latejoin_injection_cooldown-world.time)/60/10,0.1)] minutes" : "[(latejoin_injection_cooldown-world.time)] seconds"] <a href='?src=\ref[src];[HrefToken()];injectlate=1'>\[Now!\]</a><BR>"
|
||||
dat += "Midround: [(midround_injection_cooldown-world.time)>60*10 ? "[round((midround_injection_cooldown-world.time)/60/10,0.1)] minutes" : "[(midround_injection_cooldown-world.time)] seconds"] <a href='?src=\ref[src];[HrefToken()];injectmid=1'>\[Now!\]</a><BR>"
|
||||
dat += "Event: [(event_injection_cooldown-world.time)>60*10 ? "[round((event_injection_cooldown-world.time)/60/10,0.1)] minutes" : "[(event_injection_cooldown-world.time)] seconds"] <a href='?src=\ref[src];[HrefToken()];forceevent=1'>\[Now!\]</a><BR>"
|
||||
dat += "Latejoin: [(latejoin_injection_cooldown-world.time)>60*10 ? "[round((latejoin_injection_cooldown-world.time)/60/10,0.1)] minutes" : "[(latejoin_injection_cooldown-world.time)/10] seconds"] <a href='?src=\ref[src];[HrefToken()];injectlate=1'>\[Now!\]</a><BR>"
|
||||
dat += "Midround: [(midround_injection_cooldown-world.time)>60*10 ? "[round((midround_injection_cooldown-world.time)/60/10,0.1)] minutes" : "[(midround_injection_cooldown-world.time)/10] seconds"] <a href='?src=\ref[src];[HrefToken()];injectmid=1'>\[Now!\]</a><BR>"
|
||||
dat += "Event: [(event_injection_cooldown-world.time)>60*10 ? "[round((event_injection_cooldown-world.time)/60/10,0.1)] minutes" : "[(event_injection_cooldown-world.time)/10] seconds"] <a href='?src=\ref[src];[HrefToken()];forceevent=1'>\[Now!\]</a><BR>"
|
||||
usr << browse(dat.Join(), "window=gamemode_panel;size=500x500")
|
||||
|
||||
/datum/game_mode/dynamic/Topic(href, href_list)
|
||||
@@ -261,11 +263,11 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
|
||||
. += "<b>Uncharted Space</b></center><BR>"
|
||||
. += "Congratulations and thank you for participating in the NT 'Frontier' space program! Your station is actively orbiting a high value system far from the nearest support stations. Little is known about your region of space, and the opportunity to encounter the unknown invites greater glory. You are encouraged to elevate security as necessary to protect Nanotrasen assets."
|
||||
set_security_level(SEC_LEVEL_BLUE)
|
||||
if(80 to 99)
|
||||
if(80 to 95)
|
||||
. += "<b>Black Orbit</b></center><BR>"
|
||||
. += "As part of a mandatory security protocol, we are required to inform you that as a result of your orbital pattern directly behind an astrological body (oriented from our nearest observatory), your station will be under decreased monitoring and support. It is anticipated that your extreme location and decreased surveillance could pose security risks. Avoid unnecessary risks and attempt to keep your station in one piece."
|
||||
set_security_level(SEC_LEVEL_AMBER)
|
||||
if(100)
|
||||
if(96 to 100)
|
||||
. += "<b>Impending Doom</b></center><BR>"
|
||||
. += "Your station is somehow in the middle of hostile territory, in clear view of any enemy of the corporation. Your likelihood to survive is low, and station destruction is expected and almost inevitable. Secure any sensitive material and neutralize any enemy you will come across. It is important that you at least try to maintain the station.<BR>"
|
||||
. += "Good luck."
|
||||
@@ -330,7 +332,6 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
|
||||
|
||||
peaceful_percentage = round(LORENTZ_CUMULATIVE_DISTRIBUTION(relative_threat, GLOB.dynamic_curve_centre, GLOB.dynamic_curve_width), 0.01)*100
|
||||
|
||||
threat = threat_level
|
||||
SSblackbox.record_feedback("tally","dynamic_threat",threat_level,"Initial threat level")
|
||||
SSblackbox.record_feedback("tally","dynamic_threat",GLOB.dynamic_curve_centre,"Curve centre")
|
||||
SSblackbox.record_feedback("tally","dynamic_threat",GLOB.dynamic_curve_width,"Curve width")
|
||||
@@ -340,9 +341,10 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
|
||||
storyteller = new GLOB.dynamic_storyteller_type // this is where all the initialization happens
|
||||
storyteller.on_start()
|
||||
SSblackbox.record_feedback("text","dynamic_storyteller",1,storyteller.name)
|
||||
message_admins("Dynamic mode parameters for the round:")
|
||||
message_admins("Centre is [GLOB.dynamic_curve_centre], Width is [GLOB.dynamic_curve_width], Forced extended is [GLOB.dynamic_forced_extended ? "Enabled" : "Disabled"], No stacking is [GLOB.dynamic_no_stacking ? "Enabled" : "Disabled"].")
|
||||
message_admins("Stacking limit is [GLOB.dynamic_stacking_limit], Classic secret is [GLOB.dynamic_classic_secret ? "Enabled" : "Disabled"], High population limit is [GLOB.dynamic_high_pop_limit].")
|
||||
message_admins("Dynamic mode parameters for the round:\n\
|
||||
Storyteller is [storyteller.name].\n\
|
||||
Centre is [GLOB.dynamic_curve_centre], Width is [GLOB.dynamic_curve_width], Forced extended is [GLOB.dynamic_forced_extended ? "Enabled" : "Disabled"], No stacking is [GLOB.dynamic_no_stacking ? "Enabled" : "Disabled"].\n\
|
||||
Stacking limit is [GLOB.dynamic_stacking_limit], Classic secret is [GLOB.dynamic_classic_secret ? "Enabled" : "Disabled"], High population limit is [GLOB.dynamic_high_pop_limit].")
|
||||
log_game("DYNAMIC: Dynamic mode parameters for the round:")
|
||||
log_game("DYNAMIC: Centre is [GLOB.dynamic_curve_centre], Width is [GLOB.dynamic_curve_width], Forced extended is [GLOB.dynamic_forced_extended ? "Enabled" : "Disabled"], No stacking is [GLOB.dynamic_no_stacking ? "Enabled" : "Disabled"].")
|
||||
log_game("DYNAMIC: Stacking limit is [GLOB.dynamic_stacking_limit], Classic secret is [GLOB.dynamic_classic_secret ? "Enabled" : "Disabled"], High population limit is [GLOB.dynamic_high_pop_limit].")
|
||||
@@ -404,7 +406,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
|
||||
|
||||
/datum/game_mode/dynamic/post_setup(report)
|
||||
update_playercounts()
|
||||
|
||||
|
||||
for(var/datum/dynamic_ruleset/roundstart/rule in executed_rules)
|
||||
addtimer(CALLBACK(src, /datum/game_mode/dynamic/.proc/execute_roundstart_rule, rule), rule.delay)
|
||||
..()
|
||||
@@ -463,7 +465,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
|
||||
log_game("DYNAMIC: Additional ruleset picked successfully, now [executed_rules.len] picked. [extra_rulesets_amount] remaining.")
|
||||
else
|
||||
|
||||
if(threat >= 50)
|
||||
if(threat_level >= 50)
|
||||
message_admins("DYNAMIC: Picking first roundstart ruleset failed. You should report this.")
|
||||
log_game("DYNAMIC: Picking first roundstart ruleset failed. drafted_rules.len = [drafted_rules.len] and threat = [threat]/[threat_level]")
|
||||
return FALSE
|
||||
@@ -509,10 +511,9 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
|
||||
drafted_rules -= starting_rule
|
||||
|
||||
starting_rule.trim_candidates()
|
||||
var/added_threat = starting_rule.scale_up(extra_rulesets_amount, threat)
|
||||
starting_rule.scale_up(extra_rulesets_amount, threat)
|
||||
if (starting_rule.pre_execute())
|
||||
spend_threat(starting_rule.cost + added_threat)
|
||||
log_threat("[starting_rule.ruletype] - <b>[starting_rule.name]</b> -[starting_rule.cost + starting_rule.scaled_times * starting_rule.scaling_cost] threat", verbose = TRUE)
|
||||
log_threat("[starting_rule.ruletype] - <b>[starting_rule.name]</b> [starting_rule.cost + starting_rule.scaled_times * starting_rule.scaling_cost] threat", verbose = TRUE)
|
||||
if(starting_rule.flags & HIGHLANDER_RULESET)
|
||||
highlander_executed = TRUE
|
||||
else if(starting_rule.flags & ONLY_RULESET)
|
||||
@@ -534,8 +535,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
|
||||
/datum/game_mode/dynamic/proc/execute_roundstart_rule(sent_rule)
|
||||
var/datum/dynamic_ruleset/rule = sent_rule
|
||||
if(rule.execute())
|
||||
if(rule.persistent)
|
||||
current_rules += rule
|
||||
current_rules += rule
|
||||
SSblackbox.record_feedback("associative","dynamic_rulesets",1,rule.get_blackbox_info())
|
||||
return TRUE
|
||||
rule.clean_up() // Refund threat, delete teams and so on.
|
||||
@@ -607,8 +607,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
|
||||
if ((forced || (new_rule.acceptable(current_players[CURRENT_LIVING_PLAYERS].len, threat_level) && new_rule.cost <= threat)))
|
||||
new_rule.trim_candidates()
|
||||
if (new_rule.ready(forced))
|
||||
spend_threat(new_rule.cost)
|
||||
log_threat("[new_rule.ruletype] - <b>[new_rule.name]</b> -[new_rule.cost] threat", verbose = TRUE)
|
||||
log_threat("[new_rule.ruletype] - <b>[new_rule.name]</b> [new_rule.cost] threat", verbose = TRUE)
|
||||
if (new_rule.execute()) // This should never fail since ready() returned 1
|
||||
if(new_rule.flags & HIGHLANDER_RULESET)
|
||||
highlander_executed = TRUE
|
||||
@@ -617,8 +616,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
|
||||
log_game("DYNAMIC: Making a call to a specific ruleset...[new_rule.name]!")
|
||||
SSblackbox.record_feedback("associative","dynamic_rulesets",1,new_rule.get_blackbox_info())
|
||||
executed_rules += new_rule
|
||||
if (new_rule.persistent)
|
||||
current_rules += new_rule
|
||||
current_rules += new_rule
|
||||
return TRUE
|
||||
else if (forced)
|
||||
log_game("DYNAMIC: The ruleset [new_rule.name] couldn't be executed due to lack of eligible players.")
|
||||
@@ -629,8 +627,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
|
||||
var/datum/dynamic_ruleset/rule = sent_rule
|
||||
if (rule.execute())
|
||||
log_game("DYNAMIC: Injected a [rule.ruletype == "latejoin" ? "latejoin" : "midround"] ruleset [rule.name].")
|
||||
spend_threat(rule.cost)
|
||||
log_threat("[rule.ruletype] [rule.name] spent [rule.cost]", verbose = TRUE)
|
||||
log_threat("[rule.ruletype] [rule.name] added [rule.cost]", verbose = TRUE)
|
||||
if(rule.flags & HIGHLANDER_RULESET)
|
||||
highlander_executed = TRUE
|
||||
else if(rule.flags & ONLY_RULESET)
|
||||
@@ -649,7 +646,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
|
||||
return FALSE
|
||||
|
||||
/datum/game_mode/dynamic/process()
|
||||
if (pop_last_updated < world.time - (60 SECONDS))
|
||||
if (pop_last_updated < world.time - (120 SECONDS))
|
||||
pop_last_updated = world.time
|
||||
update_playercounts()
|
||||
|
||||
@@ -658,9 +655,9 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
|
||||
current_rules -= rule
|
||||
SSblackbox.record_feedback("tally","dynamic",1,"Rulesets finished")
|
||||
SSblackbox.record_feedback("associative","dynamic_rulesets_finished",1,rule.get_blackbox_info())
|
||||
|
||||
|
||||
storyteller.do_process()
|
||||
|
||||
|
||||
if (midround_injection_cooldown < world.time)
|
||||
if (GLOB.dynamic_forced_extended)
|
||||
return
|
||||
@@ -717,7 +714,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
|
||||
current_players[CURRENT_OBSERVERS].Add(M)
|
||||
continue
|
||||
current_players[CURRENT_DEAD_PLAYERS].Add(M) // Players who actually died (and admins who ghosted, would be nice to avoid counting them somehow)
|
||||
|
||||
threat = storyteller.calculate_threat() + added_threat
|
||||
/// Removes type from the list
|
||||
/datum/game_mode/dynamic/proc/remove_from_list(list/type_list, type)
|
||||
for(var/I in type_list)
|
||||
@@ -767,25 +764,23 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic)
|
||||
SSblackbox.record_feedback("tally","dynamic",1,"Successful latejoin injections")
|
||||
latejoin_injection_cooldown = storyteller.get_latejoin_cooldown() + world.time
|
||||
|
||||
/// Refund threat, but no more than threat_level.
|
||||
/datum/game_mode/dynamic/proc/refund_threat(regain)
|
||||
threat = min(threat_level,threat+regain)
|
||||
SSblackbox.record_feedback("tally","dynamic_threat",regain,"Refunded threat")
|
||||
log_threat("[regain] refunded. Threat is now [threat].", verbose = TRUE)
|
||||
|
||||
/// Generate threat and increase the threat_level if it goes beyond, capped at 100
|
||||
/// Increase the threat level.
|
||||
/datum/game_mode/dynamic/proc/create_threat(gain)
|
||||
threat = min(100, threat+gain)
|
||||
if(threat > threat_level)
|
||||
threat_level = threat
|
||||
SSblackbox.record_feedback("tally","dynamic_threat",gain,"Created threat")
|
||||
log_threat("[gain] created. Threat is now [threat] and threat level is now [threat_level].", verbose = TRUE)
|
||||
threat_level += gain
|
||||
SSblackbox.record_feedback("tally","dynamic_threat",gain,"Created threat level")
|
||||
log_threat("[gain] created. Threat level is now [threat_level].", verbose = TRUE)
|
||||
|
||||
/// Expend threat, can't fall under 0.
|
||||
/// Decrease the threat level.
|
||||
/datum/game_mode/dynamic/proc/remove_threat(loss)
|
||||
threat_level -= loss
|
||||
SSblackbox.record_feedback("tally","dynamic_threat",loss,"Removed threat level")
|
||||
log_threat("[loss] removed. Threat level is now [threat_level].", verbose = TRUE)
|
||||
|
||||
/// Fill up more of the threat level.
|
||||
/datum/game_mode/dynamic/proc/spend_threat(cost)
|
||||
threat = max(threat-cost,0)
|
||||
SSblackbox.record_feedback("tally","dynamic_threat",cost,"Threat spent")
|
||||
log_threat("[cost] spent. Threat is now [threat].", verbose = TRUE)
|
||||
added_threat += cost
|
||||
SSblackbox.record_feedback("tally","dynamic_threat",cost,"Threat added")
|
||||
log_threat("[cost] added. Threat is now [threat].", verbose = TRUE)
|
||||
|
||||
/// Turns the value generated by lorentz distribution to threat value between 0 and 100.
|
||||
/datum/game_mode/dynamic/proc/lorentz_to_threat(x)
|
||||
|
||||
@@ -174,8 +174,8 @@
|
||||
|
||||
/// This is called if persistent variable is true everytime SSTicker ticks.
|
||||
/datum/dynamic_ruleset/proc/rule_process()
|
||||
return
|
||||
|
||||
return TRUE
|
||||
|
||||
/// Called on game mode pre_setup for roundstart rulesets.
|
||||
/// Do everything you need to do before job is assigned here.
|
||||
/// IMPORTANT: ASSIGN special_role HERE
|
||||
@@ -201,8 +201,7 @@
|
||||
/// Runs from gamemode process() if ruleset fails to start, like delayed rulesets not getting valid candidates.
|
||||
/// This one only handles refunding the threat, override in ruleset to clean up the rest.
|
||||
/datum/dynamic_ruleset/proc/clean_up()
|
||||
mode.refund_threat(cost + (scaled_times * scaling_cost))
|
||||
mode.log_threat("[ruletype] [name] refunded [cost + (scaled_times * scaling_cost)]",verbose=TRUE)
|
||||
return
|
||||
|
||||
/// Gets weight of the ruleset
|
||||
/// Note that this decreases weight if repeatable is TRUE and repeatable_weight_decrease is higher than 0
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
if (M.mind && M.mind.assigned_role && (M.mind.assigned_role in enemy_roles) && (!(M in candidates) || (M.mind.assigned_role in restricted_roles)))
|
||||
job_check++ // Checking for "enemies" (such as sec officers). To be counters, they must either not be candidates to that rule, or have a job that restricts them from it
|
||||
|
||||
var/threat = round(mode.threat_level/10)
|
||||
var/threat = CLAMP(round(mode.threat_level/10),1,10)
|
||||
if (job_check < required_enemies[threat])
|
||||
SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough enemy roles")
|
||||
return FALSE
|
||||
@@ -216,7 +216,7 @@
|
||||
var/player_count = mode.current_players[CURRENT_LIVING_PLAYERS].len
|
||||
var/antag_count = mode.current_players[CURRENT_LIVING_ANTAGS].len
|
||||
var/max_traitors = round(player_count / 10) + 1
|
||||
if ((antag_count < max_traitors) && prob(mode.threat_level))//adding traitors if the antag population is getting low
|
||||
if ((antag_count < max_traitors) && prob(min(100,mode.threat_level)))//adding traitors if the antag population is getting low
|
||||
return ..()
|
||||
else
|
||||
return FALSE
|
||||
@@ -315,7 +315,6 @@
|
||||
/datum/dynamic_ruleset/midround/from_ghosts/wizard
|
||||
name = "Wizard"
|
||||
config_tag = "midround_wizard"
|
||||
persistent = TRUE
|
||||
antag_datum = /datum/antagonist/wizard
|
||||
antag_flag = ROLE_WIZARD
|
||||
enemy_roles = list("Security Officer","Detective","Head of Security", "Captain")
|
||||
@@ -344,7 +343,6 @@
|
||||
/datum/dynamic_ruleset/midround/from_ghosts/wizard/rule_process() // i can literally copy this from are_special_antags_dead it's great
|
||||
if(isliving(wizard.current) && wizard.current.stat!=DEAD)
|
||||
return FALSE
|
||||
|
||||
for(var/obj/item/phylactery/P in GLOB.poi_list) //TODO : IsProperlyDead()
|
||||
if(P.mind && P.mind.has_antag_datum(/datum/antagonist/wizard))
|
||||
return FALSE
|
||||
@@ -417,7 +415,7 @@
|
||||
required_candidates = 1
|
||||
blocking_rules = list(/datum/dynamic_ruleset/roundstart/clockcult)
|
||||
weight = 4
|
||||
cost = 10
|
||||
cost = 20
|
||||
requirements = list(101,101,101,80,60,50,50,50,50,50)
|
||||
high_population_requirement = 50
|
||||
repeatable = TRUE
|
||||
@@ -666,9 +664,6 @@
|
||||
Mind.transfer_to(Ninja)
|
||||
var/datum/antagonist/ninja/ninjadatum = new
|
||||
ninjadatum.helping_station = pick(TRUE,FALSE)
|
||||
if(ninjadatum.helping_station)
|
||||
mode.refund_threat(cost+5)
|
||||
mode.log_threat("Ninja was helping station; [cost+5] cost refunded.")
|
||||
Mind.add_antag_datum(ninjadatum)
|
||||
|
||||
if(Ninja.mind != Mind) //something has gone wrong!
|
||||
|
||||
@@ -802,11 +802,10 @@
|
||||
/datum/dynamic_ruleset/roundstart/bloodsucker
|
||||
name = "Bloodsuckers"
|
||||
config_tag = "bloodsucker"
|
||||
persistent = TRUE
|
||||
antag_flag = ROLE_BLOODSUCKER
|
||||
antag_datum = ANTAG_DATUM_BLOODSUCKER
|
||||
minimum_required_age = 0
|
||||
protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
|
||||
protected_roles = list("Chaplain", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
|
||||
restricted_roles = list("Cyborg", "AI")
|
||||
required_candidates = 1
|
||||
weight = 2
|
||||
|
||||
@@ -5,17 +5,19 @@
|
||||
var/list/property_weights = list() // See below.
|
||||
var/curve_centre = 0 // As GLOB.dynamic_curve_centre.
|
||||
var/curve_width = 1.8 // As GLOB.dynamic_curve_width.
|
||||
var/forced_threat_level = -1
|
||||
var/forced_threat_level = -1 // As GLOB.dynamic_forced_threat_level
|
||||
/*
|
||||
NO_ASSASSIN: Will not have permanent assassination targets.
|
||||
WAROPS_ALWAYS_ALLOWED: Can always do warops, regardless of threat level.
|
||||
USE_PREF_WEIGHTS: Will use peoples' preferences to change the threat centre.
|
||||
FORCE_IF_WON: If this mode won the vote, forces it
|
||||
*/
|
||||
var/flags = 0
|
||||
var/dead_player_weight = 1 // How much dead players matter for threat calculation
|
||||
var/weight = 3 // Weights for randomly picking storyteller. Multiplied by score after voting.
|
||||
var/event_frequency_lower = 6 MINUTES // How rare events will be, at least.
|
||||
var/event_frequency_upper = 20 MINUTES // How rare events will be, at most.
|
||||
var/pop_antag_ratio = 5 // How many non-antags there should be vs antags.
|
||||
var/min_players = -1 // How many players are required for this one to start.
|
||||
var/datum/game_mode/dynamic/mode = null // Cached as soon as it's made, by dynamic.
|
||||
|
||||
/**
|
||||
@@ -39,6 +41,29 @@ Property weights are:
|
||||
var/event_injection_cooldown_middle = 0.5*(GLOB.dynamic_event_delay_max + GLOB.dynamic_event_delay_min)
|
||||
mode.event_injection_cooldown = (round(CLAMP(EXP_DISTRIBUTION(event_injection_cooldown_middle), GLOB.dynamic_event_delay_min, GLOB.dynamic_event_delay_max)) + world.time)
|
||||
|
||||
/datum/dynamic_storyteller/proc/calculate_threat()
|
||||
var/threat = 0
|
||||
for(var/datum/antagonist/A in GLOB.antagonists)
|
||||
if(A?.owner?.current && A.owner.current.stat != DEAD)
|
||||
threat += A.threat()
|
||||
for(var/r in SSevents.running)
|
||||
var/datum/round_event/R = r
|
||||
threat += R.threat()
|
||||
for(var/mob/living/simple_animal/hostile/H in GLOB.mob_living_list)
|
||||
var/turf/T = get_turf(H)
|
||||
if(H.stat != DEAD && is_station_level(T.z) && !("Station" in H.faction))
|
||||
threat += H.threat()
|
||||
for (var/mob/M in mode.current_players[CURRENT_LIVING_PLAYERS])
|
||||
if (M?.mind?.assigned_role && M.stat != DEAD)
|
||||
var/datum/job/J = SSjob.GetJob(M.mind.assigned_role)
|
||||
if(J)
|
||||
if(length(M.mind.antag_datums))
|
||||
threat += J.GetThreat()
|
||||
else
|
||||
threat -= J.GetThreat()
|
||||
threat += (mode.current_players[CURRENT_DEAD_PLAYERS].len)*dead_player_weight
|
||||
return round(threat,0.1)
|
||||
|
||||
/datum/dynamic_storyteller/proc/do_process()
|
||||
return
|
||||
|
||||
@@ -83,30 +108,14 @@ Property weights are:
|
||||
if(mode.forced_injection)
|
||||
mode.forced_injection = !dry_run
|
||||
return 100
|
||||
var/chance = 0
|
||||
// If the high pop override is in effect, we reduce the impact of population on the antag injection chance
|
||||
var/high_pop_factor = (mode.current_players[CURRENT_LIVING_PLAYERS].len >= GLOB.dynamic_high_pop_limit)
|
||||
var/max_pop_per_antag = max(pop_antag_ratio,15 - round(mode.threat_level/10) - round(mode.current_players[CURRENT_LIVING_PLAYERS].len/(high_pop_factor ? 10 : 5)))
|
||||
if (!mode.current_players[CURRENT_LIVING_ANTAGS].len)
|
||||
chance += 80 // No antags at all? let's boost those odds!
|
||||
else
|
||||
var/current_pop_per_antag = mode.current_players[CURRENT_LIVING_PLAYERS].len / mode.current_players[CURRENT_LIVING_ANTAGS].len
|
||||
if (current_pop_per_antag > max_pop_per_antag)
|
||||
chance += min(50, 25+10*(current_pop_per_antag-max_pop_per_antag))
|
||||
else
|
||||
chance += 25-10*(max_pop_per_antag-current_pop_per_antag)
|
||||
if (mode.current_players[CURRENT_DEAD_PLAYERS].len > mode.current_players[CURRENT_LIVING_PLAYERS].len)
|
||||
chance -= 30 // More than half the crew died? ew, let's calm down on antags
|
||||
if (mode.threat > 70)
|
||||
chance += 15
|
||||
if (mode.threat < 30)
|
||||
chance -= 15
|
||||
return round(max(0,chance))
|
||||
var/threat_perc = mode.threat/mode.threat_level
|
||||
|
||||
return round(max(0,100*(1-(threat_perc*threat_perc*threat_perc))))
|
||||
|
||||
/datum/dynamic_storyteller/proc/roundstart_draft()
|
||||
var/list/drafted_rules = list()
|
||||
for (var/datum/dynamic_ruleset/roundstart/rule in mode.roundstart_rules)
|
||||
if (rule.acceptable(mode.roundstart_pop_ready, mode.threat_level) && mode.threat >= rule.cost) // If we got the population and threat required
|
||||
if (rule.acceptable(mode.roundstart_pop_ready, mode.threat_level)) // If we got the population and threat required
|
||||
rule.candidates = mode.candidates.Copy()
|
||||
rule.trim_candidates()
|
||||
if (rule.ready() && rule.candidates.len > 0)
|
||||
@@ -114,32 +123,41 @@ Property weights are:
|
||||
for(var/property in property_weights)
|
||||
if(property in rule.property_weights) // just treat it as 0 if it's not in there
|
||||
property_weight += rule.property_weights[property] * property_weights[property]
|
||||
drafted_rules[rule] = (rule.get_weight() + property_weight)*rule.weight_mult
|
||||
drafted_rules[rule] = (rule.get_weight() * property_weight)*rule.weight_mult
|
||||
return drafted_rules
|
||||
|
||||
/datum/dynamic_storyteller/proc/midround_draft()
|
||||
var/list/drafted_rules = list()
|
||||
for (var/datum/dynamic_ruleset/midround/rule in mode.midround_rules)
|
||||
// if there are antags OR the rule is an antag rule, antag_acceptable will be true.
|
||||
if (rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level) && mode.threat >= rule.cost)
|
||||
if (rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level))
|
||||
// Classic secret : only autotraitor/minor roles
|
||||
if (GLOB.dynamic_classic_secret && !((rule.flags & TRAITOR_RULESET) || (rule.flags & MINOR_RULESET)))
|
||||
continue
|
||||
rule.trim_candidates()
|
||||
var/cost_difference = abs(rule.cost-(mode.threat_level-mode.threat))
|
||||
/* Basically, the closer the cost is to the current threat-level-away-from-threat, the more likely it is to
|
||||
pick this particular ruleset.
|
||||
Let's use a toy example: there's 60 threat level and 10 threat spent.
|
||||
We want to pick a ruleset that's close to that, so we run the below equation, on two rulesets.
|
||||
Ruleset 1 has 30 cost, ruleset 2 has 5 cost.
|
||||
When we do the math, ruleset 1's threat_weight is 0.538, and ruleset 2's is 0.238, meaning ruleset 1
|
||||
is 2.26 times as likely to be picked, all other things considered.
|
||||
Of course, we don't want it to GUARANTEE the closest, that's no fun, so it's just a weight.
|
||||
*/
|
||||
var/threat_weight = 1-abs(1-LOGISTIC_FUNCTION(2,0.05,cost_difference,0))
|
||||
if (rule.ready())
|
||||
var/property_weight = 0
|
||||
for(var/property in property_weights)
|
||||
if(property in rule.property_weights)
|
||||
property_weight += rule.property_weights[property] * property_weights[property]
|
||||
drafted_rules[rule] = (rule.get_weight() + property_weight)*rule.weight_mult
|
||||
else if(mode.threat < rule.cost)
|
||||
SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough threat to spend")
|
||||
drafted_rules[rule] = round(((rule.get_weight() * property_weight)*rule.weight_mult*threat_weight)*1000,1)
|
||||
return drafted_rules
|
||||
|
||||
/datum/dynamic_storyteller/proc/latejoin_draft(mob/living/carbon/human/newPlayer)
|
||||
var/list/drafted_rules = list()
|
||||
for (var/datum/dynamic_ruleset/latejoin/rule in mode.latejoin_rules)
|
||||
if (rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level) && mode.threat >= rule.cost)
|
||||
if (rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level - mode.threat))
|
||||
// Classic secret : only autotraitor/minor roles
|
||||
if (GLOB.dynamic_classic_secret && !((rule.flags & TRAITOR_RULESET) || (rule.flags & MINOR_RULESET)))
|
||||
continue
|
||||
@@ -150,56 +168,54 @@ Property weights are:
|
||||
|
||||
rule.candidates = list(newPlayer)
|
||||
rule.trim_candidates()
|
||||
var/cost_difference = abs(rule.cost-(mode.threat_level-mode.threat))
|
||||
var/threat_weight = 1-abs(1-(LOGISTIC_FUNCTION(2,0.05,cost_difference,0)))
|
||||
if (rule.ready())
|
||||
var/property_weight = 0
|
||||
for(var/property in property_weights)
|
||||
if(property in rule.property_weights)
|
||||
property_weight += rule.property_weights[property] * property_weights[property]
|
||||
drafted_rules[rule] = (rule.get_weight() + property_weight)*rule.weight_mult
|
||||
else if(mode.threat < rule.cost)
|
||||
SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough threat to spend")
|
||||
drafted_rules[rule] = round(((rule.get_weight() * property_weight)*rule.weight_mult*threat_weight)*1000,1)
|
||||
return drafted_rules
|
||||
|
||||
/datum/dynamic_storyteller/proc/event_draft()
|
||||
var/list/drafted_rules = list()
|
||||
for(var/datum/dynamic_ruleset/event/rule in mode.events)
|
||||
if(rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level) && mode.threat >= rule.cost)
|
||||
if(rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level) && (mode.threat_level - mode.threat) >= rule.cost)
|
||||
if(rule.ready())
|
||||
var/property_weight = 0
|
||||
for(var/property in property_weights)
|
||||
if(property in rule.property_weights)
|
||||
property_weight += rule.property_weights[property] * property_weights[property]
|
||||
drafted_rules[rule] = (rule.get_weight() + property_weight)*rule.weight_mult
|
||||
else if(mode.threat < rule.cost)
|
||||
SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough threat to spend")
|
||||
return drafted_rules
|
||||
|
||||
|
||||
/datum/dynamic_storyteller/cowabunga
|
||||
/datum/dynamic_storyteller/chaotic
|
||||
name = "Chaotic"
|
||||
config_tag = "chaotic"
|
||||
curve_centre = 10
|
||||
desc = "High chaos modes. Revs, wizard, clock cult. Multiple antags at once. Chaos is kept up all round."
|
||||
property_weights = list("extended" = -1, "chaos" = 10)
|
||||
property_weights = list("extended" = -1, "chaos" = 1)
|
||||
weight = 1
|
||||
event_frequency_lower = 2 MINUTES
|
||||
event_frequency_upper = 10 MINUTES
|
||||
flags = WAROPS_ALWAYS_ALLOWED
|
||||
pop_antag_ratio = 4
|
||||
flags = WAROPS_ALWAYS_ALLOWED | FORCE_IF_WON
|
||||
min_players = 40
|
||||
var/refund_cooldown = 0
|
||||
|
||||
/datum/dynamic_storyteller/cowabunga/get_midround_cooldown()
|
||||
/datum/dynamic_storyteller/chaotic/do_process()
|
||||
if(refund_cooldown < world.time)
|
||||
mode.create_threat(20)
|
||||
mode.log_threat("Chaotic storyteller ramped up the chaos. Threat level is now [mode.threat_level].")
|
||||
refund_cooldown = world.time + 20 MINUTES
|
||||
|
||||
/datum/dynamic_storyteller/chaotic/get_midround_cooldown()
|
||||
return ..() / 4
|
||||
|
||||
/datum/dynamic_storyteller/cowabunga/get_latejoin_cooldown()
|
||||
/datum/dynamic_storyteller/chaotic/get_latejoin_cooldown()
|
||||
return ..() / 4
|
||||
|
||||
/datum/dynamic_storyteller/cowabunga/do_process()
|
||||
if(refund_cooldown < world.time)
|
||||
mode.refund_threat(40)
|
||||
mode.log_threat("Chaotic storyteller refunded 40 threat. Threat is now [mode.threat].")
|
||||
refund_cooldown = world.time + 1200 SECONDS
|
||||
|
||||
/datum/dynamic_storyteller/team
|
||||
name = "Teamwork"
|
||||
config_tag = "teamwork"
|
||||
@@ -207,6 +223,7 @@ Property weights are:
|
||||
curve_centre = 2
|
||||
curve_width = 1.5
|
||||
weight = 2
|
||||
min_players = 30
|
||||
flags = WAROPS_ALWAYS_ALLOWED
|
||||
property_weights = list("valid" = 3, "trust" = 5)
|
||||
|
||||
@@ -223,23 +240,93 @@ Property weights are:
|
||||
flags = WAROPS_ALWAYS_ALLOWED
|
||||
property_weights = list("valid" = 1, "conversion" = 20)
|
||||
|
||||
/datum/dynamic_storyteller/classic
|
||||
/datum/dynamic_storyteller/random
|
||||
name = "Random"
|
||||
config_tag = "random"
|
||||
desc = "No special weights attached. Anything goes."
|
||||
weight = 4
|
||||
curve_width = 4
|
||||
pop_antag_ratio = 7
|
||||
flags = USE_PREF_WEIGHTS
|
||||
weight = 1
|
||||
desc = "No weighting at all; every ruleset has the same chance of happening. Cooldowns vary wildly. As random as it gets."
|
||||
forced_threat_level = 100
|
||||
|
||||
/datum/dynamic_storyteller/random/get_midround_cooldown()
|
||||
return rand(GLOB.dynamic_midround_delay_min/2, GLOB.dynamic_midround_delay_max*2)
|
||||
|
||||
/datum/dynamic_storyteller/random/get_event_cooldown()
|
||||
return rand(GLOB.dynamic_event_delay_min/2, GLOB.dynamic_event_delay_max*2)
|
||||
|
||||
/datum/dynamic_storyteller/random/get_latejoin_cooldown()
|
||||
return rand(GLOB.dynamic_latejoin_delay_min/2, GLOB.dynamic_latejoin_delay_max*2)
|
||||
|
||||
/datum/dynamic_storyteller/random/get_injection_chance()
|
||||
return 50 // i would do rand(0,100) but it's actually the same thing when you do the math
|
||||
|
||||
/datum/dynamic_storyteller/random/calculate_threat()
|
||||
return 0 // what IS threat
|
||||
|
||||
/datum/dynamic_storyteller/random/roundstart_draft()
|
||||
var/list/drafted_rules = list()
|
||||
for (var/datum/dynamic_ruleset/roundstart/rule in mode.roundstart_rules)
|
||||
if (rule.acceptable(mode.roundstart_pop_ready, mode.threat_level)) // If we got the population and threat required
|
||||
rule.candidates = mode.candidates.Copy()
|
||||
rule.trim_candidates()
|
||||
if (rule.ready() && rule.candidates.len > 0)
|
||||
drafted_rules[rule] = 1
|
||||
return drafted_rules
|
||||
|
||||
/datum/dynamic_storyteller/random/midround_draft()
|
||||
var/list/drafted_rules = list()
|
||||
for (var/datum/dynamic_ruleset/midround/rule in mode.midround_rules)
|
||||
if (rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level))
|
||||
// Classic secret : only autotraitor/minor roles
|
||||
if (GLOB.dynamic_classic_secret && !((rule.flags & TRAITOR_RULESET) || (rule.flags & MINOR_RULESET)))
|
||||
continue
|
||||
rule.trim_candidates()
|
||||
if (rule.ready())
|
||||
drafted_rules[rule] = 1
|
||||
return drafted_rules
|
||||
|
||||
/datum/dynamic_storyteller/random/latejoin_draft(mob/living/carbon/human/newPlayer)
|
||||
var/list/drafted_rules = list()
|
||||
for (var/datum/dynamic_ruleset/latejoin/rule in mode.latejoin_rules)
|
||||
if (rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level))
|
||||
// Classic secret : only autotraitor/minor roles
|
||||
if (GLOB.dynamic_classic_secret && !((rule.flags & TRAITOR_RULESET) || (rule.flags & MINOR_RULESET)))
|
||||
continue
|
||||
// No stacking : only one round-ender, unless threat level > stacking_limit.
|
||||
if (mode.threat_level > GLOB.dynamic_stacking_limit && GLOB.dynamic_no_stacking)
|
||||
if(rule.flags & HIGHLANDER_RULESET && mode.highlander_executed)
|
||||
continue
|
||||
rule.candidates = list(newPlayer)
|
||||
rule.trim_candidates()
|
||||
if (rule.ready())
|
||||
drafted_rules[rule] = 1
|
||||
return drafted_rules
|
||||
|
||||
/datum/dynamic_storyteller/random/event_draft()
|
||||
var/list/drafted_rules = list()
|
||||
for(var/datum/dynamic_ruleset/event/rule in mode.events)
|
||||
if(rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level))
|
||||
if(rule.ready())
|
||||
drafted_rules[rule] = 1
|
||||
return drafted_rules
|
||||
|
||||
/datum/dynamic_storyteller/story
|
||||
name = "Story"
|
||||
config_tag = "story"
|
||||
desc = "Antags with options for loadouts and gimmicks. Traitor, wizard, nukies."
|
||||
desc = "Antags with options for loadouts and gimmicks. Traitor, wizard, nukies. Has a buildup-climax-falling action threat curve."
|
||||
weight = 2
|
||||
curve_width = 2
|
||||
pop_antag_ratio = 7
|
||||
property_weights = list("story_potential" = 10)
|
||||
property_weights = list("story_potential" = 2)
|
||||
|
||||
|
||||
/datum/dynamic_storyteller/story/do_process()
|
||||
var/current_time = (world.time / SSautotransfer.targettime)*180
|
||||
mode.threat_level = round(mode.initial_threat_level*(sin(current_time)+0.5),0.1)
|
||||
|
||||
/datum/dynamic_storyteller/classic
|
||||
name = "Classic"
|
||||
config_tag = "classic"
|
||||
desc = "No special antagonist weights. Good variety, but not like random. Uses your chaos preference to weight."
|
||||
flags = USE_PREF_WEIGHTS
|
||||
|
||||
/datum/dynamic_storyteller/suspicion
|
||||
name = "Intrigue"
|
||||
@@ -247,8 +334,8 @@ Property weights are:
|
||||
desc = "Antags that instill distrust in the crew. Traitors, bloodsuckers."
|
||||
weight = 2
|
||||
curve_width = 2
|
||||
pop_antag_ratio = 7
|
||||
property_weights = list("trust" = -5)
|
||||
dead_player_weight = 2
|
||||
property_weights = list("trust" = -3)
|
||||
|
||||
/datum/dynamic_storyteller/liteextended
|
||||
name = "Calm"
|
||||
@@ -256,10 +343,10 @@ Property weights are:
|
||||
desc = "Low-chaos round. Few antags. No conversion."
|
||||
curve_centre = -3
|
||||
curve_width = 0.5
|
||||
flags = NO_ASSASSIN
|
||||
flags = NO_ASSASSIN | FORCE_IF_WON
|
||||
weight = 1
|
||||
pop_antag_ratio = 10
|
||||
property_weights = list("extended" = 1, "chaos" = -1, "valid" = -1, "story_potential" = 1, "conversion" = -10)
|
||||
dead_player_weight = 5
|
||||
property_weights = list("extended" = 2, "chaos" = -1, "valid" = -1, "story_potential" = 1, "conversion" = -10)
|
||||
|
||||
/datum/dynamic_storyteller/no_antag
|
||||
name = "Extended"
|
||||
@@ -267,7 +354,7 @@ Property weights are:
|
||||
desc = "No standard antags. Threatening events may still spawn."
|
||||
curve_centre = -5
|
||||
curve_width = 0.5
|
||||
flags = NO_ASSASSIN
|
||||
flags = NO_ASSASSIN | FORCE_IF_WON
|
||||
weight = 1
|
||||
property_weights = list("extended" = 2)
|
||||
|
||||
|
||||
@@ -323,7 +323,7 @@
|
||||
var/free_tickets = CONFIG_GET(number/default_antag_tickets)
|
||||
//Max extra tickets you can use
|
||||
var/additional_tickets = CONFIG_GET(number/max_tickets_per_roll)
|
||||
|
||||
|
||||
var/list/ckey_to_mind = list() //this is admittedly shitcode but I'm webediting
|
||||
var/list/prev_tickets = SSpersistence.antag_rep //cache for hyper-speed in theory. how many tickets someone has stored
|
||||
var/list/curr_tickets = list() //how many tickets someone has for *this* antag roll, so with the free tickets
|
||||
@@ -337,7 +337,7 @@
|
||||
continue
|
||||
curr_tickets[mind_ckey] = amount
|
||||
ckey_to_mind[mind_ckey] = M //make sure we can look them up after picking
|
||||
|
||||
|
||||
if(!return_list) //return a single guy
|
||||
var/ckey
|
||||
if(length(curr_tickets))
|
||||
@@ -584,7 +584,7 @@
|
||||
//By default nuke just ends the round
|
||||
/datum/game_mode/proc/OnNukeExplosion(off_station)
|
||||
nuke_off_station = off_station
|
||||
if(off_station < 2)
|
||||
if(!off_station)
|
||||
station_was_nuked = TRUE //Will end the round on next check.
|
||||
|
||||
//Additional report section in roundend report
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
can_coexist_with_others = FALSE
|
||||
job_rank = ROLE_GANG
|
||||
antagpanel_category = "Gang"
|
||||
threat = 2
|
||||
var/hud_type = "gangster"
|
||||
var/message_name = "Gangster"
|
||||
var/datum/team/gang/gang
|
||||
@@ -167,6 +168,7 @@
|
||||
name = "Gang boss"
|
||||
hud_type = "gang_boss"
|
||||
message_name = "Leader"
|
||||
threat = 10
|
||||
|
||||
/datum/antagonist/gang/boss/on_gain()
|
||||
..()
|
||||
@@ -474,4 +476,4 @@
|
||||
|
||||
|
||||
#undef MAXIMUM_RECALLS
|
||||
#undef INFLUENCE_INTERVAL
|
||||
#undef INFLUENCE_INTERVAL
|
||||
|
||||
@@ -240,10 +240,10 @@
|
||||
to_chat(AI, "<b>[U]</b> holds <a href='?_src_=usr;show_paper=1;'>\a [itemname]</a> up to one of your cameras ...")
|
||||
else
|
||||
to_chat(AI, "<b><a href='?src=[REF(AI)];track=[html_encode(U.name)]'>[U]</a></b> holds <a href='?_src_=usr;show_paper=1;'>\a [itemname]</a> up to one of your cameras ...")
|
||||
AI.last_paper_seen = "<HTML><HEAD><TITLE>[itemname]</TITLE></HEAD><BODY><TT>[info]</TT></BODY></HTML>"
|
||||
AI.last_paper_seen = "<HTML><HEAD><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><TITLE>[itemname]</TITLE></HEAD><BODY><TT>[info]</TT></BODY></HTML>"
|
||||
else if (O.client && O.client.eye == src)
|
||||
to_chat(O, "[U] holds \a [itemname] up to one of the cameras ...")
|
||||
O << browse(text("<HTML><HEAD><TITLE>[]</TITLE></HEAD><BODY><TT>[]</TT></BODY></HTML>", itemname, info), text("window=[]", itemname))
|
||||
O << browse(text("<HTML><HEAD<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>><TITLE>[]</TITLE></HEAD><BODY><TT>[]</TT></BODY></HTML>", itemname, info), text("window=[]", itemname))
|
||||
return
|
||||
|
||||
else if(istype(I, /obj/item/camera_bug))
|
||||
|
||||
@@ -180,6 +180,7 @@
|
||||
|
||||
//Get the clone body ready
|
||||
maim_clone(H)
|
||||
ADD_TRAIT(H, TRAIT_MUTATION_STASIS, CLONING_POD_TRAIT)
|
||||
ADD_TRAIT(H, TRAIT_STABLEHEART, CLONING_POD_TRAIT)
|
||||
ADD_TRAIT(H, TRAIT_STABLELIVER, CLONING_POD_TRAIT)
|
||||
ADD_TRAIT(H, TRAIT_EMOTEMUTE, CLONING_POD_TRAIT)
|
||||
@@ -369,6 +370,7 @@
|
||||
return
|
||||
|
||||
REMOVE_TRAIT(mob_occupant, TRAIT_STABLEHEART, CLONING_POD_TRAIT)
|
||||
REMOVE_TRAIT(mob_occupant, TRAIT_MUTATION_STASIS, CLONING_POD_TRAIT)
|
||||
REMOVE_TRAIT(mob_occupant, TRAIT_STABLELIVER, CLONING_POD_TRAIT)
|
||||
REMOVE_TRAIT(mob_occupant, TRAIT_EMOTEMUTE, CLONING_POD_TRAIT)
|
||||
REMOVE_TRAIT(mob_occupant, TRAIT_MUTE, CLONING_POD_TRAIT)
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
if(stat & BROKEN)
|
||||
overlay_state = "[icon_state]_broken"
|
||||
SSvis_overlays.add_vis_overlay(src, icon, overlay_state, layer, plane, dir)
|
||||
SSvis_overlays.add_vis_overlay(src, icon, overlay_state, ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir, alpha=128)
|
||||
SSvis_overlays.add_vis_overlay(src, icon, overlay_state, EMISSIVE_LAYER, EMISSIVE_PLANE, dir, alpha=128)
|
||||
|
||||
/obj/machinery/computer/power_change()
|
||||
..()
|
||||
|
||||
@@ -94,4 +94,4 @@
|
||||
overlay_state = "alert:0"
|
||||
. |= overlay_state
|
||||
SSvis_overlays.add_vis_overlay(src, icon, overlay_state, layer, plane, dir)
|
||||
SSvis_overlays.add_vis_overlay(src, icon, overlay_state, ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir, alpha=128)
|
||||
SSvis_overlays.add_vis_overlay(src, icon, overlay_state, EMISSIVE_LAYER, EMISSIVE_PLANE, dir, alpha=128)
|
||||
|
||||
@@ -11,16 +11,19 @@
|
||||
|
||||
/obj/machinery/computer/robotics/proc/can_control(mob/user, mob/living/silicon/robot/R)
|
||||
if(!istype(R))
|
||||
return 0
|
||||
return FALSE
|
||||
if(isAI(user))
|
||||
if (R.connected_ai != user)
|
||||
return 0
|
||||
return FALSE
|
||||
if(iscyborg(user))
|
||||
if (R != user)
|
||||
return 0
|
||||
return FALSE
|
||||
if(R.scrambledcodes)
|
||||
return 0
|
||||
return 1
|
||||
return FALSE
|
||||
if (hasSiliconAccessInArea(user) && !issilicon(user))
|
||||
if (!Adjacent(user))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/computer/robotics/ui_interact(mob/user)
|
||||
. = ..()
|
||||
|
||||
@@ -94,4 +94,4 @@
|
||||
overlay_state = "alert:0"
|
||||
. |= overlay_state
|
||||
SSvis_overlays.add_vis_overlay(src, icon, overlay_state, layer, plane, dir)
|
||||
SSvis_overlays.add_vis_overlay(src, icon, overlay_state, ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir, alpha=128)
|
||||
SSvis_overlays.add_vis_overlay(src, icon, overlay_state, EMISSIVE_LAYER, EMISSIVE_PLANE, dir, alpha=128)
|
||||
|
||||
@@ -1,13 +1,68 @@
|
||||
/obj/machinery/door/poddoor/shutters
|
||||
gender = PLURAL
|
||||
name = "shutters"
|
||||
desc = "Heavy duty metal shutters that open mechanically."
|
||||
desc = "Mechanical metal shutters operated by a button with a magnetic seal, keeping them airtight."
|
||||
icon = 'icons/obj/doors/shutters.dmi'
|
||||
layer = SHUTTER_LAYER
|
||||
closingLayer = SHUTTER_LAYER
|
||||
armor = list("melee" = 20, "bullet" = 20, "laser" = 20, "energy" = 75, "bomb" = 25, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 70)
|
||||
damage_deflection = 20
|
||||
max_integrity = 100
|
||||
|
||||
/obj/machinery/door/poddoor/shutters/preopen
|
||||
icon_state = "open"
|
||||
density = FALSE
|
||||
opacity = 0
|
||||
|
||||
// The below shutters are the original ones from the TG codebase. They are remaining as "secure" shutters. If anyone wants to improve their animation, feel free.
|
||||
// The original shutters are now shutters_old.dmi; copy the naming format of the files into new a new .dmi to add new shutters that work with the poddoor code for animating the doors.
|
||||
// Originally, the shutters were reskins of blast doors. Eighty hits with the Cap's sabre to destroy one shutter is far too powerful considering shutters cannot be deconstructed (yet).
|
||||
// If you're a mapper and want super strong shutter, use the 'old' ones.
|
||||
|
||||
/obj/machinery/door/poddoor/shutters/old
|
||||
name = "strong shutters"
|
||||
desc = "These shutters have an armoured frame; it looks like plasteel. These shutters look robust enough to survive explosions."
|
||||
icon = 'icons/obj/doors/shutters_old.dmi'
|
||||
icon_state = "closed"
|
||||
armor = list("melee" = 30, "bullet" = 30, "laser" = 30, "energy" = 75, "bomb" = 30, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 70)
|
||||
max_integrity = 300
|
||||
|
||||
/obj/machinery/door/poddoor/shutters/old/preopen
|
||||
icon_state = "open"
|
||||
density = FALSE
|
||||
opacity = 0
|
||||
|
||||
// End of old shutter stuff. Credit for the old shutter sprites to TG.
|
||||
|
||||
/obj/machinery/door/poddoor/shutters/radiation
|
||||
name = "radiation shutters"
|
||||
desc = "Lead-lined shutters painted yellow with a radioactive hazard symbol on it. Blocks out most radiation"
|
||||
icon = 'icons/obj/doors/shutters_radiation.dmi'
|
||||
icon_state = "closed"
|
||||
rad_insulation = 0.2
|
||||
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen
|
||||
icon_state = "open"
|
||||
density = FALSE
|
||||
opacity = 0
|
||||
rad_insulation = 1
|
||||
|
||||
/obj/machinery/door/poddoor/shutters/radiation/do_animate(animation)
|
||||
..()
|
||||
switch(animation)
|
||||
if("opening")
|
||||
rad_insulation = 1
|
||||
if("closing")
|
||||
rad_insulation = 0.2
|
||||
|
||||
/obj/machinery/door/poddoor/shutters/window
|
||||
name = "windowed shutters"
|
||||
desc = "Mechanical shutters that have some form of plastic window in them, allowing you to see through the shutters at all times."
|
||||
icon = 'icons/obj/doors/shutters_window.dmi'
|
||||
icon_state = "closed"
|
||||
opacity = 0
|
||||
glass = 1
|
||||
|
||||
/obj/machinery/door/poddoor/shutters/window/preopen
|
||||
icon_state = "open"
|
||||
density = FALSE
|
||||
|
||||
@@ -77,23 +77,23 @@
|
||||
|
||||
if(is_station_level(z))
|
||||
. += "fire_[GLOB.security_level]"
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "fire_[GLOB.security_level]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir)
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "fire_[GLOB.security_level]", EMISSIVE_LAYER, EMISSIVE_PLANE, dir)
|
||||
else
|
||||
. += "fire_[SEC_LEVEL_GREEN]"
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "fire_[SEC_LEVEL_GREEN]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir)
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "fire_[SEC_LEVEL_GREEN]", EMISSIVE_LAYER, EMISSIVE_PLANE, dir)
|
||||
|
||||
var/area/A = src.loc
|
||||
A = A.loc
|
||||
|
||||
if(!detecting || !A.fire)
|
||||
. += "fire_off"
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "fire_off", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir)
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "fire_off", EMISSIVE_LAYER, EMISSIVE_PLANE, dir)
|
||||
else if(obj_flags & EMAGGED)
|
||||
. += "fire_emagged"
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "fire_emagged", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir)
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "fire_emagged", EMISSIVE_LAYER, EMISSIVE_PLANE, dir)
|
||||
else
|
||||
. += "fire_on"
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "fire_on", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir)
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "fire_on", EMISSIVE_LAYER, EMISSIVE_PLANE, dir)
|
||||
|
||||
/obj/machinery/firealarm/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
if(href_list["photo"])
|
||||
var/mob/M = usr
|
||||
M << browse_rsc(picture.picture_image, "pda_photo.png")
|
||||
M << browse("<html><head><title>PDA Photo</title></head>" \
|
||||
M << browse("<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>PDA Photo</title></head>" \
|
||||
+ "<body style='overflow:hidden;margin:0;text-align:center'>" \
|
||||
+ "<img src='pda_photo.png' width='192' style='-ms-interpolation-mode:nearest-neighbor' />" \
|
||||
+ "</body></html>", "window=pdaphoto;size=[picture.psize_x]x[picture.psize_y];can-close=true")
|
||||
|
||||
@@ -42,7 +42,9 @@
|
||||
|
||||
/obj/mecha/combat/honker/get_stats_html()
|
||||
var/output = {"<html>
|
||||
<head><title>[src.name] data</title>
|
||||
<head>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||||
<title>[src.name] data</title>
|
||||
<style>
|
||||
body {color: #00ff00; background: #32CD32; font-family:"Courier",monospace; font-size: 12px;}
|
||||
hr {border: 1px solid #0f0; color: #fff; background-color: #000;}
|
||||
|
||||
@@ -125,6 +125,7 @@
|
||||
return
|
||||
return {"<html>
|
||||
<head>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||||
<title>[patient] statistics</title>
|
||||
<script language='javascript' type='text/javascript'>
|
||||
[js_byjax]
|
||||
@@ -259,7 +260,8 @@
|
||||
. = ..()
|
||||
create_reagents(max_volume, NO_REACT)
|
||||
syringes = new
|
||||
known_reagents = list(/datum/reagent/medicine/epinephrine = "Epinephrine", /datum/reagent/medicine/charcoal = "Charcoal")
|
||||
known_reagents = list(/datum/reagent/medicine/epinephrine = "Epinephrine", /datum/reagent/medicine/charcoal = "Charcoal", /datum/reagent/medicine/prussian_blue = "Prussian Blue", \
|
||||
/datum/reagent/medicine/dexalin = "Dexalin", /datum/reagent/medicine/insulin = "Insulin", /datum/reagent/medicine/kelotane = "Kelotane", /datum/reagent/medicine/bicaridine = "Bicaridine")
|
||||
processed_reagents = new
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/detach()
|
||||
@@ -390,6 +392,7 @@
|
||||
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/proc/get_reagents_page()
|
||||
var/output = {"<html>
|
||||
<head>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||||
<title>Reagent Synthesizer</title>
|
||||
<script language='javascript' type='text/javascript'>
|
||||
[js_byjax]
|
||||
|
||||
@@ -297,7 +297,8 @@
|
||||
left_part += "<hr><a href='?src=[REF(src)];screen=main'>Return</a>"
|
||||
dat = {"<html>
|
||||
<head>
|
||||
<title>[name]</title>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||||
<title>[name] data</title>
|
||||
<style>
|
||||
.res_name {font-weight: bold; text-transform: capitalize;}
|
||||
.red {color: #f00;}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
/obj/machinery/computer/mecha/ui_interact(mob/user)
|
||||
. = ..()
|
||||
var/dat = "<html><head><title>[src.name]</title><style>h3 {margin: 0px; padding: 0px;}</style></head><body>"
|
||||
var/dat = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>[src.name]</title><style>h3 {margin: 0px; padding: 0px;}</style></head><body>"
|
||||
if(screen == 0)
|
||||
dat += "<h3>Tracking beacons data</h3>"
|
||||
var/list/trackerlist = list()
|
||||
|
||||
@@ -5,7 +5,9 @@
|
||||
|
||||
/obj/mecha/proc/get_stats_html()
|
||||
. = {"<html>
|
||||
<head><title>[src.name] data</title>
|
||||
<head>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||||
<title>[name] data</title>
|
||||
<style>
|
||||
body {color: #00ff00; background: #000000; font-family:"Lucida Console",monospace; font-size: 12px;}
|
||||
hr {border: 1px solid #0f0; color: #0f0; background-color: #0f0;}
|
||||
@@ -149,7 +151,7 @@
|
||||
|
||||
|
||||
/obj/mecha/proc/get_log_html()
|
||||
. = "<html><head><title>[src.name] Log</title></head><body style='font: 13px 'Courier', monospace;'>"
|
||||
. = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>[src.name] Log</title></head><body style='font: 13px 'Courier', monospace;'>"
|
||||
for(var/list/entry in log)
|
||||
. += {"<div style='font-weight: bold;'>[entry["time"]] [time2text(entry["date"],"MMM DD")] [entry["year"]]</div>
|
||||
<div style='margin-left:15px; margin-bottom:10px;'>[entry["message"]]</div>
|
||||
@@ -162,7 +164,9 @@
|
||||
if(!id_card || !user)
|
||||
return
|
||||
. = {"<html>
|
||||
<head><style>
|
||||
<head>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||||
<style>
|
||||
h1 {font-size:15px;margin-bottom:4px;}
|
||||
body {color: #00ff00; background: #000000; font-family:"Courier New", Courier, monospace; font-size: 12px;}
|
||||
a {color:#0f0;}
|
||||
@@ -192,6 +196,7 @@
|
||||
return
|
||||
. = {"<html>
|
||||
<head>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||||
<style>
|
||||
body {color: #00ff00; background: #000000; font-family:"Courier New", Courier, monospace; font-size: 12px;}
|
||||
a {padding:2px 5px; background:#32CD32;color:#000;display:block;margin:2px;text-align:center;text-decoration:none;}
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
move_resist = INFINITY
|
||||
obj_flags = 0
|
||||
|
||||
vis_flags = NONE
|
||||
|
||||
/obj/effect/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir)
|
||||
return
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
|
||||
/obj/item
|
||||
name = "item"
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
blocks_emissive = EMISSIVE_BLOCK_GENERIC
|
||||
var/item_state = null
|
||||
var/lefthand_file = 'icons/mob/inhands/items_lefthand.dmi'
|
||||
var/righthand_file = 'icons/mob/inhands/items_righthand.dmi'
|
||||
@@ -34,7 +35,12 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
|
||||
var/usesound = null
|
||||
var/throwhitsound = null
|
||||
var/w_class = WEIGHT_CLASS_NORMAL
|
||||
|
||||
/// The amount of stamina it takes to swing an item in a normal melee attack do not lie to me and say it's for realism because it ain't. If null it will autocalculate from w_class.
|
||||
var/total_mass //Total mass in arbitrary pound-like values. If there's no balance reasons for an item to have otherwise, this var should be the item's weight in pounds.
|
||||
/// How long, in deciseconds, this staggers for, if null it will autocalculate from w_class and force. Unlike total mass this supports 0 and negatives.
|
||||
var/stagger_force
|
||||
|
||||
var/slot_flags = 0 //This is used to determine on which slots an item can fit.
|
||||
pass_flags = PASSTABLE
|
||||
pressure_resistance = 4
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
|
||||
/obj/item/areaeditor/attack_self(mob/user)
|
||||
add_fingerprint(user)
|
||||
. = "<BODY><HTML><head><title>[src]</title></head> \
|
||||
. = "<BODY><HTML><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>\
|
||||
<title>[src]</title></head> \
|
||||
<h2>[station_name()] [src.name]</h2> \
|
||||
<small>[fluffnotice]</small><hr>"
|
||||
switch(get_area_type())
|
||||
|
||||
@@ -271,7 +271,7 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
|
||||
user.set_machine(src)
|
||||
|
||||
var/dat = "<!DOCTYPE html><html><head><title>Personal Data Assistant</title><link href=\"https://fonts.googleapis.com/css?family=Orbitron|Share+Tech+Mono|VT323\" rel=\"stylesheet\"></head><body bgcolor=\"" + background_color + "\"><style>body{" + font_mode + "}ul,ol{list-style-type: none;}a, a:link, a:visited, a:active, a:hover { color: #000000;text-decoration:none; }img {border-style:none;}a img{padding-right: 9px;}</style>"
|
||||
var/dat = "<!DOCTYPE html><html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>Personal Data Assistant</title><link href=\"https://fonts.googleapis.com/css?family=Orbitron|Share+Tech+Mono|VT323\" rel=\"stylesheet\"></head><body bgcolor=\"" + background_color + "\"><style>body{" + font_mode + "}ul,ol{list-style-type: none;}a, a:link, a:visited, a:active, a:hover { color: #000000;text-decoration:none; }img {border-style:none;}a img{padding-right: 9px;}</style>"
|
||||
dat += assets.css_tag()
|
||||
dat += emoji_s.css_tag()
|
||||
|
||||
@@ -1192,7 +1192,7 @@ GLOBAL_LIST_EMPTY(PDAs)
|
||||
if(incapacitated())
|
||||
return
|
||||
if(!isnull(aiPDA))
|
||||
var/HTML = "<html><head><title>AI PDA Message Log</title></head><body>[aiPDA.tnote]</body></html>"
|
||||
var/HTML = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>AI PDA Message Log</title></head><body>[aiPDA.tnote]</body></html>"
|
||||
user << browse(HTML, "window=log;size=400x444;border=1;can_resize=1;can_close=1;can_minimize=0")
|
||||
else
|
||||
to_chat(user, "You do not have a PDA. You should make an issue report about this.")
|
||||
|
||||
@@ -170,7 +170,7 @@
|
||||
flags_1 = CONDUCT_1
|
||||
brightness_on = 2
|
||||
light_color = "#FFDDCC"
|
||||
flashlight_power = 0.3
|
||||
flashlight_power = 0.5
|
||||
var/holo_cooldown = 0
|
||||
|
||||
/obj/item/flashlight/pen/afterattack(atom/target, mob/user, proximity_flag)
|
||||
@@ -227,15 +227,12 @@
|
||||
custom_materials = null
|
||||
on = TRUE
|
||||
|
||||
|
||||
// green-shaded desk lamp
|
||||
/obj/item/flashlight/lamp/green
|
||||
desc = "A classic green-shaded desk lamp."
|
||||
icon_state = "lampgreen"
|
||||
item_state = "lampgreen"
|
||||
|
||||
|
||||
|
||||
/obj/item/flashlight/lamp/verb/toggle_light()
|
||||
set name = "Toggle light"
|
||||
set category = "Object"
|
||||
@@ -258,12 +255,13 @@
|
||||
desc = "A red Nanotrasen issued flare. There are instructions on the side, it reads 'pull cord, make light'."
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
brightness_on = 7 // Pretty bright.
|
||||
total_mass = 0.8
|
||||
light_color = "#FA421A"
|
||||
icon_state = "flare"
|
||||
item_state = "flare"
|
||||
actions_types = list()
|
||||
var/fuel = 0
|
||||
var/on_damage = 7
|
||||
var/on_damage = 9
|
||||
var/produce_heat = 1500
|
||||
heat = 1000
|
||||
light_color = LIGHT_COLOR_FLARE
|
||||
@@ -331,14 +329,15 @@
|
||||
name = "torch"
|
||||
desc = "A torch fashioned from some leaves and a log."
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
brightness_on = 4
|
||||
brightness_on = 6 //When on were like a lantern
|
||||
light_color = "#FAA44B"
|
||||
icon_state = "torch"
|
||||
item_state = "torch"
|
||||
lefthand_file = 'icons/mob/inhands/items_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/items_righthand.dmi'
|
||||
light_color = LIGHT_COLOR_ORANGE
|
||||
on_damage = 10
|
||||
total_mass = TOTAL_MASS_NORMAL_ITEM
|
||||
on_damage = 12 //Its a log thats on fire
|
||||
slot_flags = null
|
||||
|
||||
/obj/item/flashlight/lantern
|
||||
@@ -348,10 +347,9 @@
|
||||
lefthand_file = 'icons/mob/inhands/equipment/mining_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/mining_righthand.dmi'
|
||||
desc = "A mining lantern."
|
||||
brightness_on = 6 // luminosity when on
|
||||
brightness_on = 6 // luminosity when on
|
||||
light_color = "#FFAA44"
|
||||
flashlight_power = 0.75
|
||||
|
||||
flashlight_power = 0.8
|
||||
|
||||
/obj/item/flashlight/slime
|
||||
gender = PLURAL
|
||||
@@ -372,7 +370,6 @@
|
||||
var/emp_cur_charges = 4
|
||||
var/charge_tick = 0
|
||||
|
||||
|
||||
/obj/item/flashlight/emp/New()
|
||||
..()
|
||||
START_PROCESSING(SSobj, src)
|
||||
@@ -435,7 +432,7 @@
|
||||
var/fuel = 0
|
||||
|
||||
/obj/item/flashlight/glowstick/Initialize()
|
||||
fuel = rand(1600, 2000)
|
||||
fuel = rand(1000, 1500)
|
||||
light_color = color
|
||||
. = ..()
|
||||
|
||||
@@ -540,7 +537,7 @@
|
||||
/obj/item/flashlight/eyelight
|
||||
name = "eyelight"
|
||||
desc = "This shouldn't exist outside of someone's head, how are you seeing this?"
|
||||
brightness_on = 15
|
||||
brightness_on = 10
|
||||
flags_1 = CONDUCT_1
|
||||
item_flags = DROPDEL
|
||||
actions_types = list()
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
//book contents below
|
||||
dat = {"<html>
|
||||
<head>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||||
<style>
|
||||
h1 {font-size: 18px; margin: 15px 0px 5px;}
|
||||
h2 {font-size: 15px; margin: 15px 0px 5px;}
|
||||
@@ -49,6 +50,7 @@
|
||||
title = "APLU \"Ripley\" Construction and Operation Manual"
|
||||
dat = {"<html>
|
||||
<head>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||||
<style>
|
||||
h1 {font-size: 18px; margin: 15px 0px 5px;}
|
||||
h2 {font-size: 15px; margin: 15px 0px 5px;}
|
||||
@@ -122,6 +124,7 @@
|
||||
title = "Chef Recipes"
|
||||
dat = {"<html>
|
||||
<head>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||||
<style>
|
||||
h1 {font-size: 18px; margin: 15px 0px 5px;}
|
||||
h2 {font-size: 15px; margin: 15px 0px 5px;}
|
||||
@@ -202,6 +205,10 @@
|
||||
author = "Syndicate"
|
||||
title = "Fission Mailed: Nuclear Sabotage 101"
|
||||
dat = {"<html>
|
||||
<head>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||||
</head>
|
||||
<body>
|
||||
Nuclear Explosives 101:<br>
|
||||
Hello and thank you for choosing the Syndicate for your nuclear information needs.<br>
|
||||
Today's crash course will deal with the operation of a Fusion Class Nanotrasen made Nuclear Device.<br>
|
||||
@@ -229,6 +236,7 @@
|
||||
<b>Disk, Code, Safety, Timer, Disk, RUN!</b><br>
|
||||
Intelligence Analysts believe that normal Nanotrasen procedure is for the Captain to secure the nuclear authorisation disk.<br>
|
||||
Good luck!
|
||||
</body>
|
||||
</html>"}
|
||||
|
||||
// Wiki books that are linked to the configured wiki link.
|
||||
@@ -249,6 +257,7 @@
|
||||
dat = {"
|
||||
|
||||
<html><head>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||||
<style>
|
||||
iframe {
|
||||
display: none;
|
||||
@@ -284,6 +293,7 @@
|
||||
dat = {"
|
||||
|
||||
<html><head>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||||
<style>
|
||||
iframe {
|
||||
display: none;
|
||||
|
||||
@@ -58,6 +58,21 @@
|
||||
|
||||
new /obj/effect/abstract/DPtarget(get_turf(src), pod)
|
||||
|
||||
/obj/item/choice_beacon/ingredients
|
||||
name = "ingredient box delivery beacon"
|
||||
desc = "Summon a box of ingredients from a wide selection!"
|
||||
icon_state = "gangtool-red"
|
||||
|
||||
/obj/item/choice_beacon/ingredients/generate_display_names()
|
||||
var/static/list/ingredientboxes
|
||||
if(!ingredientboxes)
|
||||
ingredientboxes = list()
|
||||
var/list/templist = typesof(/obj/item/storage/box/ingredients)
|
||||
for(var/V in templist)
|
||||
var/obj/item/storage/box/ingredients/A = V
|
||||
ingredientboxes[initial(A.theme_name)] = A
|
||||
return ingredientboxes
|
||||
|
||||
/obj/item/choice_beacon/hero
|
||||
name = "heroic beacon"
|
||||
desc = "To summon heroes from the past to protect the future."
|
||||
@@ -72,7 +87,6 @@
|
||||
hero_item_list[initial(A.name)] = A
|
||||
return hero_item_list
|
||||
|
||||
|
||||
/obj/item/storage/box/hero
|
||||
name = "Courageous Tomb Raider - 1940's."
|
||||
|
||||
@@ -115,4 +129,5 @@
|
||||
icon = 'icons/obj/supermatter.dmi'
|
||||
icon_state = "supermatterspray"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
var/usesleft = 2
|
||||
var/usesleft = 2
|
||||
|
||||
|
||||
@@ -120,6 +120,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \
|
||||
)), \
|
||||
null, \
|
||||
new/datum/stack_recipe("iron door", /obj/structure/mineral_door/iron, 20, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new/datum/stack_recipe("pestle", /obj/item/pestle, 1, time = 50), \
|
||||
new/datum/stack_recipe("floodlight frame", /obj/structure/floodlight_frame, 5, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
))
|
||||
|
||||
@@ -255,6 +256,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \
|
||||
new/datum/stack_recipe("apiary", /obj/structure/beebox, 40, time = 50),\
|
||||
null, \
|
||||
new/datum/stack_recipe("picture frame", /obj/item/wallframe/picture, 1, time = 10),\
|
||||
new/datum/stack_recipe("mortar", /obj/item/reagent_containers/glass/mortar, 3), \
|
||||
new/datum/stack_recipe("honey frame", /obj/item/honey_frame, 5, time = 10),\
|
||||
))
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible",
|
||||
return
|
||||
// If H is the Chaplain, we can set the icon_state of the bible (but only once!)
|
||||
if(!GLOB.bible_icon_state && H.job == "Chaplain")
|
||||
var/dat = "<html><head><title>Pick Bible Style</title></head><body><center><h2>Pick a bible style</h2></center><table>"
|
||||
var/dat = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>Pick Bible Style</title></head><body><center><h2>Pick a bible style</h2></center><table>"
|
||||
for(var/i in 1 to GLOB.biblestates.len)
|
||||
var/icon/bibleicon = icon('icons/obj/storage.dmi', GLOB.biblestates[i])
|
||||
var/nicename = GLOB.biblenames[i]
|
||||
|
||||
@@ -946,12 +946,47 @@
|
||||
/obj/item/reagent_containers/food/snacks/grown/apple,
|
||||
/obj/item/reagent_containers/food/snacks/chocolatebar,
|
||||
/obj/item/reagent_containers/food/snacks/grown/cherries,
|
||||
/obj/item/reagent_containers/food/snacks/grown/berries,
|
||||
/obj/item/reagent_containers/food/snacks/grown/banana,
|
||||
/obj/item/reagent_containers/food/snacks/grown/cabbage,
|
||||
/obj/item/reagent_containers/food/snacks/grown/soybeans,
|
||||
/obj/item/reagent_containers/food/snacks/grown/corn,
|
||||
/obj/item/reagent_containers/food/snacks/grown/mushroom/plumphelmet,
|
||||
/obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle)
|
||||
/obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle,
|
||||
/obj/item/reagent_containers/food/snacks/faggot,
|
||||
/obj/item/reagent_containers/food/snacks/grown/citrus/orange,
|
||||
/obj/item/reagent_containers/food/snacks/grown/citrus/lemon,
|
||||
/obj/item/reagent_containers/food/snacks/grown/citrus/lime,
|
||||
/obj/item/reagent_containers/food/snacks/grown/bluecherries,
|
||||
/obj/item/reagent_containers/food/snacks/grown/cocoapod,
|
||||
/obj/item/reagent_containers/food/snacks/grown/vanillapod,
|
||||
/obj/item/reagent_containers/food/snacks/grown/grapes,
|
||||
/obj/item/reagent_containers/food/snacks/grown/strawberry,
|
||||
/obj/item/reagent_containers/food/snacks/grown/whitebeet,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/bear,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/spider,
|
||||
/obj/item/reagent_containers/food/snacks/spidereggs,
|
||||
/obj/item/reagent_containers/food/snacks/carpmeat,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/xeno,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/corgi,
|
||||
/obj/item/reagent_containers/food/snacks/grown/oat,
|
||||
/obj/item/reagent_containers/food/snacks/grown/wheat,
|
||||
/obj/item/reagent_containers/honeycomb,
|
||||
/obj/item/reagent_containers/food/snacks/grown/watermelon,
|
||||
/obj/item/reagent_containers/food/snacks/grown/onion,
|
||||
/obj/item/reagent_containers/food/snacks/grown/peach,
|
||||
/obj/item/reagent_containers/food/snacks/grown/peanut,
|
||||
/obj/item/reagent_containers/food/snacks/grown/pineapple,
|
||||
/obj/item/reagent_containers/food/snacks/grown/pumpkin,
|
||||
/obj/item/reagent_containers/food/snacks/meat/rawcrab,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/goliath,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/chicken,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/golem,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton,
|
||||
/obj/item/reagent_containers/food/snacks/egg,
|
||||
/obj/item/reagent_containers/food/snacks/grown/eggplant)
|
||||
new randomFood(src)
|
||||
|
||||
/obj/item/storage/box/ingredients/fiesta
|
||||
@@ -1061,6 +1096,15 @@
|
||||
new /obj/item/reagent_containers/food/snacks/grown/cabbage(src)
|
||||
new /obj/item/reagent_containers/food/snacks/grown/chili(src)
|
||||
|
||||
/obj/item/storage/box/ingredients/sushi
|
||||
theme_name = "sushi"
|
||||
|
||||
/obj/item/storage/box/ingredients/sushi/PopulateContents()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/reagent_containers/food/snacks/sea_weed(src)
|
||||
new /obj/item/reagent_containers/food/snacks/carpmeat(src)
|
||||
new /obj/item/reagent_containers/food/snacks/meat/rawcrab(src)
|
||||
|
||||
/obj/item/storage/box/emptysandbags
|
||||
name = "box of empty sandbags"
|
||||
|
||||
|
||||
@@ -211,9 +211,6 @@
|
||||
/obj/proc/check_uplink_validity()
|
||||
return 1
|
||||
|
||||
/obj/proc/intercept_user_move(dir, mob, newLoc, oldLoc)
|
||||
return
|
||||
|
||||
/obj/vv_get_dropdown()
|
||||
. = ..()
|
||||
.["Delete all of type"] = "?_src_=vars;[HrefToken()];delall=[REF(src)]"
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
icon_state = "sofamiddle"
|
||||
icon = 'icons/obj/sofa.dmi'
|
||||
buildstackamount = 1
|
||||
item_chair = null
|
||||
var/mutable_appearance/armrest
|
||||
|
||||
/obj/structure/chair/sofa/Initialize()
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
return FALSE
|
||||
var/turf/T = get_turf(src)
|
||||
for(var/mob/living/L in T)
|
||||
if(L.anchored || horizontal && L.mob_size > MOB_SIZE_TINY && L.density)
|
||||
if(L.move_resist >= MOVE_FORCE_VERY_STRONG || (horizontal && L.mob_size > MOB_SIZE_TINY && L.density))
|
||||
if(user)
|
||||
to_chat(user, "<span class='danger'>There's something large on top of [src], preventing it from opening.</span>" )
|
||||
return FALSE
|
||||
@@ -133,7 +133,7 @@
|
||||
if(closet != src && !closet.wall_mounted)
|
||||
return FALSE
|
||||
for(var/mob/living/L in T)
|
||||
if(L.anchored || horizontal && L.mob_size > MOB_SIZE_TINY && L.density)
|
||||
if(L.move_resist >= MOVE_FORCE_VERY_STRONG || horizontal && L.mob_size > MOB_SIZE_TINY && L.density)
|
||||
if(user)
|
||||
to_chat(user, "<span class='danger'>There's something too large in [src], preventing it from closing.</span>")
|
||||
return FALSE
|
||||
@@ -216,7 +216,7 @@
|
||||
if(!isliving(AM)) //let's not put ghosts or camera mobs inside closets...
|
||||
return FALSE
|
||||
var/mob/living/L = AM
|
||||
if(L.anchored || L.buckled || L.incorporeal_move || L.has_buckled_mobs())
|
||||
if(L.move_resist >= MOVE_FORCE_VERY_STRONG || L.buckled || L.incorporeal_move || L.has_buckled_mobs())
|
||||
return FALSE
|
||||
if(L.mob_size > MOB_SIZE_TINY) // Tiny mobs are treated as items.
|
||||
if(horizontal && L.density)
|
||||
@@ -451,7 +451,7 @@
|
||||
/obj/structure/closet/relaymove(mob/user)
|
||||
if(user.stat || !isturf(loc) || !isliving(user))
|
||||
return
|
||||
if(locked)
|
||||
if(locked || welded)
|
||||
if(message_cooldown <= world.time)
|
||||
message_cooldown = world.time + 50
|
||||
to_chat(user, "<span class='warning'>[src]'s door won't budge!</span>")
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
H.socks_color = recolor_undergarment(H, "socks", H.socks_color)
|
||||
|
||||
add_fingerprint(H)
|
||||
H.update_body()
|
||||
H.update_body(TRUE)
|
||||
|
||||
/obj/structure/dresser/proc/recolor_undergarment(mob/living/carbon/human/H, garment_type = "underwear", default_color)
|
||||
var/n_color = input(H, "Choose your [garment_type]'\s color.", "Character Preference", default_color) as color|null
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
new_spawn.underwear = "Nude" //You're a plant, partner
|
||||
new_spawn.undershirt = "Nude" //changing underwear/shirt/socks doesn't seem to function correctly right now because of some bug elsewhere?
|
||||
new_spawn.socks = "Nude"
|
||||
new_spawn.update_body()
|
||||
new_spawn.update_body(TRUE)
|
||||
|
||||
//Ash walker eggs: Spawns in ash walker dens in lavaland. Ghosts become unbreathing lizards that worship the Necropolis and are advised to retrieve corpses to create more ash walkers.
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ FLOOR SAFES
|
||||
var/obj/item/P = contents[i]
|
||||
dat += "<tr><td><a href='?src=[REF(src)];retrieve=[REF(P)]'>[P.name]</a></td></tr>"
|
||||
dat += "</table></center>"
|
||||
user << browse("<html><head><title>[name]</title></head><body>[dat]</body></html>", "window=safe;size=350x300")
|
||||
user << browse("<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>[name]</title></head><body>[dat]</body></html>", "window=safe;size=350x300")
|
||||
|
||||
/obj/structure/safe/Topic(href, href_list)
|
||||
if(!ishuman(usr))
|
||||
|
||||
@@ -47,6 +47,9 @@
|
||||
// by default, vis_contents is inherited from the turf that was here before
|
||||
vis_contents.Cut()
|
||||
|
||||
if(color)
|
||||
add_atom_colour(color, FIXED_COLOUR_PRIORITY)
|
||||
|
||||
assemble_baseturfs()
|
||||
|
||||
levelupdate()
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
to_chat(usr, "You seem to be selecting a mob that doesn't exist anymore.")
|
||||
return
|
||||
|
||||
var/body = "<html><head><title>Options for [M.key]</title></head>"
|
||||
var/body = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>Options for [M.key]</title></head>"
|
||||
body += "<body>Options panel for <b>[M]</b>"
|
||||
if(M.client)
|
||||
body += " played by <b>[M.client]</b> "
|
||||
@@ -194,7 +194,7 @@
|
||||
body += "<A href='?_src_=holder;[HrefToken()];tdomeadmin=[REF(M)]'>Thunderdome Admin</A> | "
|
||||
body += "<A href='?_src_=holder;[HrefToken()];tdomeobserve=[REF(M)]'>Thunderdome Observer</A> | "
|
||||
body += "<A href='?_src_=holder;[HrefToken()];makementor=[M.ckey]'>Make mentor</A> | "
|
||||
body += "<A href='?_src_=holder;[HrefToken()];removementor=[M.ckey]'>Remove mentor</A>"
|
||||
body += "<A href='?_src_=holder;[HrefToken()];removementor=[M.ckey]'>Remove mentor</A> | "
|
||||
body += "<A href='?_src_=holder;[HrefToken()];makeeligible=[REF(M)]'>Allow reentering round</A>"
|
||||
body += "<br>"
|
||||
body += "</body></html>"
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
if(!SSticker.HasRoundStarted())
|
||||
alert("The game hasn't started yet!")
|
||||
return
|
||||
var/list/dat = list("<html><head><title>Round Status</title></head><body><h1><B>Round Status</B></h1>")
|
||||
var/list/dat = list("<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>Round Status</title></head><body><h1><B>Round Status</B></h1>")
|
||||
if(SSticker.mode.replacementmode)
|
||||
dat += "Former Game Mode: <B>[SSticker.mode.name]</B><BR>"
|
||||
dat += "Replacement Game Mode: <B>[SSticker.mode.replacementmode.name]</B><BR>"
|
||||
|
||||
@@ -45,6 +45,6 @@
|
||||
|
||||
SEND_SIGNAL(H, COMSIG_HUMAN_ON_RANDOMIZE)
|
||||
|
||||
H.update_body()
|
||||
H.update_body(TRUE)
|
||||
H.update_hair()
|
||||
H.update_body_parts()
|
||||
|
||||
@@ -83,7 +83,9 @@
|
||||
<hr style='background:#000000; border:0; height:1px'>"}
|
||||
qdel(query_check_unused_rank)
|
||||
else if(!action)
|
||||
output += {"<head>
|
||||
output += {"
|
||||
<head>
|
||||
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
|
||||
<title>Permissions Panel</title>
|
||||
<script type='text/javascript' src='search.js'></script>
|
||||
</head>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
if(!check_rights())
|
||||
return
|
||||
log_admin("[key_name(usr)] checked the player panel.")
|
||||
var/dat = "<html><head><title>Player Panel</title></head>"
|
||||
var/dat = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>Player Panel</title></head>"
|
||||
|
||||
//javascript, the part that does most of the work~
|
||||
dat += {"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user