Merge branch 'master' into magrifles_again
This commit is contained in:
@@ -167,7 +167,7 @@
|
||||
/area/ruin/unpowered/xenonest)
|
||||
"aM" = (
|
||||
/obj/structure/alien/weeds,
|
||||
/obj/effect/decal/cleanable/xenoblood,
|
||||
/obj/effect/decal/cleanable/blood/xeno,
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/ruin/unpowered/xenonest)
|
||||
"aQ" = (
|
||||
@@ -260,7 +260,7 @@
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/decal/cleanable/xenoblood,
|
||||
/obj/effect/decal/cleanable/blood/xeno,
|
||||
/turf/open/indestructible/boss/air,
|
||||
/area/ruin/unpowered/xenonest)
|
||||
"be" = (
|
||||
@@ -381,7 +381,7 @@
|
||||
/obj/structure/stone_tile{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/decal/cleanable/xenoblood,
|
||||
/obj/effect/decal/cleanable/blood/xeno,
|
||||
/turf/open/indestructible/boss/air,
|
||||
/area/ruin/unpowered/xenonest)
|
||||
"bs" = (
|
||||
@@ -439,7 +439,7 @@
|
||||
/obj/structure/stone_tile{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/decal/cleanable/xenoblood,
|
||||
/obj/effect/decal/cleanable/blood/xeno,
|
||||
/turf/open/indestructible/boss/air,
|
||||
/area/ruin/unpowered/xenonest)
|
||||
"by" = (
|
||||
|
||||
@@ -279,6 +279,7 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/ruin/powered/seedvault)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
a
|
||||
|
||||
@@ -1288,7 +1288,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/derelictoutpost/cargobay)
|
||||
"cV" = (
|
||||
/obj/effect/decal/cleanable/xenoblood/xsplatter,
|
||||
/obj/effect/decal/cleanable/blood/splatter/xeno,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/derelictoutpost/cargobay)
|
||||
"cW" = (
|
||||
@@ -1525,7 +1525,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/derelictoutpost/cargobay)
|
||||
"dq" = (
|
||||
/obj/effect/decal/cleanable/xenoblood/xsplatter,
|
||||
/obj/effect/decal/cleanable/blood/splatter/xeno,
|
||||
/obj/structure/alien/weeds{
|
||||
color = "#4BAE56";
|
||||
desc = "A thick gelatinous surface covers the floor. Someone get the golashes.";
|
||||
|
||||
@@ -3830,7 +3830,7 @@
|
||||
/turf/open/floor/engine/cult,
|
||||
/area/awaymission/academy/academycellar)
|
||||
"kY" = (
|
||||
/obj/effect/decal/cleanable/xenoblood,
|
||||
/obj/effect/decal/cleanable/blood/xeno,
|
||||
/turf/open/floor/engine/cult,
|
||||
/area/awaymission/academy/academycellar)
|
||||
"kZ" = (
|
||||
|
||||
@@ -873,7 +873,7 @@
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/decal/cleanable/xenoblood,
|
||||
/obj/effect/decal/cleanable/blood/xeno,
|
||||
/turf/open/floor/plating{
|
||||
initial_gas_mix = "n2=23;o2=14"
|
||||
},
|
||||
@@ -945,7 +945,7 @@
|
||||
/area/awaymission/caves/research)
|
||||
"cN" = (
|
||||
/obj/machinery/door/window/eastleft,
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs,
|
||||
/obj/effect/decal/cleanable/blood/gibs/xeno,
|
||||
/turf/open/floor/plating{
|
||||
initial_gas_mix = "n2=23;o2=14"
|
||||
},
|
||||
@@ -1015,7 +1015,7 @@
|
||||
},
|
||||
/area/awaymission/caves/BMP_asteroid/level_two)
|
||||
"cV" = (
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs,
|
||||
/obj/effect/decal/cleanable/blood/gibs/xeno,
|
||||
/turf/open/floor/plating{
|
||||
initial_gas_mix = "n2=23;o2=14"
|
||||
},
|
||||
|
||||
@@ -5597,8 +5597,8 @@
|
||||
},
|
||||
/area/awaymission/moonoutpost19/arrivals)
|
||||
"kK" = (
|
||||
/obj/effect/decal/cleanable/xenoblood,
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs,
|
||||
/obj/effect/decal/cleanable/blood/xeno,
|
||||
/obj/effect/decal/cleanable/blood/gibs/xeno,
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
@@ -5608,7 +5608,7 @@
|
||||
},
|
||||
/area/awaymission/moonoutpost19/arrivals)
|
||||
"kL" = (
|
||||
/obj/effect/decal/cleanable/xenoblood,
|
||||
/obj/effect/decal/cleanable/blood/xeno,
|
||||
/obj/effect/decal/remains/xeno{
|
||||
desc = "They look like the remains of something... alien. The front of skull appears to have been completely obliterated."
|
||||
},
|
||||
|
||||
@@ -34753,12 +34753,7 @@
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/sleeper)
|
||||
"bCO" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/storage/box/bodybags{
|
||||
pixel_x = 3;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/item/storage/box/rxglasses,
|
||||
/obj/machinery/bloodbankgen,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/sleeper)
|
||||
"bCP" = (
|
||||
@@ -36538,6 +36533,11 @@
|
||||
"bGR" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/hand_labeler,
|
||||
/obj/item/storage/box/rxglasses,
|
||||
/obj/item/storage/box/bodybags{
|
||||
pixel_x = 3;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/item/gun/syringe,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/sleeper)
|
||||
|
||||
@@ -89232,7 +89232,7 @@
|
||||
/area/maintenance/port)
|
||||
"cTz" = (
|
||||
/obj/effect/decal/remains/xeno,
|
||||
/obj/effect/decal/cleanable/xenoblood,
|
||||
/obj/effect/decal/cleanable/blood/xeno,
|
||||
/turf/open/floor/circuit/green,
|
||||
/area/science/xenobiology)
|
||||
"cTA" = (
|
||||
@@ -93013,10 +93013,10 @@
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"cZK" = (
|
||||
/obj/item/twohanded/required/kirbyplants/random,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/bloodbankgen,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"cZL" = (
|
||||
@@ -127842,8 +127842,7 @@
|
||||
icon_state = "airlock_control_standby";
|
||||
id = "chapelgun";
|
||||
name = "Mass Driver Controller";
|
||||
pixel_x = -24;
|
||||
pixel_y = 0
|
||||
pixel_x = -24
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/chapel/office)
|
||||
|
||||
@@ -56605,11 +56605,6 @@
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/medical/sleeper)
|
||||
"cfK" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/paper_bin{
|
||||
pixel_x = -2;
|
||||
pixel_y = 4
|
||||
},
|
||||
/obj/machinery/light_switch{
|
||||
pixel_x = 11;
|
||||
pixel_y = 23
|
||||
@@ -56624,6 +56619,7 @@
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/bloodbankgen,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/medical/sleeper)
|
||||
"cfL" = (
|
||||
|
||||
@@ -30073,10 +30073,8 @@
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/zone3)
|
||||
"bbs" = (
|
||||
/obj/item/twohanded/required/kirbyplants{
|
||||
icon_state = "plant-21"
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue,
|
||||
/obj/machinery/bloodbankgen,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/zone3)
|
||||
"bbt" = (
|
||||
@@ -43077,7 +43075,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/atmos)
|
||||
"vsf" = (
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs,
|
||||
/obj/effect/decal/cleanable/blood/gibs/xeno,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
|
||||
@@ -24138,8 +24138,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/keycard_auth{
|
||||
pixel_x = -23;
|
||||
pixel_y = 0
|
||||
pixel_x = -23
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/quartermaster/qm)
|
||||
@@ -31872,14 +31871,11 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/item/twohanded/required/kirbyplants{
|
||||
icon_state = "plant-21";
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/bloodbankgen,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/sleeper)
|
||||
"bwG" = (
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Arrivals Shuttle Airlock"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/arrival)
|
||||
"d" = (
|
||||
@@ -150,17 +151,21 @@
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/shuttle/arrival)
|
||||
"B" = (
|
||||
/obj/machinery/porta_turret/centcom_shuttle,
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/arrival)
|
||||
"S" = (
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/arrival)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
b
|
||||
B
|
||||
o
|
||||
d
|
||||
d
|
||||
b
|
||||
B
|
||||
a
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
|
||||
@@ -165,6 +165,7 @@
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/shuttle/arrival)
|
||||
"o" = (
|
||||
@@ -449,6 +450,10 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/arrival)
|
||||
"T" = (
|
||||
/obj/machinery/porta_turret/centcom_shuttle,
|
||||
/turf/closed/wall/mineral/plastitanium,
|
||||
/area/shuttle/arrival)
|
||||
"U" = (
|
||||
/obj/machinery/computer{
|
||||
dir = 1;
|
||||
@@ -480,7 +485,7 @@
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
d
|
||||
T
|
||||
f
|
||||
g
|
||||
n
|
||||
@@ -632,7 +637,7 @@ a
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
a
|
||||
d
|
||||
T
|
||||
f
|
||||
g
|
||||
n
|
||||
|
||||
@@ -87,6 +87,7 @@
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 9
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/arrival)
|
||||
"k" = (
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Arrivals Shuttle Airlock"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/arrival)
|
||||
"d" = (
|
||||
@@ -139,16 +140,20 @@
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/shuttle/arrival)
|
||||
"w" = (
|
||||
/obj/machinery/porta_turret/centcom_shuttle,
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/arrival)
|
||||
"C" = (
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/arrival)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
b
|
||||
w
|
||||
m
|
||||
m
|
||||
b
|
||||
w
|
||||
a
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
/turf/closed/wall,
|
||||
/area/shuttle/escape)
|
||||
"f" = (
|
||||
/turf/open/floor/plating/airless,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"g" = (
|
||||
/obj/docking_port/mobile/emergency/shuttle_build{
|
||||
@@ -39,32 +39,45 @@
|
||||
preferred_direction = 2;
|
||||
width = 30
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/obj/machinery/door/airlock,
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"h" = (
|
||||
/obj/machinery/computer/emergency_shuttle{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"K" = (
|
||||
/obj/machinery/door/airlock,
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
c
|
||||
e
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
K
|
||||
e
|
||||
g
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
K
|
||||
e
|
||||
K
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
a
|
||||
@@ -128,7 +141,7 @@ f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
e
|
||||
a
|
||||
a
|
||||
a
|
||||
@@ -192,8 +205,8 @@ f
|
||||
f
|
||||
e
|
||||
e
|
||||
f
|
||||
f
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
"}
|
||||
@@ -257,7 +270,7 @@ f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
e
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
c
|
||||
@@ -288,7 +301,7 @@ f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
e
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
b
|
||||
@@ -318,8 +331,8 @@ f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
h
|
||||
e
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
b
|
||||
@@ -350,7 +363,7 @@ f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
e
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
c
|
||||
@@ -381,7 +394,7 @@ f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
e
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
b
|
||||
@@ -412,7 +425,7 @@ f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
e
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
b
|
||||
@@ -471,8 +484,8 @@ f
|
||||
f
|
||||
e
|
||||
e
|
||||
f
|
||||
f
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
"}
|
||||
@@ -531,7 +544,7 @@ f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
e
|
||||
a
|
||||
a
|
||||
a
|
||||
@@ -573,25 +586,25 @@ a
|
||||
a
|
||||
c
|
||||
e
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
a
|
||||
|
||||
@@ -2,6 +2,13 @@
|
||||
"aa" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"ab" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"ac" = (
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
@@ -16,17 +23,7 @@
|
||||
},
|
||||
/turf/open/floor/mineral/titanium/yellow,
|
||||
/area/shuttle/escape)
|
||||
"ah" = (
|
||||
/obj/effect/spawner/structure/window/shuttle,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"ai" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"aj" = (
|
||||
"af" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
@@ -37,8 +34,13 @@
|
||||
name = "Asteroid emergency shuttle";
|
||||
width = 28
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"ah" = (
|
||||
/obj/effect/spawner/structure/window/shuttle,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"al" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock";
|
||||
@@ -618,7 +620,7 @@ aa
|
||||
aa
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
ai
|
||||
ab
|
||||
at
|
||||
at
|
||||
at
|
||||
@@ -708,7 +710,7 @@ aa
|
||||
aa
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
aj
|
||||
af
|
||||
at
|
||||
at
|
||||
at
|
||||
|
||||
@@ -5,9 +5,10 @@
|
||||
},
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape/backup)
|
||||
"c" = (
|
||||
"b" = (
|
||||
/obj/machinery/door/airlock/titanium,
|
||||
/obj/docking_port/mobile/emergency/backup,
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape/backup)
|
||||
"f" = (
|
||||
@@ -55,7 +56,7 @@
|
||||
(1,1,1) = {"
|
||||
m
|
||||
m
|
||||
c
|
||||
b
|
||||
m
|
||||
m
|
||||
m
|
||||
|
||||
+232
-196
@@ -10,15 +10,8 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"ad" = (
|
||||
/obj/structure/table,
|
||||
/obj/machinery/chem_dispenser/drinks/beer{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/obj/effect/spawner/structure/window/shuttle,
|
||||
/turf/open/space/basic,
|
||||
/area/shuttle/escape)
|
||||
"ae" = (
|
||||
/turf/closed/wall/mineral/titanium/nodiagonal,
|
||||
@@ -45,19 +38,10 @@
|
||||
pixel_x = -4;
|
||||
pixel_y = 6
|
||||
},
|
||||
/obj/item/reagent_containers/food/drinks/bottle/whiskey,
|
||||
/obj/item/storage/box/drinkingglasses,
|
||||
/turf/open/floor/carpet,
|
||||
/area/shuttle/escape)
|
||||
"aj" = (
|
||||
/obj/structure/table,
|
||||
/obj/machinery/chem_dispenser/drinks{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"ak" = (
|
||||
/obj/structure/extinguisher_cabinet{
|
||||
pixel_y = 30
|
||||
@@ -88,12 +72,6 @@
|
||||
},
|
||||
/turf/open/floor/carpet,
|
||||
/area/shuttle/escape)
|
||||
"ap" = (
|
||||
/obj/machinery/computer/security{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/carpet,
|
||||
/area/shuttle/escape)
|
||||
"aq" = (
|
||||
/obj/machinery/computer/crew{
|
||||
dir = 4
|
||||
@@ -122,17 +100,53 @@
|
||||
pixel_x = 6;
|
||||
pixel_y = -24
|
||||
},
|
||||
/obj/structure/table/wood/poker,
|
||||
/obj/item/storage/box/drinkingglasses,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/whiskey,
|
||||
/obj/machinery/light,
|
||||
/turf/open/floor/carpet,
|
||||
/area/shuttle/escape)
|
||||
"au" = (
|
||||
/obj/machinery/computer/communications{
|
||||
dir = 8
|
||||
/obj/structure/table,
|
||||
/obj/item/storage/backpack/duffelbag/med/surgery,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"av" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
/turf/open/floor/carpet,
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/mineral/plastitanium/red/brig,
|
||||
/area/shuttle/escape)
|
||||
"aw" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/docking_port/mobile/emergency{
|
||||
name = "The Emergency Escape Bar"
|
||||
},
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"ax" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"ay" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/shuttle/escape)
|
||||
"az" = (
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
@@ -145,6 +159,12 @@
|
||||
/obj/machinery/status_display/evac,
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"aB" = (
|
||||
/obj/machinery/computer/security{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/carpet,
|
||||
/area/shuttle/escape)
|
||||
"aC" = (
|
||||
/obj/structure/chair/comfy/shuttle,
|
||||
/turf/open/floor/mineral/plastitanium/red/brig,
|
||||
@@ -183,10 +203,10 @@
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/shuttle/escape)
|
||||
"aG" = (
|
||||
/obj/structure/chair/stool{
|
||||
can_buckle = 1
|
||||
/obj/machinery/computer/communications{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/turf/open/floor/carpet,
|
||||
/area/shuttle/escape)
|
||||
"aH" = (
|
||||
/obj/machinery/flasher{
|
||||
@@ -220,11 +240,10 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"aK" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock";
|
||||
req_access_txt = "2"
|
||||
/obj/structure/chair/stool{
|
||||
can_buckle = 1
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium/red/brig,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/shuttle/escape)
|
||||
"aL" = (
|
||||
/obj/structure/extinguisher_cabinet{
|
||||
@@ -267,6 +286,12 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"aQ" = (
|
||||
/obj/machinery/light/small{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/shuttle/escape)
|
||||
"aR" = (
|
||||
/obj/structure/table/wood/bar{
|
||||
boot_dir = 8
|
||||
@@ -278,6 +303,15 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"aS" = (
|
||||
/obj/structure/table/wood/bar,
|
||||
/obj/item/instrument/guitar,
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"aT" = (
|
||||
/obj/structure/extinguisher_cabinet{
|
||||
pixel_x = 27
|
||||
},
|
||||
@@ -290,19 +324,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"aT" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/docking_port/mobile/emergency{
|
||||
name = "The Emergency Escape Bar"
|
||||
},
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"aU" = (
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
@@ -311,6 +332,17 @@
|
||||
/mob/living/simple_animal/hostile/alien/maid/barmaid,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"aV" = (
|
||||
/obj/structure/table,
|
||||
/obj/machinery/chem_dispenser/drinks/beer{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"aW" = (
|
||||
/obj/structure/chair/wood/normal,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
@@ -341,6 +373,17 @@
|
||||
/obj/effect/spawner/lootdrop/gambling,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/shuttle/escape)
|
||||
"bb" = (
|
||||
/obj/structure/table,
|
||||
/obj/machinery/chem_dispenser/drinks{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"bc" = (
|
||||
/obj/item/twohanded/required/kirbyplants{
|
||||
icon_state = "plant-21";
|
||||
@@ -369,10 +412,29 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"bg" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
"bf" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/storage/box/drinkingglasses,
|
||||
/obj/item/reagent_containers/food/drinks/shaker,
|
||||
/obj/item/storage/fancy/cigarettes/cigars/havana,
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"bg" = (
|
||||
/obj/item/twohanded/required/kirbyplants{
|
||||
icon_state = "plant-10"
|
||||
},
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"bh" = (
|
||||
/obj/machinery/vending/cigarette,
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
@@ -382,13 +444,24 @@
|
||||
"bi" = (
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"bj" = (
|
||||
/obj/effect/spawner/structure/window/shuttle,
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/shuttle/escape)
|
||||
"bk" = (
|
||||
/obj/machinery/vending/cigarette,
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
/obj/machinery/sleeper{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"bl" = (
|
||||
/obj/machinery/sleeper{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/light/small{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"bm" = (
|
||||
/obj/machinery/door/airlock{
|
||||
@@ -402,10 +475,13 @@
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"bo" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
/obj/structure/table,
|
||||
/obj/item/storage/firstaid/fire,
|
||||
/obj/item/storage/firstaid/brute{
|
||||
pixel_x = 4;
|
||||
pixel_y = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"bp" = (
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
@@ -417,10 +493,8 @@
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"br" = (
|
||||
/obj/machinery/sleeper{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/obj/machinery/computer/card,
|
||||
/turf/open/floor/carpet,
|
||||
/area/shuttle/escape)
|
||||
"bs" = (
|
||||
/obj/machinery/door/airlock{
|
||||
@@ -442,7 +516,6 @@
|
||||
/area/shuttle/escape)
|
||||
"bw" = (
|
||||
/obj/structure/table/optable,
|
||||
/obj/item/surgical_drapes,
|
||||
/obj/machinery/light/small{
|
||||
brightness = 3;
|
||||
dir = 8
|
||||
@@ -465,15 +538,12 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/shuttle/escape)
|
||||
"bz" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/circular_saw,
|
||||
/obj/item/hemostat,
|
||||
/obj/item/retractor,
|
||||
/obj/item/scalpel,
|
||||
/obj/item/surgicaldrill,
|
||||
/obj/item/cautery,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
"bA" = (
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"bC" = (
|
||||
/obj/structure/window/reinforced{
|
||||
@@ -486,10 +556,6 @@
|
||||
/obj/structure/shuttle/engine/propulsion,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/shuttle/escape)
|
||||
"bF" = (
|
||||
/obj/effect/spawner/structure/window/shuttle,
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/shuttle/escape)
|
||||
"bG" = (
|
||||
/obj/item/twohanded/required/kirbyplants{
|
||||
icon_state = "plant-21";
|
||||
@@ -505,15 +571,6 @@
|
||||
"bH" = (
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/shuttle/escape)
|
||||
"bI" = (
|
||||
/obj/structure/table/wood/bar,
|
||||
/obj/item/instrument/guitar,
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"bJ" = (
|
||||
/obj/structure/table/wood/bar,
|
||||
/obj/item/storage/fancy/donut_box,
|
||||
@@ -535,17 +592,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/shuttle/escape)
|
||||
"bN" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/storage/box/drinkingglasses,
|
||||
/obj/item/reagent_containers/food/drinks/shaker,
|
||||
/obj/item/storage/fancy/cigarettes/cigars/havana,
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"bO" = (
|
||||
/obj/structure/table/wood/bar,
|
||||
/obj/item/folder/red,
|
||||
@@ -584,25 +630,6 @@
|
||||
},
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"bT" = (
|
||||
/obj/item/twohanded/required/kirbyplants{
|
||||
icon_state = "plant-10"
|
||||
},
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"bU" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/storage/firstaid/fire,
|
||||
/obj/item/storage/firstaid/brute{
|
||||
pixel_x = 4;
|
||||
pixel_y = 4
|
||||
},
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"bV" = (
|
||||
/obj/structure/table/wood/bar{
|
||||
boot_dir = 8
|
||||
@@ -616,12 +643,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"bW" = (
|
||||
/obj/machinery/light/small{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/shuttle/escape)
|
||||
"bX" = (
|
||||
/obj/machinery/light{
|
||||
dir = 8
|
||||
@@ -658,15 +679,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"cb" = (
|
||||
/obj/machinery/sleeper{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/light/small{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
|
||||
(1,1,1) = {"
|
||||
aa
|
||||
@@ -676,17 +688,17 @@ aa
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
aK
|
||||
av
|
||||
ab
|
||||
aT
|
||||
aw
|
||||
ab
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ab
|
||||
bg
|
||||
ax
|
||||
ab
|
||||
bo
|
||||
ay
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
@@ -703,11 +715,11 @@ aH
|
||||
aL
|
||||
ab
|
||||
bY
|
||||
bH
|
||||
aZ
|
||||
bc
|
||||
aZ
|
||||
bH
|
||||
bA
|
||||
bA
|
||||
bA
|
||||
bA
|
||||
bA
|
||||
bZ
|
||||
ab
|
||||
bp
|
||||
@@ -727,11 +739,11 @@ aI
|
||||
aM
|
||||
ab
|
||||
aE
|
||||
aW
|
||||
ba
|
||||
bL
|
||||
bO
|
||||
bQ
|
||||
bH
|
||||
aZ
|
||||
bc
|
||||
aZ
|
||||
bH
|
||||
bR
|
||||
ab
|
||||
bp
|
||||
@@ -752,9 +764,9 @@ aM
|
||||
ab
|
||||
aE
|
||||
aW
|
||||
bJ
|
||||
bM
|
||||
bP
|
||||
ba
|
||||
bL
|
||||
bO
|
||||
bQ
|
||||
aE
|
||||
ab
|
||||
@@ -775,11 +787,11 @@ aJ
|
||||
ac
|
||||
ae
|
||||
aE
|
||||
bH
|
||||
bK
|
||||
bH
|
||||
bK
|
||||
bH
|
||||
aW
|
||||
bJ
|
||||
bM
|
||||
bP
|
||||
bQ
|
||||
aE
|
||||
aA
|
||||
bp
|
||||
@@ -799,11 +811,11 @@ aE
|
||||
aE
|
||||
bX
|
||||
aE
|
||||
aE
|
||||
aE
|
||||
aE
|
||||
aE
|
||||
aE
|
||||
bH
|
||||
bK
|
||||
bH
|
||||
bK
|
||||
bH
|
||||
aE
|
||||
bm
|
||||
bp
|
||||
@@ -814,10 +826,34 @@ bE
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
ac
|
||||
ag
|
||||
br
|
||||
an
|
||||
an
|
||||
az
|
||||
bA
|
||||
bA
|
||||
bA
|
||||
bA
|
||||
bA
|
||||
bA
|
||||
bA
|
||||
bA
|
||||
bA
|
||||
bA
|
||||
bA
|
||||
ae
|
||||
ae
|
||||
ab
|
||||
ab
|
||||
bC
|
||||
bE
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
ad
|
||||
ag
|
||||
an
|
||||
an
|
||||
ab
|
||||
aE
|
||||
aE
|
||||
aN
|
||||
@@ -830,13 +866,13 @@ aN
|
||||
aE
|
||||
ca
|
||||
ae
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
bw
|
||||
bi
|
||||
au
|
||||
bC
|
||||
bE
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
(9,1,1) = {"
|
||||
ac
|
||||
ai
|
||||
ao
|
||||
@@ -855,16 +891,16 @@ aN
|
||||
aE
|
||||
bn
|
||||
bi
|
||||
bw
|
||||
bz
|
||||
bi
|
||||
bi
|
||||
bC
|
||||
bE
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
(10,1,1) = {"
|
||||
ab
|
||||
ae
|
||||
ap
|
||||
au
|
||||
aB
|
||||
aG
|
||||
ab
|
||||
aF
|
||||
bH
|
||||
@@ -884,32 +920,32 @@ bS
|
||||
bC
|
||||
bE
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
aa
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
aG
|
||||
bW
|
||||
bI
|
||||
aS
|
||||
ad
|
||||
aY
|
||||
aj
|
||||
bN
|
||||
be
|
||||
bT
|
||||
bk
|
||||
bF
|
||||
br
|
||||
cb
|
||||
bU
|
||||
ab
|
||||
ab
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
aa
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
aK
|
||||
aQ
|
||||
aS
|
||||
aT
|
||||
aV
|
||||
aY
|
||||
bb
|
||||
bf
|
||||
be
|
||||
bg
|
||||
bh
|
||||
bj
|
||||
bk
|
||||
bl
|
||||
bo
|
||||
ab
|
||||
ab
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
|
||||
@@ -112,6 +112,11 @@
|
||||
/obj/machinery/light,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"w" = (
|
||||
/obj/machinery/door/airlock/titanium,
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"x" = (
|
||||
/obj/structure/table,
|
||||
/obj/machinery/recharger{
|
||||
@@ -197,6 +202,7 @@
|
||||
width = 14;
|
||||
name = "Birdboat emergency escape shuttle"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"L" = (
|
||||
@@ -574,7 +580,7 @@ p
|
||||
u
|
||||
b
|
||||
b
|
||||
G
|
||||
w
|
||||
K
|
||||
b
|
||||
b
|
||||
|
||||
@@ -2,6 +2,14 @@
|
||||
"aa" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"ab" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/mineral/plastitanium/red/brig,
|
||||
/area/shuttle/escape)
|
||||
"ac" = (
|
||||
/obj/effect/spawner/structure/window/shuttle,
|
||||
/turf/open/floor/plating,
|
||||
@@ -37,6 +45,23 @@
|
||||
/obj/item/storage/firstaid/fire,
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/shuttle/escape)
|
||||
"aj" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/docking_port/mobile/emergency{
|
||||
name = "Box emergency shuttle"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"ak" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"al" = (
|
||||
/obj/machinery/computer/atmos_alert{
|
||||
dir = 4
|
||||
@@ -171,13 +196,6 @@
|
||||
},
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"aI" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium/red/brig,
|
||||
/area/shuttle/escape)
|
||||
"aJ" = (
|
||||
/obj/structure/chair/comfy/shuttle{
|
||||
dir = 1
|
||||
@@ -192,15 +210,6 @@
|
||||
/obj/structure/table,
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/shuttle/escape)
|
||||
"aP" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/docking_port/mobile/emergency{
|
||||
name = "Box emergency shuttle"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aQ" = (
|
||||
/obj/structure/extinguisher_cabinet{
|
||||
pixel_x = -5;
|
||||
@@ -235,12 +244,6 @@
|
||||
},
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/shuttle/escape)
|
||||
"aV" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aW" = (
|
||||
/obj/structure/extinguisher_cabinet{
|
||||
pixel_y = -30
|
||||
@@ -362,10 +365,19 @@
|
||||
"ga" = (
|
||||
/turf/open/floor/mineral/titanium/white,
|
||||
/area/shuttle/escape)
|
||||
"gJ" = (
|
||||
/obj/structure/table/optable,
|
||||
/turf/open/floor/mineral/titanium/white,
|
||||
/area/shuttle/escape)
|
||||
"XC" = (
|
||||
/obj/structure/closet/emcloset,
|
||||
/turf/open/floor/mineral/titanium/white,
|
||||
/area/shuttle/escape)
|
||||
"ZQ" = (
|
||||
/obj/item/storage/backpack/duffelbag/med/surgery,
|
||||
/obj/structure/table,
|
||||
/turf/open/floor/mineral/titanium/white,
|
||||
/area/shuttle/escape)
|
||||
|
||||
(1,1,1) = {"
|
||||
aa
|
||||
@@ -375,17 +387,17 @@ aa
|
||||
ad
|
||||
ad
|
||||
ad
|
||||
aI
|
||||
ab
|
||||
ad
|
||||
aP
|
||||
aj
|
||||
ad
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ad
|
||||
aV
|
||||
ak
|
||||
ad
|
||||
aV
|
||||
ak
|
||||
ad
|
||||
ad
|
||||
ad
|
||||
@@ -531,7 +543,7 @@ aC
|
||||
ac
|
||||
XC
|
||||
bs
|
||||
XC
|
||||
gJ
|
||||
bi
|
||||
bk
|
||||
"}
|
||||
@@ -555,7 +567,7 @@ aC
|
||||
aZ
|
||||
ga
|
||||
ga
|
||||
ga
|
||||
ZQ
|
||||
bi
|
||||
bk
|
||||
"}
|
||||
|
||||
@@ -507,6 +507,35 @@
|
||||
/obj/item/book/manual/wiki/security_space_law,
|
||||
/turf/open/floor/mineral/plastitanium/red/brig,
|
||||
/area/shuttle/escape)
|
||||
"aW" = (
|
||||
/obj/machinery/door/airlock/shuttle{
|
||||
name = "Emergency Shuttle Airlock";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aX" = (
|
||||
/obj/machinery/door/airlock/shuttle{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/docking_port/mobile/emergency{
|
||||
dheight = 0;
|
||||
dwidth = 15;
|
||||
height = 20;
|
||||
name = "Cere emergency shuttle";
|
||||
width = 42
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aY" = (
|
||||
/obj/machinery/door/airlock/shuttle{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aZ" = (
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
@@ -639,13 +668,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"bv" = (
|
||||
/obj/machinery/door/airlock/shuttle{
|
||||
name = "Emergency Shuttle Airlock";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bw" = (
|
||||
/obj/structure/chair/comfy/shuttle{
|
||||
dir = 1
|
||||
@@ -696,19 +718,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"bE" = (
|
||||
/obj/machinery/door/airlock/shuttle{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/docking_port/mobile/emergency{
|
||||
dheight = 0;
|
||||
dwidth = 15;
|
||||
height = 20;
|
||||
name = "Cere emergency shuttle";
|
||||
width = 42
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bF" = (
|
||||
/obj/structure/closet/crate/bin,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
@@ -936,12 +945,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"bY" = (
|
||||
/obj/machinery/door/airlock/shuttle{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bZ" = (
|
||||
/obj/structure/extinguisher_cabinet{
|
||||
pixel_x = -28
|
||||
@@ -1291,26 +1294,17 @@
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/item/circular_saw,
|
||||
/obj/item/scalpel{
|
||||
pixel_y = 12
|
||||
},
|
||||
/obj/item/hemostat,
|
||||
/obj/item/surgicaldrill,
|
||||
/obj/item/cautery{
|
||||
pixel_x = 4
|
||||
},
|
||||
/obj/item/retractor,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue,
|
||||
/obj/item/storage/backpack/duffelbag/med/surgery,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/shuttle/escape)
|
||||
"cG" = (
|
||||
@@ -1361,15 +1355,13 @@
|
||||
/obj/item/clothing/suit/apron/surgical,
|
||||
/obj/item/clothing/gloves/color/latex,
|
||||
/obj/item/clothing/mask/surgical,
|
||||
/obj/item/surgical_drapes,
|
||||
/obj/item/razor,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 8
|
||||
},
|
||||
@@ -1762,17 +1754,17 @@ ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
bv
|
||||
aW
|
||||
ab
|
||||
bE
|
||||
aX
|
||||
ab
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
ab
|
||||
bY
|
||||
aY
|
||||
ab
|
||||
bY
|
||||
aY
|
||||
ab
|
||||
aa
|
||||
aa
|
||||
|
||||
@@ -117,6 +117,23 @@
|
||||
},
|
||||
/turf/open/floor/mineral/bananium,
|
||||
/area/shuttle/escape)
|
||||
"aw" = (
|
||||
/obj/machinery/door/airlock/bananium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/docking_port/mobile/emergency{
|
||||
name = "Snappop(tm)!"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"ax" = (
|
||||
/obj/machinery/door/airlock/bananium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"ay" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/storage/firstaid/fire,
|
||||
@@ -137,6 +154,8 @@
|
||||
/obj/machinery/door/airlock/bananium/glass{
|
||||
name = "Emergency Shuttle Greentext"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/obj/structure/barricade/wooden/crude,
|
||||
/turf/open/floor/bluespace,
|
||||
/area/shuttle/escape)
|
||||
"aC" = (
|
||||
@@ -170,15 +189,6 @@
|
||||
/obj/item/toy/sword,
|
||||
/turf/open/floor/mineral/bananium,
|
||||
/area/shuttle/escape)
|
||||
"aI" = (
|
||||
/obj/machinery/door/airlock/bananium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/docking_port/mobile/emergency{
|
||||
name = "Snappop(tm)!"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aJ" = (
|
||||
/obj/item/toy/snappop/phoenix,
|
||||
/obj/machinery/light/small{
|
||||
@@ -233,12 +243,6 @@
|
||||
},
|
||||
/turf/open/floor/mineral/bananium,
|
||||
/area/shuttle/escape)
|
||||
"aQ" = (
|
||||
/obj/machinery/door/airlock/bananium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aR" = (
|
||||
/obj/item/toy/snappop/phoenix,
|
||||
/obj/machinery/light/small,
|
||||
@@ -338,6 +342,11 @@
|
||||
/obj/structure/shuttle/engine/propulsion,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/shuttle/escape)
|
||||
"bL" = (
|
||||
/obj/item/toy/snappop/phoenix,
|
||||
/obj/item/pneumatic_cannon/pie/selfcharge,
|
||||
/turf/open/floor/bluespace,
|
||||
/area/shuttle/escape)
|
||||
"Zf" = (
|
||||
/obj/structure/closet/emcloset,
|
||||
/obj/item/toy/sword,
|
||||
@@ -354,15 +363,15 @@ ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
aI
|
||||
aw
|
||||
ab
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ab
|
||||
aQ
|
||||
ax
|
||||
ab
|
||||
aQ
|
||||
ax
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
@@ -467,7 +476,7 @@ bg
|
||||
(6,1,1) = {"
|
||||
ac
|
||||
ag
|
||||
ak
|
||||
bL
|
||||
aq
|
||||
ab
|
||||
av
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
name = "Emergency Shuttle Airlock";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"d" = (
|
||||
@@ -64,6 +65,7 @@
|
||||
name = "Secure Transport Vessel 5";
|
||||
width = 14
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"l" = (
|
||||
@@ -97,6 +99,7 @@
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"r" = (
|
||||
|
||||
@@ -147,7 +147,6 @@
|
||||
/area/shuttle/escape)
|
||||
"al" = (
|
||||
/obj/structure/table/optable,
|
||||
/obj/item/surgical_drapes,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
@@ -157,18 +156,7 @@
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/shuttle/escape)
|
||||
"am" = (
|
||||
/obj/item/scalpel{
|
||||
pixel_y = 12
|
||||
},
|
||||
/obj/item/circular_saw,
|
||||
/obj/item/retractor{
|
||||
pixel_x = 4
|
||||
},
|
||||
/obj/item/hemostat{
|
||||
pixel_x = -4
|
||||
},
|
||||
/obj/item/clothing/gloves/color/latex,
|
||||
/obj/item/clothing/mask/surgical,
|
||||
/obj/item/storage/backpack/duffelbag/med/surgery,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
@@ -176,8 +164,6 @@
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 8
|
||||
},
|
||||
/obj/item/surgicaldrill,
|
||||
/obj/item/cautery,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/shuttle/escape)
|
||||
"an" = (
|
||||
@@ -490,6 +476,7 @@
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/shuttle/escape)
|
||||
"aP" = (
|
||||
@@ -562,6 +549,7 @@
|
||||
preferred_direction = 2;
|
||||
port_direction = 4
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aX" = (
|
||||
@@ -796,6 +784,7 @@
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/shuttle/escape)
|
||||
"bw" = (
|
||||
@@ -908,6 +897,7 @@
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"bM" = (
|
||||
|
||||
@@ -83,6 +83,7 @@
|
||||
/obj/machinery/door/airlock/gold{
|
||||
req_access_txt = "19"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/mineral/gold,
|
||||
/area/shuttle/escape)
|
||||
"q" = (
|
||||
@@ -110,6 +111,7 @@
|
||||
heat_proof = 1;
|
||||
resistance_flags = 2
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/mineral/plasma,
|
||||
/area/shuttle/escape)
|
||||
"v" = (
|
||||
@@ -118,6 +120,7 @@
|
||||
/area/shuttle/escape)
|
||||
"w" = (
|
||||
/obj/machinery/door/airlock/gold,
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/wood,
|
||||
/area/shuttle/escape)
|
||||
"x" = (
|
||||
@@ -220,6 +223,11 @@
|
||||
"O" = (
|
||||
/turf/closed/wall/mineral/plastitanium/nodiagonal,
|
||||
/area/shuttle/escape)
|
||||
"P" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plasteel/elevatorshaft,
|
||||
/area/shuttle/escape)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
@@ -262,7 +270,7 @@ r
|
||||
r
|
||||
r
|
||||
q
|
||||
c
|
||||
P
|
||||
x
|
||||
C
|
||||
I
|
||||
@@ -274,7 +282,7 @@ b
|
||||
b
|
||||
h
|
||||
m
|
||||
c
|
||||
P
|
||||
r
|
||||
r
|
||||
r
|
||||
@@ -286,7 +294,7 @@ r
|
||||
r
|
||||
r
|
||||
r
|
||||
c
|
||||
P
|
||||
x
|
||||
D
|
||||
D
|
||||
@@ -298,7 +306,7 @@ c
|
||||
d
|
||||
i
|
||||
i
|
||||
c
|
||||
P
|
||||
r
|
||||
r
|
||||
r
|
||||
@@ -310,7 +318,7 @@ j
|
||||
r
|
||||
r
|
||||
r
|
||||
c
|
||||
P
|
||||
x
|
||||
x
|
||||
x
|
||||
@@ -322,7 +330,7 @@ c
|
||||
e
|
||||
j
|
||||
j
|
||||
c
|
||||
P
|
||||
r
|
||||
r
|
||||
s
|
||||
@@ -334,7 +342,7 @@ j
|
||||
s
|
||||
r
|
||||
r
|
||||
c
|
||||
P
|
||||
y
|
||||
E
|
||||
y
|
||||
@@ -346,7 +354,7 @@ c
|
||||
f
|
||||
j
|
||||
n
|
||||
c
|
||||
P
|
||||
r
|
||||
j
|
||||
j
|
||||
@@ -358,7 +366,7 @@ t
|
||||
j
|
||||
j
|
||||
r
|
||||
c
|
||||
P
|
||||
z
|
||||
F
|
||||
J
|
||||
@@ -382,7 +390,7 @@ j
|
||||
s
|
||||
r
|
||||
r
|
||||
c
|
||||
P
|
||||
y
|
||||
G
|
||||
y
|
||||
@@ -394,7 +402,7 @@ c
|
||||
g
|
||||
k
|
||||
k
|
||||
c
|
||||
P
|
||||
r
|
||||
r
|
||||
r
|
||||
@@ -406,7 +414,7 @@ j
|
||||
r
|
||||
r
|
||||
r
|
||||
c
|
||||
P
|
||||
x
|
||||
x
|
||||
x
|
||||
@@ -418,7 +426,7 @@ b
|
||||
b
|
||||
l
|
||||
o
|
||||
c
|
||||
P
|
||||
r
|
||||
r
|
||||
r
|
||||
@@ -430,7 +438,7 @@ r
|
||||
r
|
||||
r
|
||||
r
|
||||
c
|
||||
P
|
||||
A
|
||||
x
|
||||
K
|
||||
@@ -454,7 +462,7 @@ r
|
||||
r
|
||||
r
|
||||
q
|
||||
c
|
||||
P
|
||||
B
|
||||
H
|
||||
L
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"h" = (
|
||||
@@ -41,6 +42,7 @@
|
||||
name = "NES Port";
|
||||
width = 19
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"l" = (
|
||||
@@ -67,9 +69,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"q" = (
|
||||
/obj/machinery/sleeper{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/sleeper,
|
||||
/turf/open/floor/mineral/titanium/white,
|
||||
/area/shuttle/escape)
|
||||
"r" = (
|
||||
@@ -93,11 +93,6 @@
|
||||
},
|
||||
/turf/open/floor/mineral/titanium/yellow,
|
||||
/area/shuttle/escape)
|
||||
"v" = (
|
||||
/obj/structure/table,
|
||||
/obj/effect/spawner/lootdrop/maintenance,
|
||||
/turf/open/floor/mineral/titanium/white,
|
||||
/area/shuttle/escape)
|
||||
"w" = (
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Emergency Shuttle Infirmary"
|
||||
@@ -186,12 +181,18 @@
|
||||
/obj/structure/window/reinforced,
|
||||
/turf/open/floor/mineral/titanium/yellow,
|
||||
/area/shuttle/escape)
|
||||
"P" = (
|
||||
/obj/structure/table/optable,
|
||||
/turf/open/floor/mineral/titanium/white,
|
||||
/area/shuttle/escape)
|
||||
"Q" = (
|
||||
/obj/machinery/light,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"R" = (
|
||||
/obj/machinery/light/small,
|
||||
/obj/structure/table,
|
||||
/obj/item/storage/backpack/duffelbag/med/surgery,
|
||||
/turf/open/floor/mineral/titanium/white,
|
||||
/area/shuttle/escape)
|
||||
"S" = (
|
||||
@@ -272,8 +273,8 @@ X
|
||||
c
|
||||
d
|
||||
q
|
||||
v
|
||||
q
|
||||
n
|
||||
P
|
||||
d
|
||||
H
|
||||
H
|
||||
@@ -284,7 +285,7 @@ Y
|
||||
(4,1,1) = {"
|
||||
d
|
||||
l
|
||||
n
|
||||
q
|
||||
n
|
||||
R
|
||||
d
|
||||
|
||||
@@ -0,0 +1,630 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"aa" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"ab" = (
|
||||
/turf/closed/wall/rust,
|
||||
/area/shuttle/escape)
|
||||
"ac" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/turf/open/floor/plasteel/elevatorshaft,
|
||||
/area/shuttle/escape)
|
||||
"ad" = (
|
||||
/turf/closed/wall,
|
||||
/area/shuttle/escape)
|
||||
"ae" = (
|
||||
/turf/open/floor/holofloor/wood,
|
||||
/area/shuttle/escape)
|
||||
"af" = (
|
||||
/obj/machinery/computer/emergency_shuttle,
|
||||
/turf/open/floor/holofloor/wood,
|
||||
/area/shuttle/escape)
|
||||
"ag" = (
|
||||
/obj/effect/decal/cleanable/cobweb/cobweb2,
|
||||
/turf/open/floor/holofloor/wood,
|
||||
/area/shuttle/escape)
|
||||
"ah" = (
|
||||
/obj/machinery/computer/atmos_alert{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/holofloor/wood,
|
||||
/area/shuttle/escape)
|
||||
"ai" = (
|
||||
/obj/structure/chair/office/dark,
|
||||
/turf/open/floor/holofloor/wood,
|
||||
/area/shuttle/escape)
|
||||
"aj" = (
|
||||
/obj/structure/chair/comfy/brown{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/holofloor/wood,
|
||||
/area/shuttle/escape)
|
||||
"ak" = (
|
||||
/obj/item/chair,
|
||||
/turf/open/floor/holofloor/wood,
|
||||
/area/shuttle/escape)
|
||||
"al" = (
|
||||
/obj/machinery/computer/security{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/holofloor/wood,
|
||||
/area/shuttle/escape)
|
||||
"am" = (
|
||||
/obj/machinery/computer/crew{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/holofloor/wood,
|
||||
/area/shuttle/escape)
|
||||
"an" = (
|
||||
/obj/machinery/light,
|
||||
/turf/open/floor/holofloor/wood,
|
||||
/area/shuttle/escape)
|
||||
"ao" = (
|
||||
/obj/machinery/computer/communications{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/holofloor/wood,
|
||||
/area/shuttle/escape)
|
||||
"ap" = (
|
||||
/obj/machinery/status_display/evac,
|
||||
/turf/closed/wall/rust,
|
||||
/area/shuttle/escape)
|
||||
"aq" = (
|
||||
/obj/machinery/door/airlock/gold{
|
||||
req_access_txt = "19"
|
||||
},
|
||||
/turf/open/floor/holofloor/wood,
|
||||
/area/shuttle/escape)
|
||||
"ar" = (
|
||||
/obj/structure/urinal{
|
||||
pixel_y = 31
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium/red/brig,
|
||||
/area/shuttle/escape)
|
||||
"as" = (
|
||||
/obj/structure/chair/comfy/shuttle,
|
||||
/turf/open/floor/mineral/plastitanium/red/brig,
|
||||
/area/shuttle/escape)
|
||||
"at" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"au" = (
|
||||
/obj/machinery/deepfryer,
|
||||
/turf/open/floor/plasteel/shuttle,
|
||||
/area/shuttle/escape)
|
||||
"av" = (
|
||||
/turf/open/floor/plasteel/shuttle,
|
||||
/area/shuttle/escape)
|
||||
"aw" = (
|
||||
/obj/structure/closet/crate/freezer/blood,
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/shuttle/escape)
|
||||
"ax" = (
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"ay" = (
|
||||
/obj/machinery/flasher{
|
||||
id = "shuttle_flasher";
|
||||
pixel_x = -24;
|
||||
pixel_y = 6
|
||||
},
|
||||
/obj/machinery/button/flasher{
|
||||
id = "shuttle_flasher";
|
||||
pixel_x = -24;
|
||||
pixel_y = -6
|
||||
},
|
||||
/obj/machinery/light/small{
|
||||
brightness = 3;
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium/red/brig,
|
||||
/area/shuttle/escape)
|
||||
"az" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/mineral/plastitanium/red/brig,
|
||||
/area/shuttle/escape)
|
||||
"aA" = (
|
||||
/turf/open/floor/mineral/plastitanium/red/brig,
|
||||
/area/shuttle/escape)
|
||||
"aB" = (
|
||||
/obj/machinery/door/airlock/security/glass{
|
||||
name = "Emergency Shuttle Brig";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium,
|
||||
/area/shuttle/escape)
|
||||
"aC" = (
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/shuttle/escape)
|
||||
"aD" = (
|
||||
/obj/structure/closet,
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/shuttle/escape)
|
||||
"aE" = (
|
||||
/obj/machinery/door/airlock/security/glass{
|
||||
name = "Emergency Shuttle Airlock";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aF" = (
|
||||
/obj/structure/chair/comfy/shuttle{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium/red/brig,
|
||||
/area/shuttle/escape)
|
||||
"aG" = (
|
||||
/obj/effect/decal/cleanable/blood/splatter,
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/shuttle/escape)
|
||||
"aH" = (
|
||||
/obj/structure/noticeboard,
|
||||
/turf/closed/wall/rust,
|
||||
/area/shuttle/escape)
|
||||
"aI" = (
|
||||
/obj/docking_port/mobile/emergency{
|
||||
height = 15;
|
||||
name = "Gorilla Emergency Shuttle"
|
||||
},
|
||||
/obj/machinery/door/airlock/security/glass{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aJ" = (
|
||||
/obj/structure/extinguisher_cabinet{
|
||||
pixel_x = -5;
|
||||
pixel_y = 30
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aK" = (
|
||||
/obj/structure/closet/crate/trashcart,
|
||||
/turf/open/floor/plasteel/shuttle,
|
||||
/area/shuttle/escape)
|
||||
"aL" = (
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel/shuttle,
|
||||
/area/shuttle/escape)
|
||||
"aM" = (
|
||||
/obj/structure/reagent_dispensers/keg/mead,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aN" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aO" = (
|
||||
/obj/effect/decal/cleanable/glass,
|
||||
/turf/open/floor/plasteel/shuttle,
|
||||
/area/shuttle/escape)
|
||||
"aP" = (
|
||||
/obj/structure/fluff/broken_flooring,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aQ" = (
|
||||
/obj/structure/closet/crate/freezer,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aR" = (
|
||||
/obj/structure/chair/comfy/shuttle{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/shuttle,
|
||||
/area/shuttle/escape)
|
||||
"aS" = (
|
||||
/obj/effect/decal/cleanable/vomit/old,
|
||||
/turf/open/floor/plasteel/shuttle,
|
||||
/area/shuttle/escape)
|
||||
"aT" = (
|
||||
/obj/structure/chair/comfy/shuttle{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/shuttle,
|
||||
/area/shuttle/escape)
|
||||
"aU" = (
|
||||
/obj/machinery/door/airlock/security/glass{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/shuttle/escape)
|
||||
"aV" = (
|
||||
/obj/effect/decal/cleanable/blood/innards,
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/shuttle/escape)
|
||||
"aW" = (
|
||||
/obj/structure/chair/comfy/shuttle{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aX" = (
|
||||
/obj/structure/closet/crate/freezer/surplus_limbs,
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/shuttle/escape)
|
||||
"aY" = (
|
||||
/obj/effect/decal/cleanable/oil,
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/shuttle/escape)
|
||||
"aZ" = (
|
||||
/obj/structure/closet/crate/freezer,
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/shuttle/escape)
|
||||
"ba" = (
|
||||
/obj/structure/chair/comfy/shuttle{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/light/small{
|
||||
brightness = 3;
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/shuttle,
|
||||
/area/shuttle/escape)
|
||||
"bb" = (
|
||||
/obj/machinery/door/airlock/security/glass{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bc" = (
|
||||
/obj/structure/extinguisher_cabinet{
|
||||
pixel_y = -30
|
||||
},
|
||||
/turf/open/floor/plasteel/shuttle,
|
||||
/area/shuttle/escape)
|
||||
"bd" = (
|
||||
/obj/structure/closet/toolcloset,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"be" = (
|
||||
/obj/machinery/light/small{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/chair/sofa/right,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bf" = (
|
||||
/obj/structure/chair/sofa,
|
||||
/mob/living/simple_animal/hostile/gorilla,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bg" = (
|
||||
/obj/structure/chair/sofa,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bh" = (
|
||||
/obj/structure/chair/sofa,
|
||||
/mob/living/simple_animal/hostile/gorilla,
|
||||
/turf/open/floor/plasteel/shuttle,
|
||||
/area/shuttle/escape)
|
||||
"bi" = (
|
||||
/obj/structure/chair/sofa/left,
|
||||
/mob/living/simple_animal/hostile/gorilla,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bj" = (
|
||||
/obj/effect/decal/cleanable/glass,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bk" = (
|
||||
/obj/machinery/door/airlock/security/glass{
|
||||
name = "Emergency Shuttle Brig";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bl" = (
|
||||
/mob/living/simple_animal/hostile/gorilla,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bm" = (
|
||||
/obj/effect/decal/cleanable/blood/gibs/limb,
|
||||
/mob/living/simple_animal/hostile/gorilla,
|
||||
/turf/open/floor/plasteel/shuttle,
|
||||
/area/shuttle/escape)
|
||||
"bn" = (
|
||||
/obj/structure/reagent_dispensers/keg/semen,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bo" = (
|
||||
/obj/structure/closet/crate/freezer/surplus_limbs,
|
||||
/turf/open/floor/plasteel/shuttle,
|
||||
/area/shuttle/escape)
|
||||
"bp" = (
|
||||
/obj/structure/closet/crate/freezer/surplus_limbs,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bq" = (
|
||||
/mob/living/simple_animal/hostile/gorilla,
|
||||
/turf/open/floor/plasteel/shuttle,
|
||||
/area/shuttle/escape)
|
||||
"br" = (
|
||||
/obj/effect/decal/cleanable/blood/old,
|
||||
/turf/open/floor/plasteel/shuttle,
|
||||
/area/shuttle/escape)
|
||||
"bs" = (
|
||||
/obj/structure/shuttle/engine/heater,
|
||||
/obj/structure/window/plasma/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/shuttle/escape)
|
||||
"bt" = (
|
||||
/turf/template_noop,
|
||||
/area/space)
|
||||
"bu" = (
|
||||
/obj/structure/shuttle/engine/propulsion,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/shuttle/escape)
|
||||
|
||||
(1,1,1) = {"
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
aE
|
||||
ab
|
||||
aI
|
||||
ab
|
||||
at
|
||||
at
|
||||
at
|
||||
ab
|
||||
bb
|
||||
ab
|
||||
bb
|
||||
ab
|
||||
ad
|
||||
ad
|
||||
bt
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
aa
|
||||
ad
|
||||
ab
|
||||
ad
|
||||
ab
|
||||
ar
|
||||
ay
|
||||
aA
|
||||
aH
|
||||
ax
|
||||
aN
|
||||
aR
|
||||
aW
|
||||
aR
|
||||
ba
|
||||
av
|
||||
ad
|
||||
ax
|
||||
ax
|
||||
bo
|
||||
ab
|
||||
ab
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
ab
|
||||
ab
|
||||
ah
|
||||
am
|
||||
ap
|
||||
as
|
||||
az
|
||||
aF
|
||||
ab
|
||||
aJ
|
||||
av
|
||||
aS
|
||||
av
|
||||
ax
|
||||
av
|
||||
bc
|
||||
ab
|
||||
bd
|
||||
bj
|
||||
bp
|
||||
bs
|
||||
bu
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
ac
|
||||
ae
|
||||
ai
|
||||
ae
|
||||
ab
|
||||
as
|
||||
aA
|
||||
aF
|
||||
ad
|
||||
aK
|
||||
av
|
||||
aP
|
||||
av
|
||||
av
|
||||
ax
|
||||
ab
|
||||
ad
|
||||
ab
|
||||
bk
|
||||
ab
|
||||
bs
|
||||
bu
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
ac
|
||||
ae
|
||||
ae
|
||||
ak
|
||||
ab
|
||||
at
|
||||
aB
|
||||
at
|
||||
ab
|
||||
aL
|
||||
av
|
||||
aT
|
||||
aT
|
||||
aT
|
||||
aT
|
||||
ac
|
||||
ac
|
||||
be
|
||||
aN
|
||||
bl
|
||||
bs
|
||||
bu
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
ac
|
||||
af
|
||||
aj
|
||||
an
|
||||
ad
|
||||
au
|
||||
av
|
||||
av
|
||||
av
|
||||
av
|
||||
aO
|
||||
ab
|
||||
ab
|
||||
ad
|
||||
ab
|
||||
ad
|
||||
ad
|
||||
bf
|
||||
bl
|
||||
bq
|
||||
bs
|
||||
bu
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
ac
|
||||
ae
|
||||
ae
|
||||
ae
|
||||
aq
|
||||
av
|
||||
ax
|
||||
av
|
||||
av
|
||||
aM
|
||||
aP
|
||||
aU
|
||||
aC
|
||||
aX
|
||||
aD
|
||||
ad
|
||||
ad
|
||||
bg
|
||||
bm
|
||||
bn
|
||||
bs
|
||||
bu
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
ac
|
||||
ag
|
||||
ak
|
||||
ae
|
||||
ab
|
||||
ab
|
||||
ad
|
||||
ad
|
||||
ab
|
||||
ad
|
||||
ab
|
||||
ab
|
||||
aC
|
||||
aY
|
||||
aX
|
||||
ad
|
||||
ad
|
||||
bh
|
||||
aP
|
||||
bq
|
||||
bs
|
||||
bu
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
ab
|
||||
ad
|
||||
al
|
||||
ao
|
||||
ab
|
||||
aw
|
||||
aC
|
||||
ax
|
||||
aG
|
||||
aC
|
||||
aD
|
||||
aC
|
||||
ax
|
||||
aZ
|
||||
ax
|
||||
ac
|
||||
ac
|
||||
bg
|
||||
bl
|
||||
br
|
||||
bs
|
||||
bu
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
aa
|
||||
ad
|
||||
ab
|
||||
ad
|
||||
ab
|
||||
ax
|
||||
aD
|
||||
aG
|
||||
aD
|
||||
aC
|
||||
aQ
|
||||
aV
|
||||
aC
|
||||
aX
|
||||
aD
|
||||
ad
|
||||
ab
|
||||
bi
|
||||
bn
|
||||
bl
|
||||
ab
|
||||
ab
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
ab
|
||||
ab
|
||||
ad
|
||||
ab
|
||||
ab
|
||||
ad
|
||||
ab
|
||||
ad
|
||||
ab
|
||||
ad
|
||||
ad
|
||||
ab
|
||||
ad
|
||||
ab
|
||||
ab
|
||||
ad
|
||||
ad
|
||||
aa
|
||||
"}
|
||||
+643
-526
File diff suppressed because it is too large
Load Diff
@@ -2,6 +2,13 @@
|
||||
"aa" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"ab" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/shuttle/escape)
|
||||
"ac" = (
|
||||
/obj/effect/spawner/structure/window/shuttle,
|
||||
/turf/open/floor/plating,
|
||||
@@ -9,17 +16,7 @@
|
||||
"ad" = (
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"af" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/shuttle/escape)
|
||||
"ag" = (
|
||||
/obj/structure/sign/warning/nosmoking,
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"ah" = (
|
||||
"ae" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
@@ -30,8 +27,21 @@
|
||||
name = "Meta emergency shuttle";
|
||||
width = 25
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/shuttle/escape)
|
||||
"af" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Emergency Recovery Airlock"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"ag" = (
|
||||
/obj/structure/sign/warning/nosmoking,
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"al" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/phone{
|
||||
@@ -513,7 +523,6 @@
|
||||
/area/shuttle/escape)
|
||||
"bz" = (
|
||||
/obj/structure/table/optable,
|
||||
/obj/item/surgical_drapes,
|
||||
/obj/machinery/light{
|
||||
dir = 8
|
||||
},
|
||||
@@ -576,25 +585,12 @@
|
||||
/area/shuttle/escape)
|
||||
"bH" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/scalpel{
|
||||
pixel_y = 12
|
||||
},
|
||||
/obj/item/circular_saw,
|
||||
/obj/item/retractor{
|
||||
pixel_x = 4
|
||||
},
|
||||
/obj/item/hemostat{
|
||||
pixel_x = -4
|
||||
},
|
||||
/obj/item/clothing/gloves/color/latex,
|
||||
/obj/item/clothing/mask/surgical,
|
||||
/obj/item/storage/backpack/duffelbag/med/surgery,
|
||||
/obj/item/radio/intercom{
|
||||
dir = 2;
|
||||
name = "Station Intercom (General)";
|
||||
pixel_x = -27
|
||||
},
|
||||
/obj/item/surgicaldrill,
|
||||
/obj/item/cautery,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"bI" = (
|
||||
@@ -939,7 +935,7 @@ be
|
||||
cc
|
||||
be
|
||||
be
|
||||
bf
|
||||
af
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
ac
|
||||
@@ -955,7 +951,7 @@ bf
|
||||
bT
|
||||
be
|
||||
be
|
||||
bf
|
||||
af
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
ac
|
||||
@@ -1038,7 +1034,7 @@ bF
|
||||
ac
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
af
|
||||
ab
|
||||
LY
|
||||
LY
|
||||
aE
|
||||
@@ -1070,7 +1066,7 @@ ad
|
||||
ad
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
af
|
||||
ab
|
||||
LY
|
||||
LY
|
||||
aE
|
||||
@@ -1166,7 +1162,7 @@ bM
|
||||
ad
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
ah
|
||||
ae
|
||||
LY
|
||||
LY
|
||||
aE
|
||||
@@ -1198,7 +1194,7 @@ bO
|
||||
ac
|
||||
"}
|
||||
(22,1,1) = {"
|
||||
af
|
||||
ab
|
||||
LY
|
||||
LY
|
||||
LY
|
||||
|
||||
@@ -113,6 +113,21 @@
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/shuttle/escape)
|
||||
"v" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/docking_port/mobile/emergency{
|
||||
dir = 8;
|
||||
dwidth = 8;
|
||||
height = 9;
|
||||
name = "Mini emergency shuttle";
|
||||
width = 21
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/shuttle/escape)
|
||||
"x" = (
|
||||
@@ -145,19 +160,6 @@
|
||||
},
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/shuttle/escape)
|
||||
"B" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/docking_port/mobile/emergency{
|
||||
dir = 8;
|
||||
dwidth = 8;
|
||||
height = 9;
|
||||
name = "Mini emergency shuttle";
|
||||
width = 21
|
||||
},
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/shuttle/escape)
|
||||
"D" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/storage/firstaid/fire,
|
||||
@@ -453,7 +455,7 @@ b
|
||||
n
|
||||
b
|
||||
b
|
||||
B
|
||||
v
|
||||
b
|
||||
b
|
||||
b
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
/turf/closed/wall/mineral/cult,
|
||||
/area/shuttle/escape)
|
||||
"c" = (
|
||||
/obj/effect/forcefield/cult,
|
||||
/obj/machinery/door/airlock/cult/friendly,
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"d" = (
|
||||
@@ -125,6 +126,10 @@
|
||||
/area/shuttle/escape)
|
||||
"x" = (
|
||||
/obj/machinery/door/airlock/cult/friendly,
|
||||
/obj/docking_port/mobile/emergency{
|
||||
name = "shuttle 667"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"y" = (
|
||||
@@ -156,13 +161,6 @@
|
||||
/obj/effect/decal/remains/human,
|
||||
/turf/open/floor/plasteel/cult,
|
||||
/area/shuttle/escape)
|
||||
"E" = (
|
||||
/obj/machinery/door/airlock/cult/friendly,
|
||||
/obj/docking_port/mobile/emergency{
|
||||
name = "shuttle 667"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"F" = (
|
||||
/obj/effect/decal/cleanable/blood/gibs/down,
|
||||
/turf/open/floor/plasteel/cult,
|
||||
@@ -262,6 +260,10 @@
|
||||
/obj/structure/shuttle/engine/propulsion,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/shuttle/escape)
|
||||
"W" = (
|
||||
/obj/effect/spawner/structure/window/plastitanium,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
@@ -271,17 +273,17 @@ a
|
||||
b
|
||||
b
|
||||
b
|
||||
x
|
||||
b
|
||||
E
|
||||
b
|
||||
c
|
||||
c
|
||||
c
|
||||
b
|
||||
x
|
||||
b
|
||||
x
|
||||
W
|
||||
W
|
||||
W
|
||||
b
|
||||
c
|
||||
b
|
||||
c
|
||||
b
|
||||
b
|
||||
b
|
||||
@@ -336,7 +338,7 @@ U
|
||||
V
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
c
|
||||
W
|
||||
d
|
||||
i
|
||||
n
|
||||
@@ -360,7 +362,7 @@ U
|
||||
V
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
c
|
||||
W
|
||||
e
|
||||
j
|
||||
o
|
||||
@@ -384,7 +386,7 @@ U
|
||||
V
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
c
|
||||
W
|
||||
f
|
||||
j
|
||||
j
|
||||
@@ -408,7 +410,7 @@ U
|
||||
V
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
c
|
||||
W
|
||||
e
|
||||
j
|
||||
j
|
||||
@@ -424,7 +426,7 @@ j
|
||||
j
|
||||
K
|
||||
L
|
||||
c
|
||||
W
|
||||
t
|
||||
j
|
||||
t
|
||||
@@ -432,7 +434,7 @@ U
|
||||
V
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
c
|
||||
W
|
||||
g
|
||||
k
|
||||
k
|
||||
@@ -472,7 +474,7 @@ A
|
||||
j
|
||||
j
|
||||
j
|
||||
c
|
||||
W
|
||||
j
|
||||
j
|
||||
j
|
||||
@@ -496,7 +498,7 @@ j
|
||||
j
|
||||
j
|
||||
M
|
||||
c
|
||||
W
|
||||
P
|
||||
Q
|
||||
P
|
||||
@@ -509,21 +511,21 @@ a
|
||||
a
|
||||
a
|
||||
b
|
||||
c
|
||||
W
|
||||
b
|
||||
c
|
||||
W
|
||||
b
|
||||
b
|
||||
b
|
||||
c
|
||||
c
|
||||
c
|
||||
W
|
||||
W
|
||||
W
|
||||
b
|
||||
b
|
||||
b
|
||||
c
|
||||
W
|
||||
b
|
||||
c
|
||||
W
|
||||
b
|
||||
a
|
||||
"}
|
||||
|
||||
@@ -185,6 +185,7 @@
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/shuttle/escape)
|
||||
"ar" = (
|
||||
@@ -287,6 +288,7 @@
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/shuttle/escape)
|
||||
"az" = (
|
||||
@@ -509,6 +511,7 @@
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/shuttle/escape)
|
||||
"aQ" = (
|
||||
@@ -782,41 +785,27 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"bn" = (
|
||||
/obj/item/scalpel{
|
||||
pixel_y = 12
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/obj/item/circular_saw,
|
||||
/obj/item/retractor{
|
||||
pixel_x = 4
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 8
|
||||
},
|
||||
/obj/item/hemostat{
|
||||
pixel_x = -4
|
||||
},
|
||||
/obj/item/clothing/gloves/color/latex,
|
||||
/obj/item/clothing/mask/surgical,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/structure/extinguisher_cabinet{
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 8
|
||||
},
|
||||
/obj/item/cautery,
|
||||
/obj/item/surgicaldrill,
|
||||
/obj/item/storage/backpack/duffelbag/med/surgery,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/shuttle/escape)
|
||||
"bo" = (
|
||||
/obj/structure/table/optable,
|
||||
/obj/item/surgical_drapes,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/shuttle/escape)
|
||||
"bp" = (
|
||||
|
||||
@@ -58,6 +58,29 @@
|
||||
},
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/shuttle/escape)
|
||||
"am" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"an" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/docking_port/mobile/emergency{
|
||||
dir = 8;
|
||||
dwidth = 27;
|
||||
height = 8;
|
||||
name = "PubbyStation emergency shuttle";
|
||||
port_direction = 4;
|
||||
preferred_direction = 1;
|
||||
width = 46
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"ap" = (
|
||||
/obj/structure/chair/comfy,
|
||||
/obj/machinery/computer/security/telescreen/entertainment{
|
||||
@@ -133,12 +156,6 @@
|
||||
"ax" = (
|
||||
/turf/open/floor/mineral/plastitanium/red/brig,
|
||||
/area/shuttle/escape)
|
||||
"ay" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"az" = (
|
||||
/obj/structure/chair/comfy{
|
||||
dir = 1
|
||||
@@ -440,14 +457,12 @@
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/shuttle/escape)
|
||||
"aZ" = (
|
||||
/obj/structure/table/glass,
|
||||
/obj/machinery/sleeper,
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/obj/item/storage/firstaid/regular,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4;
|
||||
layer = 2.9
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
@@ -487,13 +502,18 @@
|
||||
/turf/open/floor/plasteel/cafeteria,
|
||||
/area/shuttle/escape)
|
||||
"be" = (
|
||||
/obj/structure/chair/comfy/shuttle,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
/obj/structure/table,
|
||||
/obj/item/storage/firstaid,
|
||||
/obj/item/storage/firstaid/fire{
|
||||
pixel_x = -3;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/shuttle/escape)
|
||||
"bf" = (
|
||||
@@ -509,30 +529,12 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bh" = (
|
||||
/obj/structure/window/reinforced,
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/defibrillator/loaded,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/shuttle/escape)
|
||||
"bi" = (
|
||||
/obj/structure/window/reinforced,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/storage/firstaid/regular,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/shuttle/escape)
|
||||
"bj" = (
|
||||
@@ -551,11 +553,8 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bn" = (
|
||||
/obj/structure/closet/crate{
|
||||
icon_state = "crateopen"
|
||||
},
|
||||
/obj/structure/reagent_dispensers/fueltank,
|
||||
/obj/machinery/light,
|
||||
/obj/item/storage/toolbox/mechanical,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bo" = (
|
||||
@@ -675,21 +674,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bL" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/docking_port/mobile/emergency{
|
||||
dir = 8;
|
||||
dwidth = 27;
|
||||
height = 8;
|
||||
name = "PubbyStation emergency shuttle";
|
||||
port_direction = 4;
|
||||
preferred_direction = 1;
|
||||
width = 46
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bO" = (
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Cockpit";
|
||||
@@ -710,6 +694,21 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"sI" = (
|
||||
/obj/structure/window/reinforced,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/item/storage/backpack/duffelbag/med/surgery,
|
||||
/obj/structure/table,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/shuttle/escape)
|
||||
"xt" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8;
|
||||
@@ -717,6 +716,17 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"Jw" = (
|
||||
/obj/structure/window/reinforced,
|
||||
/obj/structure/table/optable,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/shuttle/escape)
|
||||
"Uu" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
@@ -804,9 +814,9 @@ aX
|
||||
bb
|
||||
be
|
||||
bh
|
||||
Jw
|
||||
bg
|
||||
bl
|
||||
bg
|
||||
bg
|
||||
ab
|
||||
aa
|
||||
bs
|
||||
@@ -851,8 +861,8 @@ ab
|
||||
aZ
|
||||
bb
|
||||
bb
|
||||
bi
|
||||
bl
|
||||
bh
|
||||
sI
|
||||
bg
|
||||
bn
|
||||
ab
|
||||
@@ -1071,17 +1081,17 @@ ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
ay
|
||||
am
|
||||
ab
|
||||
ay
|
||||
am
|
||||
ab
|
||||
ab
|
||||
aa
|
||||
ab
|
||||
ab
|
||||
bL
|
||||
an
|
||||
ab
|
||||
ay
|
||||
am
|
||||
ab
|
||||
ac
|
||||
ab
|
||||
|
||||
@@ -149,9 +149,6 @@
|
||||
/area/shuttle/escape)
|
||||
"as" = (
|
||||
/obj/structure/table/optable,
|
||||
/obj/item/surgical_drapes,
|
||||
/obj/item/clothing/gloves/color/latex,
|
||||
/obj/item/clothing/mask/surgical,
|
||||
/obj/effect/turf_decal/tile/purple{
|
||||
dir = 1
|
||||
},
|
||||
@@ -228,18 +225,13 @@
|
||||
/area/shuttle/escape)
|
||||
"aB" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/scalpel,
|
||||
/obj/item/circular_saw,
|
||||
/obj/item/retractor,
|
||||
/obj/item/hemostat,
|
||||
/obj/item/storage/backpack/duffelbag/med/surgery,
|
||||
/obj/effect/turf_decal/tile/purple{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/purple{
|
||||
dir = 8
|
||||
},
|
||||
/obj/item/surgicaldrill,
|
||||
/obj/item/cautery,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/shuttle/escape)
|
||||
"aC" = (
|
||||
@@ -427,6 +419,22 @@
|
||||
"aW" = (
|
||||
/turf/open/floor/mineral/plastitanium/red,
|
||||
/area/shuttle/escape)
|
||||
"aX" = (
|
||||
/obj/machinery/door/airlock/hatch,
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aY" = (
|
||||
/obj/docking_port/mobile/emergency{
|
||||
dwidth = 14;
|
||||
height = 18;
|
||||
name = "CentCom Raven Battlecruiser";
|
||||
width = 32
|
||||
},
|
||||
/obj/machinery/door/airlock/hatch,
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aZ" = (
|
||||
/obj/effect/turf_decal/tile/green,
|
||||
/obj/effect/turf_decal/tile/green{
|
||||
@@ -761,16 +769,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/shuttle/escape)
|
||||
"bE" = (
|
||||
/obj/docking_port/mobile/emergency{
|
||||
dwidth = 14;
|
||||
height = 18;
|
||||
name = "CentCom Raven Battlecruiser";
|
||||
width = 32
|
||||
},
|
||||
/obj/machinery/door/airlock/hatch,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bF" = (
|
||||
/obj/effect/turf_decal/tile/green{
|
||||
dir = 1
|
||||
@@ -1331,10 +1329,6 @@
|
||||
"eP" = (
|
||||
/turf/closed/wall/mineral/plastitanium/nodiagonal,
|
||||
/area/shuttle/escape)
|
||||
"UQ" = (
|
||||
/obj/machinery/door/airlock/hatch,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
|
||||
(1,1,1) = {"
|
||||
aa
|
||||
@@ -1349,17 +1343,17 @@ bJ
|
||||
cs
|
||||
bJ
|
||||
bJ
|
||||
UQ
|
||||
aX
|
||||
cs
|
||||
bE
|
||||
aY
|
||||
bJ
|
||||
bJ
|
||||
cs
|
||||
ad
|
||||
aa
|
||||
UQ
|
||||
aX
|
||||
bJ
|
||||
UQ
|
||||
aX
|
||||
cs
|
||||
bJ
|
||||
cs
|
||||
@@ -1893,7 +1887,7 @@ bJ
|
||||
bJ
|
||||
bJ
|
||||
cs
|
||||
cs
|
||||
en
|
||||
ad
|
||||
ad
|
||||
ad
|
||||
@@ -1909,7 +1903,7 @@ ab
|
||||
bJ
|
||||
bJ
|
||||
cs
|
||||
cs
|
||||
en
|
||||
ad
|
||||
ad
|
||||
ad
|
||||
|
||||
@@ -235,6 +235,7 @@
|
||||
name = "Emergency Shuttle Airlock";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aP" = (
|
||||
@@ -282,6 +283,7 @@
|
||||
/obj/machinery/door/airlock/security/glass{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aX" = (
|
||||
@@ -375,7 +377,9 @@
|
||||
/turf/open/floor/mineral/plastitanium/red,
|
||||
/area/shuttle/escape)
|
||||
"bk" = (
|
||||
/obj/structure/kitchenspike,
|
||||
/obj/machinery/light/small{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium,
|
||||
/area/shuttle/escape)
|
||||
"bl" = (
|
||||
@@ -420,6 +424,7 @@
|
||||
/obj/machinery/door/airlock/security/glass{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bs" = (
|
||||
@@ -460,13 +465,10 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bz" = (
|
||||
/obj/structure/extinguisher_cabinet{
|
||||
pixel_x = 27
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/turf/open/floor/mineral/plastitanium,
|
||||
/area/shuttle/escape)
|
||||
"bA" = (
|
||||
/obj/structure/closet/emcloset,
|
||||
/obj/machinery/sleeper,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
@@ -487,17 +489,12 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"bD" = (
|
||||
/obj/machinery/sleeper{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plasteel,
|
||||
/obj/structure/closet/emcloset,
|
||||
/turf/open/floor/mineral/plastitanium/red,
|
||||
/area/shuttle/escape)
|
||||
"bE" = (
|
||||
/obj/machinery/sleeper{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/sleeper,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"bF" = (
|
||||
@@ -567,13 +564,6 @@
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium,
|
||||
/area/shuttle/escape)
|
||||
"bP" = (
|
||||
/obj/structure/kitchenspike,
|
||||
/obj/machinery/light/small{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium,
|
||||
/area/shuttle/escape)
|
||||
"bQ" = (
|
||||
/obj/machinery/light,
|
||||
/turf/open/floor/mineral/plastitanium/red,
|
||||
@@ -584,6 +574,56 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bS" = (
|
||||
/obj/structure/kitchenspike,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bT" = (
|
||||
/obj/structure/extinguisher_cabinet{
|
||||
pixel_x = 27
|
||||
},
|
||||
/obj/structure/kitchenspike,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bU" = (
|
||||
/obj/machinery/vending/sovietsoda,
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/shuttle/escape)
|
||||
"ca" = (
|
||||
/obj/structure/shuttle/engine/heater,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"cb" = (
|
||||
/obj/structure/shuttle/engine/propulsion,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"cd" = (
|
||||
/obj/structure/closet/emcloset,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"ce" = (
|
||||
/obj/structure/table/optable,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"cf" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/table,
|
||||
/obj/item/storage/backpack/duffelbag/med/surgery,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
"cg" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/light/small{
|
||||
brightness = 3;
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/shuttle/escape)
|
||||
|
||||
(1,1,1) = {"
|
||||
aa
|
||||
@@ -712,7 +752,7 @@ aj
|
||||
ao
|
||||
ad
|
||||
aw
|
||||
ax
|
||||
aR
|
||||
ax
|
||||
aR
|
||||
ax
|
||||
@@ -721,9 +761,9 @@ ax
|
||||
aR
|
||||
ax
|
||||
bj
|
||||
ax
|
||||
aR
|
||||
ab
|
||||
by
|
||||
bS
|
||||
bx
|
||||
bI
|
||||
bK
|
||||
@@ -736,6 +776,30 @@ ak
|
||||
ak
|
||||
at
|
||||
ax
|
||||
aR
|
||||
ax
|
||||
ax
|
||||
ax
|
||||
aR
|
||||
aR
|
||||
aR
|
||||
aR
|
||||
aR
|
||||
ax
|
||||
ab
|
||||
bT
|
||||
bx
|
||||
bI
|
||||
ca
|
||||
cb
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
ac
|
||||
ag
|
||||
ak
|
||||
ap
|
||||
ab
|
||||
ax
|
||||
aJ
|
||||
aJ
|
||||
aJ
|
||||
@@ -745,30 +809,6 @@ ax
|
||||
bc
|
||||
bc
|
||||
bc
|
||||
ax
|
||||
ab
|
||||
bz
|
||||
bx
|
||||
bI
|
||||
bK
|
||||
bL
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
ac
|
||||
ag
|
||||
ak
|
||||
ap
|
||||
ab
|
||||
ay
|
||||
ay
|
||||
ay
|
||||
aS
|
||||
aY
|
||||
bf
|
||||
ax
|
||||
ax
|
||||
ax
|
||||
ax
|
||||
bQ
|
||||
bv
|
||||
ad
|
||||
@@ -783,6 +823,30 @@ af
|
||||
al
|
||||
aq
|
||||
au
|
||||
ay
|
||||
ay
|
||||
ay
|
||||
aS
|
||||
aY
|
||||
bf
|
||||
ax
|
||||
ax
|
||||
ax
|
||||
ax
|
||||
ax
|
||||
ad
|
||||
bA
|
||||
cg
|
||||
ce
|
||||
bK
|
||||
bL
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
ac
|
||||
bU
|
||||
ak
|
||||
aq
|
||||
au
|
||||
az
|
||||
aK
|
||||
aQ
|
||||
@@ -792,16 +856,16 @@ ax
|
||||
ax
|
||||
bl
|
||||
ax
|
||||
ax
|
||||
bD
|
||||
ax
|
||||
ad
|
||||
bA
|
||||
bE
|
||||
bA
|
||||
bB
|
||||
bJ
|
||||
bK
|
||||
bL
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
(11,1,1) = {"
|
||||
ac
|
||||
ah
|
||||
ak
|
||||
@@ -821,16 +885,16 @@ ax
|
||||
ac
|
||||
bB
|
||||
bB
|
||||
bJ
|
||||
cf
|
||||
bK
|
||||
bL
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
(12,1,1) = {"
|
||||
ad
|
||||
ab
|
||||
am
|
||||
ar
|
||||
au
|
||||
ac
|
||||
aB
|
||||
aA
|
||||
aA
|
||||
@@ -849,12 +913,12 @@ bB
|
||||
bK
|
||||
bL
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
(13,1,1) = {"
|
||||
aa
|
||||
ad
|
||||
ab
|
||||
ad
|
||||
as
|
||||
bv
|
||||
aC
|
||||
aK
|
||||
bM
|
||||
@@ -869,11 +933,11 @@ ax
|
||||
ac
|
||||
bB
|
||||
bB
|
||||
bD
|
||||
bF
|
||||
ad
|
||||
ad
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
(14,1,1) = {"
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
@@ -892,41 +956,41 @@ ax
|
||||
ax
|
||||
ad
|
||||
bC
|
||||
bF
|
||||
cd
|
||||
ad
|
||||
ad
|
||||
aa
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
ab
|
||||
aE
|
||||
aN
|
||||
aN
|
||||
aV
|
||||
aD
|
||||
bi
|
||||
bk
|
||||
bk
|
||||
bk
|
||||
bP
|
||||
bt
|
||||
ab
|
||||
bD
|
||||
ab
|
||||
ad
|
||||
aa
|
||||
aa
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
ad
|
||||
aE
|
||||
aN
|
||||
aN
|
||||
aV
|
||||
aD
|
||||
bi
|
||||
bz
|
||||
bz
|
||||
bz
|
||||
bk
|
||||
bt
|
||||
ab
|
||||
cd
|
||||
ab
|
||||
ad
|
||||
aa
|
||||
aa
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aD
|
||||
aE
|
||||
aE
|
||||
|
||||
@@ -106,6 +106,7 @@
|
||||
name = "Emergency Shuttle Airlock";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"at" = (
|
||||
@@ -174,6 +175,7 @@
|
||||
name = "Emergency Shuttle Airlock";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aD" = (
|
||||
@@ -227,6 +229,7 @@
|
||||
/obj/docking_port/mobile/emergency{
|
||||
name = "Scrapheap Challenge"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aL" = (
|
||||
@@ -309,6 +312,7 @@
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"ba" = (
|
||||
|
||||
@@ -2,6 +2,13 @@
|
||||
"aa" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"ab" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"ac" = (
|
||||
/obj/structure/sign/warning/radiation,
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
@@ -13,6 +20,16 @@
|
||||
"ae" = (
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"af" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/docking_port/mobile/emergency{
|
||||
name = "Hyperfractal Gigashuttle"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"ag" = (
|
||||
/obj/structure/closet/radiation{
|
||||
anchored = 1
|
||||
@@ -33,6 +50,14 @@
|
||||
},
|
||||
/turf/open/floor/mineral/titanium/yellow,
|
||||
/area/shuttle/escape)
|
||||
"ak" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Emergency Launch Catwalk";
|
||||
req_access_txt = "10;13"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"al" = (
|
||||
/obj/machinery/shower{
|
||||
dir = 8
|
||||
@@ -101,12 +126,6 @@
|
||||
"ax" = (
|
||||
/turf/closed/wall/mineral/titanium/interior,
|
||||
/area/shuttle/escape)
|
||||
"aA" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aB" = (
|
||||
/obj/machinery/power/supermatter_crystal/shard/hugbox/fakecrystal,
|
||||
/turf/open/floor/plating,
|
||||
@@ -125,26 +144,10 @@
|
||||
/obj/structure/reagent_dispensers/fueltank,
|
||||
/turf/open/floor/mineral/titanium/yellow,
|
||||
/area/shuttle/escape)
|
||||
"aF" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/docking_port/mobile/emergency{
|
||||
name = "Hyperfractal Gigashuttle"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aI" = (
|
||||
/obj/structure/sign/warning/radiation,
|
||||
/turf/closed/wall/mineral/titanium/nodiagonal,
|
||||
/area/shuttle/escape)
|
||||
"aL" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Emergency Launch Catwalk";
|
||||
req_access_txt = "10;13"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aM" = (
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/shuttle/escape)
|
||||
@@ -348,9 +351,9 @@ aa
|
||||
aa
|
||||
aa
|
||||
aw
|
||||
aA
|
||||
ab
|
||||
ac
|
||||
aF
|
||||
af
|
||||
aw
|
||||
aa
|
||||
aa
|
||||
@@ -472,7 +475,7 @@ aB
|
||||
bf
|
||||
at
|
||||
at
|
||||
aL
|
||||
ak
|
||||
aM
|
||||
aM
|
||||
hD
|
||||
@@ -588,9 +591,9 @@ aa
|
||||
aa
|
||||
aa
|
||||
aw
|
||||
aA
|
||||
ab
|
||||
ac
|
||||
aA
|
||||
ab
|
||||
aw
|
||||
aa
|
||||
aa
|
||||
|
||||
@@ -116,7 +116,6 @@
|
||||
id = "shuttleshutters";
|
||||
name = "Bridge Blast Shutters";
|
||||
pixel_x = -26;
|
||||
pixel_y = 0;
|
||||
req_access_txt = "19"
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
@@ -199,8 +198,7 @@
|
||||
/obj/item/radio/intercom{
|
||||
dir = 4;
|
||||
name = "Station Intercom (General)";
|
||||
pixel_x = 27;
|
||||
pixel_y = 0
|
||||
pixel_x = 27
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/shuttle/escape)
|
||||
@@ -309,8 +307,7 @@
|
||||
/obj/item/radio/intercom{
|
||||
dir = 4;
|
||||
name = "Station Intercom (General)";
|
||||
pixel_x = -27;
|
||||
pixel_y = 0
|
||||
pixel_x = -27
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/shuttle/escape)
|
||||
@@ -408,7 +405,6 @@
|
||||
id = "smindicate";
|
||||
name = "external door control";
|
||||
pixel_x = 26;
|
||||
pixel_y = 0;
|
||||
req_access_txt = "150"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
@@ -420,8 +416,7 @@
|
||||
/obj/item/radio/intercom{
|
||||
dir = 4;
|
||||
name = "Station Intercom (General)";
|
||||
pixel_x = 27;
|
||||
pixel_y = 0
|
||||
pixel_x = 27
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/shuttle/escape)
|
||||
@@ -878,6 +873,7 @@
|
||||
/area/shuttle/escape)
|
||||
"bz" = (
|
||||
/obj/machinery/door/airlock/hatch,
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bA" = (
|
||||
@@ -991,6 +987,7 @@
|
||||
/obj/docking_port/mobile/emergency{
|
||||
name = "Syndicate Battlecruiser"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"bL" = (
|
||||
@@ -1064,10 +1061,7 @@
|
||||
/area/shuttle/escape)
|
||||
"bR" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/storage/box/drinkingglasses{
|
||||
pixel_x = 0;
|
||||
pixel_y = 0
|
||||
},
|
||||
/obj/item/storage/box/drinkingglasses,
|
||||
/obj/item/storage/box/drinkingglasses{
|
||||
pixel_x = -3;
|
||||
pixel_y = 3
|
||||
@@ -1499,8 +1493,7 @@
|
||||
/obj/item/radio/intercom{
|
||||
dir = 4;
|
||||
name = "Station Intercom (General)";
|
||||
pixel_x = 27;
|
||||
pixel_y = 0
|
||||
pixel_x = 27
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/shuttle/escape)
|
||||
@@ -1606,8 +1599,7 @@
|
||||
/obj/item/radio/intercom{
|
||||
dir = 4;
|
||||
name = "Station Intercom (General)";
|
||||
pixel_x = 27;
|
||||
pixel_y = 0
|
||||
pixel_x = 27
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/shuttle/escape)
|
||||
@@ -1634,10 +1626,7 @@
|
||||
pixel_x = 3;
|
||||
pixel_y = -3
|
||||
},
|
||||
/obj/item/storage/toolbox/emergency{
|
||||
pixel_x = 0;
|
||||
pixel_y = 0
|
||||
},
|
||||
/obj/item/storage/toolbox/emergency,
|
||||
/obj/item/storage/toolbox/syndicate{
|
||||
pixel_x = -3;
|
||||
pixel_y = 3
|
||||
@@ -1717,38 +1706,31 @@
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
},
|
||||
/obj/item/retractor,
|
||||
/obj/item/hemostat,
|
||||
/obj/item/cautery,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
},
|
||||
/obj/item/storage/backpack/duffelbag/med/surgery,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/shuttle/escape)
|
||||
"cI" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/circular_saw,
|
||||
/obj/item/surgicaldrill,
|
||||
/obj/item/scalpel{
|
||||
pixel_y = 15
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/shuttle/escape)
|
||||
"cJ" = (
|
||||
|
||||
@@ -119,12 +119,7 @@
|
||||
/area/shuttle/escape)
|
||||
"ar" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/storage/firstaid/fire,
|
||||
/obj/item/storage/firstaid/regular{
|
||||
pixel_x = 2;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/item/crowbar,
|
||||
/obj/item/storage/toolbox/mechanical,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"as" = (
|
||||
@@ -166,6 +161,7 @@
|
||||
name = "Emergency Shuttle Airlock";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"ay" = (
|
||||
@@ -206,22 +202,23 @@
|
||||
/obj/docking_port/mobile/emergency{
|
||||
name = "NT Lepton Violet"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aF" = (
|
||||
/obj/machinery/door/window/eastleft,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aG" = (
|
||||
/obj/machinery/sleeper{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/extinguisher_cabinet{
|
||||
pixel_x = 27
|
||||
},
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/storage/box/syringes{
|
||||
pixel_x = 3;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/item/storage/box/beakers,
|
||||
/turf/open/floor/mineral/titanium/white,
|
||||
/area/shuttle/escape)
|
||||
"aH" = (
|
||||
@@ -244,72 +241,36 @@
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/shuttle/escape)
|
||||
"aK" = (
|
||||
/obj/machinery/sleeper{
|
||||
dir = 4
|
||||
/obj/structure/table,
|
||||
/obj/item/storage/firstaid/regular{
|
||||
pixel_x = 2;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/item/storage/firstaid/fire,
|
||||
/turf/open/floor/mineral/titanium/white,
|
||||
/area/shuttle/escape)
|
||||
"aL" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/obj/structure/table,
|
||||
/obj/item/storage/backpack/duffelbag/med/surgery,
|
||||
/turf/open/floor/mineral/titanium/white,
|
||||
/area/shuttle/escape)
|
||||
"aM" = (
|
||||
/obj/machinery/chem_dispenser,
|
||||
/obj/machinery/light/small{
|
||||
/obj/structure/chair/comfy/shuttle{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/mineral/titanium/white,
|
||||
/area/shuttle/escape)
|
||||
"aN" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/storage/toolbox/mechanical,
|
||||
/obj/item/storage/firstaid/regular{
|
||||
pixel_x = -1;
|
||||
pixel_y = 1
|
||||
},
|
||||
/obj/item/wrench/medical,
|
||||
/turf/open/floor/mineral/titanium/white,
|
||||
/area/shuttle/escape)
|
||||
"aO" = (
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aP" = (
|
||||
/obj/structure/chair/office/light{
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"aQ" = (
|
||||
/obj/machinery/chem_heater,
|
||||
/turf/open/floor/mineral/titanium/white,
|
||||
/area/shuttle/escape)
|
||||
"aR" = (
|
||||
/obj/machinery/chem_master,
|
||||
/turf/open/floor/mineral/titanium/white,
|
||||
/area/shuttle/escape)
|
||||
"aS" = (
|
||||
/obj/machinery/door/window/eastright,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/shuttle/escape)
|
||||
"aT" = (
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/reagent_containers/glass/bottle/epinephrine{
|
||||
pixel_x = 2;
|
||||
pixel_y = 2
|
||||
},
|
||||
/obj/item/reagent_containers/glass/bottle/charcoal,
|
||||
/obj/structure/table/optable,
|
||||
/turf/open/floor/mineral/titanium/white,
|
||||
/area/shuttle/escape)
|
||||
"aU" = (
|
||||
/obj/machinery/door/airlock/public/glass,
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"aV" = (
|
||||
/obj/machinery/door/airlock/titanium{
|
||||
name = "Emergency Shuttle Airlock"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/shuttle/escape)
|
||||
"aW" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
@@ -517,21 +478,21 @@
|
||||
},
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/shuttle/escape)
|
||||
"cF" = (
|
||||
/obj/machinery/sleeper{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/light/small{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/mineral/titanium/white,
|
||||
/area/shuttle/escape)
|
||||
"ji" = (
|
||||
/obj/structure/chair/comfy/shuttle{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/shuttle/escape)
|
||||
"Ec" = (
|
||||
/obj/structure/chair/comfy/shuttle{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/mineral/titanium/white,
|
||||
/area/shuttle/escape)
|
||||
"MK" = (
|
||||
/obj/structure/chair/comfy/shuttle,
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
@@ -553,9 +514,9 @@ as
|
||||
as
|
||||
as
|
||||
ab
|
||||
aV
|
||||
aF
|
||||
ab
|
||||
aV
|
||||
aF
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
@@ -644,9 +605,9 @@ ab
|
||||
ab
|
||||
ab
|
||||
aq
|
||||
aK
|
||||
aN
|
||||
aK
|
||||
aM
|
||||
aM
|
||||
aM
|
||||
aq
|
||||
ab
|
||||
ji
|
||||
@@ -673,10 +634,10 @@ aq
|
||||
aq
|
||||
bn
|
||||
aH
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
as
|
||||
as
|
||||
as
|
||||
as
|
||||
be
|
||||
bf
|
||||
bg
|
||||
@@ -691,11 +652,11 @@ ao
|
||||
au
|
||||
az
|
||||
ab
|
||||
aF
|
||||
Ec
|
||||
aq
|
||||
Ec
|
||||
aS
|
||||
aJ
|
||||
aJ
|
||||
aJ
|
||||
aq
|
||||
as
|
||||
aI
|
||||
aI
|
||||
@@ -716,9 +677,9 @@ av
|
||||
aA
|
||||
ab
|
||||
aq
|
||||
aL
|
||||
aO
|
||||
aL
|
||||
aM
|
||||
aM
|
||||
aM
|
||||
aq
|
||||
aU
|
||||
aq
|
||||
@@ -741,7 +702,7 @@ aq
|
||||
aC
|
||||
aq
|
||||
aq
|
||||
aP
|
||||
aq
|
||||
aq
|
||||
aq
|
||||
as
|
||||
@@ -764,9 +725,9 @@ aw
|
||||
aw
|
||||
ab
|
||||
aG
|
||||
aM
|
||||
aQ
|
||||
aR
|
||||
aK
|
||||
cF
|
||||
aL
|
||||
aT
|
||||
as
|
||||
MK
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
/area/shuttle/transport)
|
||||
"d" = (
|
||||
/obj/machinery/door/airlock/external,
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/pod/dark,
|
||||
/area/shuttle/transport)
|
||||
"e" = (
|
||||
@@ -74,6 +75,7 @@
|
||||
preferred_direction = 4;
|
||||
width = 5
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/pod/light,
|
||||
/area/shuttle/transport)
|
||||
"o" = (
|
||||
@@ -98,6 +100,7 @@
|
||||
/area/shuttle/transport)
|
||||
"r" = (
|
||||
/obj/machinery/door/airlock/external,
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/pod/light,
|
||||
/area/shuttle/transport)
|
||||
|
||||
|
||||
@@ -105,6 +105,7 @@
|
||||
#define MATRIXED 22 //if icon is color matrix'd
|
||||
#define SKINTONE 23 //uses skin tones
|
||||
#define HORNCOLOR 24
|
||||
#define WINGCOLOR 25
|
||||
|
||||
//organ slots
|
||||
#define ORGAN_SLOT_BRAIN "brain"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#define ACCESS_MORGUE 6
|
||||
#define ACCESS_TOX 7 //R&D department, R&D console, burn chamber on some maps
|
||||
#define ACCESS_TOX_STORAGE 8 //Toxins storage, burn chamber on some maps
|
||||
#define ACCESS_GENETICS 9
|
||||
#define ACCESS_GENETICS 9
|
||||
#define ACCESS_ENGINE 10 //Engineering area, power monitor, power flow control console
|
||||
#define ACCESS_ENGINE_EQUIP 11 //APCs, EngiVend/YouTool, engineering equipment lockers
|
||||
#define ACCESS_MAINT_TUNNELS 12
|
||||
@@ -64,6 +64,8 @@
|
||||
#define ACCESS_WEAPONS 66 //Weapon authorization for secbots
|
||||
#define ACCESS_NETWORK 67 //NTnet diagnostics/monitoring software
|
||||
#define ACCESS_CLONING 68 //Cloning room and clone pod ejection
|
||||
#define ACCESS_ENTER_GENPOP 69
|
||||
#define ACCESS_LEAVE_GENPOP 70
|
||||
|
||||
//BEGIN CENTCOM ACCESS
|
||||
/*Should leave plenty of room if we need to add more access levels.
|
||||
|
||||
@@ -93,12 +93,6 @@
|
||||
#define isgenital(A) (istype(A, /obj/item/organ/genital))
|
||||
|
||||
#define isborer(A) (istype(A, /mob/living/simple_animal/borer))
|
||||
#define isipcperson(A) (is_species(A, /datum/species/ipc))
|
||||
#define ismammal(A) (is_species(A, /datum/species/mammal))
|
||||
#define isavian(A) (is_species(A, /datum/species/avian))
|
||||
#define isaquatic(A) (is_species(A, /datum/species/aquatic))
|
||||
#define isinsect(A) (is_species(A, /datum/species/insect))
|
||||
#define isxenoperson(A) (is_species(A, /datum/species/xeno))
|
||||
|
||||
#define CITADEL_MENTOR_OOC_COLOUR "#224724"
|
||||
|
||||
|
||||
@@ -5,8 +5,3 @@
|
||||
#define CLEAN_STRONG 4 // Industrial strength
|
||||
#define CLEAN_IMPRESSIVE 5 // Cleaning strong enough your granny would be proud
|
||||
#define CLEAN_GOD 6 // Cleans things spotless down to the atomic structure
|
||||
|
||||
//How strong things have to be to wipe forensic evidence...
|
||||
#define CLEAN_STRENGTH_FINGERPRINTS CLEAN_IMPRESSIVE
|
||||
#define CLEAN_STRENGTH_BLOOD CLEAN_WEAK
|
||||
#define CLEAN_STRENGTH_FIBERS CLEAN_IMPRESSIVE
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
GLOBAL_VAR_INIT(clockwork_construction_value, 0) //The total value of all structures built by the clockwork cult
|
||||
GLOBAL_VAR_INIT(clockwork_vitality, 0) //How much Vitality is stored, total
|
||||
GLOBAL_VAR_INIT(clockwork_power, 0) //How many watts of power are globally available to the clockwork cult
|
||||
GLOBAL_VAR_INIT(neovgre_exists, 0) //Does neovgre exist?
|
||||
|
||||
GLOBAL_LIST_EMPTY(all_clockwork_objects) //All clockwork items, structures, and effects in existence
|
||||
GLOBAL_LIST_EMPTY(all_clockwork_mobs) //All clockwork SERVANTS (not creatures) in existence
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#define GET_COMPONENT(varname, path) GET_COMPONENT_FROM(varname, path, src)
|
||||
|
||||
#define COMPONENT_INCOMPATIBLE 1
|
||||
#define COMPONENT_NOTRANSFER 2
|
||||
|
||||
// How multiple components of the exact same type are handled in the same datum
|
||||
|
||||
@@ -225,6 +226,8 @@
|
||||
#define COMSIG_TURF_MAKE_DRY "make_turf_try" //(max_strength, immediate, duration_decrease = INFINITY): Returns bool.
|
||||
#define COMSIG_COMPONENT_CLEAN_ACT "clean_act" //called on an object to clean it of cleanables. Usualy with soap: (num/strength)
|
||||
|
||||
//Blood color
|
||||
#define COMSIG_BLOOD_COLOR "blood_DNA_to_color" //RGB blood stuff
|
||||
//Food
|
||||
#define COMSIG_FOOD_EATEN "food_eaten" //from base of obj/item/reagent_containers/food/snacks/attack(): (mob/living/eater, mob/feeder)
|
||||
|
||||
|
||||
@@ -15,6 +15,15 @@
|
||||
//misc footstep sounds
|
||||
#define FOOTSTEP_GENERIC_HEAVY "heavy"
|
||||
|
||||
#define FOOTPRINT_SHOE "shoe"
|
||||
#define FOOTPRINT_FOOT "foot"
|
||||
#define FOOTPRINT_PAW "paw"
|
||||
#define FOOTPRINT_CLAW "claw"
|
||||
#define FOOTPRINT_WHEEL "wheels"
|
||||
#define FOOTPRINT_TRAIL "trails_"
|
||||
#define FOOTPRINT_SNAKE "snake"
|
||||
#define FOOTPRINT_DRAG "drag"
|
||||
|
||||
/*
|
||||
|
||||
id = list(
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
#define IF_HAS_BLOOD_DNA(__thing) GET_COMPONENT_FROM(__FR##__thing, /datum/component/forensics, __thing); if(__FR##__thing && length(__FR##__thing.blood_DNA))
|
||||
#define IF_HAS_BLOOD_DNA_AND(__thing, __conditions...) GET_COMPONENT_FROM(__FR##__thing, /datum/component/forensics, __thing); if(__FR##__thing && length(__FR##__thing.blood_DNA) && (##__conditions))
|
||||
@@ -61,6 +61,15 @@
|
||||
#define iscatperson(A) (ishumanbasic(A) && istype(A.dna.species, /datum/species/human/felinid) )
|
||||
#define isdwarf(A) (is_species(A, /datum/species/dwarf))
|
||||
|
||||
// Citadel specific species
|
||||
#define isipcperson(A) (is_species(A, /datum/species/ipc))
|
||||
#define ismammal(A) (is_species(A, /datum/species/mammal))
|
||||
#define isavian(A) (is_species(A, /datum/species/avian))
|
||||
#define isaquatic(A) (is_species(A, /datum/species/aquatic))
|
||||
#define isinsect(A) (is_species(A, /datum/species/insect))
|
||||
#define isxenoperson(A) (is_species(A, /datum/species/xeno))
|
||||
#define isstartjelly(A) (is_species(A, /datum/species/jelly/roundstartslime))
|
||||
|
||||
//more carbon mobs
|
||||
#define ismonkey(A) (istype(A, /mob/living/carbon/monkey))
|
||||
|
||||
@@ -176,6 +185,8 @@ GLOBAL_LIST_INIT(heavyfootmob, typecacheof(list(
|
||||
|
||||
#define iscameramob(A) (istype(A, /mob/camera))
|
||||
|
||||
#define isaicamera(A) (istype(A, /mob/camera/aiEye))
|
||||
|
||||
#define iseminence(A) (istype(A, /mob/camera/eminence))
|
||||
|
||||
//Footstep helpers
|
||||
|
||||
+12
-2
@@ -171,12 +171,22 @@ GLOBAL_LIST_EMPTY(bloody_footprints_cache)
|
||||
#define BLOOD_LOSS_IN_SPREAD 20
|
||||
|
||||
//Bloody shoe blood states
|
||||
#define BLOOD_STATE_HUMAN "blood"
|
||||
#define BLOOD_STATE_XENO "xeno"
|
||||
#define BLOOD_STATE_BLOOD "blood"
|
||||
#define BLOOD_STATE_OIL "oil"
|
||||
#define BLOOD_STATE_NOT_BLOODY "no blood whatsoever"
|
||||
#define BLOOD_AMOUNT_PER_DECAL 20
|
||||
|
||||
//Blood Decal Colors
|
||||
#define BLOOD_COLOR_HUMAN "#dc0000"
|
||||
#define BLOOD_COLOR_XENO "#94a83c"
|
||||
#define BLOOD_COLOR_OIL "#301d02"
|
||||
#define BLOOD_COLOR_SYNTHETIC "#3f48aa"
|
||||
#define BLOOD_COLOR_SLIME "#00ff90"
|
||||
#define BLOOD_COLOR_LIZARD "#db004D"
|
||||
#define BLOOD_COLOR_UNIVERSAL "#db3300"
|
||||
#define BLOOD_COLOR_BUG "#a37c0f"
|
||||
|
||||
|
||||
//suit sensors: sensor_mode defines
|
||||
|
||||
#define SENSOR_OFF 0
|
||||
|
||||
@@ -33,4 +33,6 @@
|
||||
#define MOVESPEED_ID_SANITY "MOOD_SANITY"
|
||||
|
||||
#define MOVESPEED_ID_PRONE_DRAGGING "PRONE_DRAG"
|
||||
#define MOVESPEED_ID_HUMAN_CARRYING "HUMAN_CARRY"
|
||||
#define MOVESPEED_ID_HUMAN_CARRYING "HUMAN_CARRY"
|
||||
|
||||
#define MOVESPEED_ID_TASED_STATUS "TASED"
|
||||
+10
-37
@@ -31,41 +31,14 @@
|
||||
#define STIMULUM_RESEARCH_AMOUNT 50
|
||||
//Plasma fusion properties
|
||||
#define FUSION_ENERGY_THRESHOLD 3e9 //Amount of energy it takes to start a fusion reaction
|
||||
#define FUSION_TEMPERATURE_THRESHOLD 1000 //Temperature required to start a fusion reaction
|
||||
#define FUSION_MOLE_THRESHOLD 250 //Mole count required (tritium/plasma) to start a fusion reaction
|
||||
#define FUSION_RELEASE_ENERGY_SUPER 3e9 //Amount of energy released in the fusion process, super tier
|
||||
#define FUSION_RELEASE_ENERGY_HIGH 1e9 //Amount of energy released in the fusion process, high tier
|
||||
#define FUSION_RELEASE_ENERGY_MID 5e8 //Amount of energy released in the fusion process, mid tier
|
||||
#define FUSION_RELEASE_ENERGY_LOW 1e8 //Amount of energy released in the fusion process, low tier
|
||||
#define FUSION_MEDIATION_FACTOR 80 //Arbitrary
|
||||
#define FUSION_SUPER_TIER_THRESHOLD 50 //anything above this is super tier
|
||||
#define FUSION_HIGH_TIER_THRESHOLD 20 //anything above this and below 50 is high tier
|
||||
#define FUSION_MID_TIER_THRESHOLD 5 //anything above this and below 20 is mid tier - below this is low tier, but that doesnt need a define
|
||||
#define FUSION_ENERGY_DIVISOR_SUPER 25 //power_ratio is divided by this during energy calculations
|
||||
#define FUSION_ENERGY_DIVISOR_HIGH 20
|
||||
#define FUSION_ENERGY_DIVISOR_MID 10
|
||||
#define FUSION_ENERGY_DIVISOR_LOW 2
|
||||
#define FUSION_GAS_CREATION_FACTOR_TRITIUM 0.40 //trit - one gas rather than two, so think about that when calculating stuff - 40% in total
|
||||
#define FUSION_GAS_CREATION_FACTOR_STIM 0.05 //stim percentage creation from high tier - 5%, 60% in total with pluox
|
||||
#define FUSION_GAS_CREATION_FACTOR_PLUOX 0.55 //pluox percentage creation from high tier - 55%, 60% in total with stim
|
||||
#define FUSION_GAS_CREATION_FACTOR_NITRYL 0.20 //nitryl and N2O - 80% in total
|
||||
#define FUSION_GAS_CREATION_FACTOR_N2O 0.60 //nitryl and N2O - 80% in total
|
||||
#define FUSION_GAS_CREATION_FACTOR_BZ 0.05 //BZ - 5% - 90% in total with CO2
|
||||
#define FUSION_GAS_CREATION_FACTOR_CO2 0.85 //CO2 - 85% - 90% in total with BZ
|
||||
#define FUSION_MID_TIER_RAD_PROB_FACTOR 2 //probability of radpulse is power ratio * this for whatever tier
|
||||
#define FUSION_LOW_TIER_RAD_PROB_FACTOR 5
|
||||
#define FUSION_EFFICIENCY_BASE 60 //used in the fusion efficiency calculations
|
||||
#define FUSION_EFFICIENCY_DIVISOR 0.6 //ditto
|
||||
#define FUSION_RADIATION_FACTOR 15000 //horizontal asymptote
|
||||
#define FUSION_RADIATION_CONSTANT 30 //equation is form of (ax) / (x + b), where a = radiation factor and b = radiation constant and x = power ratio (https://www.desmos.com/calculator/4i1f296phl)
|
||||
#define FUSION_ZAP_POWER_ASYMPTOTE 50000 //maximum value - not enough to instacrit but it'll still hurt like shit
|
||||
#define FUSION_ZAP_POWER_CONSTANT 75 //equation is of from [ax / (x + b)] + c, where a = zap power asymptote, b = zap power constant, c = zap power base and x = power ratio
|
||||
#define FUSION_ZAP_POWER_BASE 1000 //(https://www.desmos.com/calculator/vvbmhf4unm)
|
||||
#define FUSION_ZAP_RANGE_SUPER 9 //range of the tesla zaps that occur from fusion
|
||||
#define FUSION_ZAP_RANGE_HIGH 7
|
||||
#define FUSION_ZAP_RANGE_MID 5
|
||||
#define FUSION_ZAP_RANGE_LOW 3
|
||||
#define FUSION_PARTICLE_FACTOR_SUPER 4 //# of particles fired out is equal to rand(3,6) * this for whatever tier
|
||||
#define FUSION_PARTICLE_FACTOR_HIGH 3
|
||||
#define FUSION_PARTICLE_FACTOR_MID 2
|
||||
#define FUSION_PARTICLE_FACTOR_LOW 1
|
||||
#define FUSION_TRITIUM_CONVERSION_COEFFICIENT (1e-10)
|
||||
#define INSTABILITY_GAS_POWER_FACTOR 0.003
|
||||
#define FUSION_TRITIUM_MOLES_USED 1
|
||||
#define PLASMA_BINDING_ENERGY 20000000
|
||||
#define TOROID_VOLUME_BREAKEVEN 1000
|
||||
#define FUSION_TEMPERATURE_THRESHOLD 10000
|
||||
#define PARTICLE_CHANCE_CONSTANT (-20000000)
|
||||
#define FUSION_RAD_MAX 2000
|
||||
#define FUSION_RAD_COEFFICIENT (-1000)
|
||||
#define FUSION_INSTABILITY_ENDOTHERMALITY 2
|
||||
|
||||
@@ -50,3 +50,7 @@
|
||||
#define ASSEMBLY_THIRD_STEP 2
|
||||
#define ASSEMBLY_FOURTH_STEP 3
|
||||
#define ASSEMBLY_FIFTH_STEP 4
|
||||
|
||||
|
||||
//Checks to determine borg availability depending on the server's config. These are defines in the interest of reducing copypasta
|
||||
#define BORG_SEC_AVAILABLE (!CONFIG_GET(flag/disable_secborg) && GLOB.security_level >= CONFIG_GET(number/minimum_secborg_alert))
|
||||
@@ -44,6 +44,8 @@
|
||||
|
||||
#define STATUS_EFFECT_SLEEPING /datum/status_effect/incapacitating/sleeping //the affected is asleep
|
||||
|
||||
#define STATUS_EFFECT_TASED /datum/status_effect/electrode //the affected has been tased, preventing fine muscle control
|
||||
|
||||
#define STATUS_EFFECT_PACIFY /datum/status_effect/pacify //the affected is pacified, preventing direct hostile actions
|
||||
|
||||
#define STATUS_EFFECT_BELLIGERENT /datum/status_effect/belligerent //forces the affected to walk, doing damage if they try to run
|
||||
|
||||
@@ -400,6 +400,12 @@ GLOBAL_LIST_EMPTY(species_list)
|
||||
. = 0
|
||||
break
|
||||
|
||||
if(isliving(user))
|
||||
var/mob/living/L = user
|
||||
if(L.recoveringstam)
|
||||
. = 0
|
||||
break
|
||||
|
||||
if(!QDELETED(Tloc) && (QDELETED(target) || Tloc != target.loc))
|
||||
if((Uloc != Tloc || Tloc != user) && !drifting)
|
||||
. = 0
|
||||
|
||||
@@ -756,7 +756,6 @@ Turf and target are separate in case you want to teleport some distance from a t
|
||||
loc = loc.loc
|
||||
return null
|
||||
|
||||
|
||||
//For objects that should embed, but make no sense being is_sharp or is_pointed()
|
||||
//e.g: rods
|
||||
GLOBAL_LIST_INIT(can_embed_types, typecacheof(list(
|
||||
|
||||
@@ -58,3 +58,64 @@ GLOBAL_LIST_EMPTY(latejoiners) //CIT CHANGE - All latejoining people, for traito
|
||||
for(var/i in GLOB.mob_list)
|
||||
var/mob/M = i
|
||||
M.update_config_movespeed()
|
||||
|
||||
GLOBAL_LIST_INIT(noodle_taurs, list(
|
||||
"Naga",
|
||||
"Tentacle"
|
||||
))
|
||||
|
||||
GLOBAL_LIST_INIT(paw_taurs, list(
|
||||
"Fox",
|
||||
"Wolf",
|
||||
"Otie",
|
||||
"Drake",
|
||||
"Lab",
|
||||
"Shepherd",
|
||||
"Husky",
|
||||
"Eevee",
|
||||
"Panther",
|
||||
"Horse",
|
||||
"Cow",
|
||||
"Tiger"
|
||||
))
|
||||
|
||||
//blood types
|
||||
GLOBAL_LIST_INIT(regular_bloods,list(
|
||||
"O-",
|
||||
"O+",
|
||||
"A-",
|
||||
"A+",
|
||||
"B-",
|
||||
"B+",
|
||||
"AB-",
|
||||
"AB+"
|
||||
))
|
||||
|
||||
GLOBAL_LIST_INIT(all_types_bloods,list(
|
||||
"O-",
|
||||
"O+",
|
||||
"A-",
|
||||
"A+",
|
||||
"B-",
|
||||
"B+",
|
||||
"AB-",
|
||||
"AB+",
|
||||
"SY",
|
||||
"X*",
|
||||
"HF",
|
||||
"L",
|
||||
"U",
|
||||
"GEL",
|
||||
"BUG"
|
||||
))
|
||||
|
||||
GLOBAL_LIST_INIT(blood_types, list(
|
||||
"blood",
|
||||
"jellyblood"
|
||||
))
|
||||
|
||||
GLOBAL_LIST_INIT(blood_id_types, list(
|
||||
"blood" = /datum/reagent/blood,
|
||||
"jellyblood" = /datum/reagent/blood/jellyblood
|
||||
))
|
||||
|
||||
|
||||
@@ -70,6 +70,9 @@
|
||||
|
||||
/datum/config_entry/flag/disable_peaceborg
|
||||
|
||||
/datum/config_entry/number/minimum_secborg_alert //Minimum alert level for secborgs to be chosen.
|
||||
config_entry_value = 3
|
||||
|
||||
/datum/config_entry/number/traitor_scaling_coeff //how much does the amount of players get divided by to determine traitors
|
||||
config_entry_value = 6
|
||||
min_val = 1
|
||||
|
||||
@@ -2,6 +2,10 @@
|
||||
var/dupe_mode = COMPONENT_DUPE_HIGHLANDER
|
||||
var/dupe_type
|
||||
var/datum/parent
|
||||
//only set to true if you are able to properly transfer this component
|
||||
//At a minimum RegisterWithParent and UnregisterFromParent should be used
|
||||
//Make sure you also implement PostTransfer for any post transfer handling
|
||||
var/can_transfer = FALSE
|
||||
|
||||
/datum/component/New(datum/P, ...)
|
||||
parent = P
|
||||
@@ -154,7 +158,7 @@
|
||||
return
|
||||
|
||||
/datum/component/proc/PostTransfer()
|
||||
return
|
||||
return COMPONENT_INCOMPATIBLE //Do not support transfer by default as you must properly support it
|
||||
|
||||
/datum/component/proc/_GetInverseTypeList(our_type = type)
|
||||
//we can do this one simple trick
|
||||
@@ -285,10 +289,12 @@
|
||||
if(target.parent)
|
||||
target.RemoveComponent()
|
||||
target.parent = src
|
||||
if(target.PostTransfer() == COMPONENT_INCOMPATIBLE)
|
||||
var/c_type = target.type
|
||||
qdel(target)
|
||||
CRASH("Incompatible [c_type] transfer attempt to a [type]!")
|
||||
var/result = target.PostTransfer()
|
||||
switch(result)
|
||||
if(COMPONENT_INCOMPATIBLE)
|
||||
var/c_type = target.type
|
||||
qdel(target)
|
||||
CRASH("Incompatible [c_type] transfer attempt to a [type]!")
|
||||
if(target == AddComponent(target))
|
||||
target._JoinParent()
|
||||
|
||||
@@ -298,10 +304,13 @@
|
||||
return
|
||||
var/comps = dc[/datum/component]
|
||||
if(islist(comps))
|
||||
for(var/I in comps)
|
||||
target.TakeComponent(I)
|
||||
for(var/datum/component/I in comps)
|
||||
if(I.can_transfer)
|
||||
target.TakeComponent(I)
|
||||
else
|
||||
target.TakeComponent(comps)
|
||||
var/datum/component/C = comps
|
||||
if(C.can_transfer)
|
||||
target.TakeComponent(comps)
|
||||
|
||||
/datum/component/ui_host()
|
||||
return parent
|
||||
|
||||
@@ -8,32 +8,39 @@
|
||||
|
||||
/datum/component/cleaning/proc/Clean()
|
||||
var/atom/movable/AM = parent
|
||||
var/turf/tile = AM.loc
|
||||
if(!isturf(tile))
|
||||
return
|
||||
|
||||
SEND_SIGNAL(tile, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
|
||||
for(var/A in tile)
|
||||
var/turf/T = AM.loc
|
||||
SEND_SIGNAL(T, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
for(var/A in T)
|
||||
if(is_cleanable(A))
|
||||
qdel(A)
|
||||
else if(istype(A, /obj/item))
|
||||
var/obj/item/I = A
|
||||
SEND_SIGNAL(I, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
|
||||
if(ismob(I.loc))
|
||||
var/mob/M = I.loc
|
||||
else if(isitem(A))
|
||||
var/obj/item/cleaned_item = A
|
||||
SEND_SIGNAL(cleaned_item, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_item.clean_blood()
|
||||
if(ismob(cleaned_item.loc))
|
||||
var/mob/M = cleaned_item.loc
|
||||
M.regenerate_icons()
|
||||
else if(ishuman(A))
|
||||
var/mob/living/carbon/human/cleaned_human = A
|
||||
if(cleaned_human.lying)
|
||||
if(cleaned_human.head)
|
||||
SEND_SIGNAL(cleaned_human.head, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
|
||||
SEND_SIGNAL(cleaned_human.head, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.head.clean_blood()
|
||||
cleaned_human.update_inv_head()
|
||||
if(cleaned_human.wear_suit)
|
||||
SEND_SIGNAL(cleaned_human.wear_suit, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
|
||||
SEND_SIGNAL(cleaned_human.wear_suit, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.wear_suit.clean_blood()
|
||||
cleaned_human.update_inv_wear_suit()
|
||||
else if(cleaned_human.w_uniform)
|
||||
SEND_SIGNAL(cleaned_human.w_uniform, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
|
||||
SEND_SIGNAL(cleaned_human.w_uniform, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.w_uniform.clean_blood()
|
||||
cleaned_human.update_inv_w_uniform()
|
||||
if(cleaned_human.shoes)
|
||||
SEND_SIGNAL(cleaned_human.shoes, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
|
||||
SEND_SIGNAL(cleaned_human, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
|
||||
SEND_SIGNAL(cleaned_human.shoes, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.shoes.clean_blood()
|
||||
cleaned_human.update_inv_shoes()
|
||||
SEND_SIGNAL(cleaned_human, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.clean_blood()
|
||||
cleaned_human.wash_cream()
|
||||
cleaned_human.regenerate_icons()
|
||||
to_chat(cleaned_human, "<span class='danger'>[AM] cleans your face!</span>")
|
||||
to_chat(cleaned_human, "<span class='danger'>[src] cleans your face!</span>")
|
||||
@@ -1,6 +1,6 @@
|
||||
/datum/component/decal
|
||||
dupe_mode = COMPONENT_DUPE_ALLOWED
|
||||
|
||||
can_transfer = TRUE
|
||||
var/cleanable
|
||||
var/description
|
||||
var/mutable_appearance/pic
|
||||
|
||||
@@ -1,39 +1,13 @@
|
||||
/datum/component/decal/blood
|
||||
dupe_mode = COMPONENT_DUPE_UNIQUE
|
||||
|
||||
/datum/component/decal/blood/Initialize(_icon, _icon_state, _dir, _cleanable=CLEAN_STRENGTH_BLOOD, _color, _layer=ABOVE_OBJ_LAYER)
|
||||
if(!isitem(parent))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
. = ..()
|
||||
RegisterSignal(parent, COMSIG_ATOM_GET_EXAMINE_NAME, .proc/get_examine_name)
|
||||
|
||||
/datum/component/decal/blood/generate_appearance(_icon, _icon_state, _dir, _layer, _color)
|
||||
var/obj/item/I = parent
|
||||
if(!_icon)
|
||||
_icon = 'icons/effects/blood.dmi'
|
||||
if(!_icon_state)
|
||||
_icon_state = "itemblood"
|
||||
var/icon = initial(I.icon)
|
||||
var/icon_state = initial(I.icon_state)
|
||||
if(!icon || !icon_state)
|
||||
// It's something which takes on the look of other items, probably
|
||||
icon = I.icon
|
||||
icon_state = I.icon_state
|
||||
var/static/list/blood_splatter_appearances = list()
|
||||
//try to find a pre-processed blood-splatter. otherwise, make a new one
|
||||
var/index = "[REF(icon)]-[icon_state]"
|
||||
pic = blood_splatter_appearances[index]
|
||||
|
||||
if(!pic)
|
||||
var/icon/blood_splatter_icon = icon(initial(I.icon), initial(I.icon_state), , 1) //we only want to apply blood-splatters to the initial icon_state for each object
|
||||
blood_splatter_icon.Blend("#fff", ICON_ADD) //fills the icon_state with white (except where it's transparent)
|
||||
blood_splatter_icon.Blend(icon(_icon, _icon_state), ICON_MULTIPLY) //adds blood and the remaining white areas become transparant
|
||||
pic = mutable_appearance(blood_splatter_icon, initial(I.icon_state))
|
||||
blood_splatter_appearances[index] = pic
|
||||
return TRUE
|
||||
|
||||
/datum/component/decal/blood/proc/get_examine_name(datum/source, mob/user, list/override)
|
||||
var/atom/A = parent
|
||||
override[EXAMINE_POSITION_ARTICLE] = A.gender == PLURAL? "some" : "a"
|
||||
override[EXAMINE_POSITION_BEFORE] = " blood-stained "
|
||||
return COMPONENT_EXNAME_CHANGED
|
||||
/datum/component/decal/blood
|
||||
dupe_mode = COMPONENT_DUPE_UNIQUE
|
||||
|
||||
/datum/component/decal/blood/Initialize(_icon, _icon_state, _dir, _cleanable=CLEAN_STRENGTH_BLOOD, _color, _layer=ABOVE_OBJ_LAYER)
|
||||
if(!isitem(parent))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
. = ..()
|
||||
RegisterSignal(parent, COMSIG_ATOM_GET_EXAMINE_NAME, .proc/get_examine_name)
|
||||
|
||||
/datum/component/decal/blood/proc/get_examine_name(datum/source, mob/user, list/override)
|
||||
var/atom/A = parent
|
||||
|
||||
return COMPONENT_EXNAME_CHANGED
|
||||
|
||||
@@ -1,159 +0,0 @@
|
||||
/datum/component/forensics
|
||||
dupe_mode = COMPONENT_DUPE_UNIQUE
|
||||
var/list/fingerprints //assoc print = print
|
||||
var/list/hiddenprints //assoc ckey = realname/gloves/ckey
|
||||
var/list/blood_DNA //assoc dna = bloodtype
|
||||
var/list/fibers //assoc print = print
|
||||
|
||||
/datum/component/forensics/InheritComponent(datum/component/forensics/F, original) //Use of | and |= being different here is INTENTIONAL.
|
||||
fingerprints = fingerprints | F.fingerprints
|
||||
hiddenprints = hiddenprints | F.hiddenprints
|
||||
blood_DNA = blood_DNA | F.blood_DNA
|
||||
fibers = fibers | F.fibers
|
||||
check_blood()
|
||||
return ..()
|
||||
|
||||
/datum/component/forensics/Initialize(new_fingerprints, new_hiddenprints, new_blood_DNA, new_fibers)
|
||||
if(!isatom(parent))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
fingerprints = new_fingerprints
|
||||
hiddenprints = new_hiddenprints
|
||||
blood_DNA = new_blood_DNA
|
||||
fibers = new_fibers
|
||||
check_blood()
|
||||
RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean_act)
|
||||
|
||||
/datum/component/forensics/proc/wipe_fingerprints()
|
||||
fingerprints = null
|
||||
return TRUE
|
||||
|
||||
/datum/component/forensics/proc/wipe_hiddenprints()
|
||||
return //no.
|
||||
|
||||
/datum/component/forensics/proc/wipe_blood_DNA()
|
||||
blood_DNA = null
|
||||
if(isitem(parent))
|
||||
qdel(parent.GetComponent(/datum/component/decal/blood))
|
||||
return TRUE
|
||||
|
||||
/datum/component/forensics/proc/wipe_fibers()
|
||||
fibers = null
|
||||
return TRUE
|
||||
|
||||
/datum/component/forensics/proc/clean_act(datum/source, strength)
|
||||
if(strength >= CLEAN_STRENGTH_FINGERPRINTS)
|
||||
wipe_fingerprints()
|
||||
if(strength >= CLEAN_STRENGTH_BLOOD)
|
||||
wipe_blood_DNA()
|
||||
if(strength >= CLEAN_STRENGTH_FIBERS)
|
||||
wipe_fibers()
|
||||
|
||||
/datum/component/forensics/proc/add_fingerprint_list(list/_fingerprints) //list(text)
|
||||
if(!length(_fingerprints))
|
||||
return
|
||||
LAZYINITLIST(fingerprints)
|
||||
for(var/i in _fingerprints) //We use an associative list, make sure we don't just merge a non-associative list into ours.
|
||||
fingerprints[i] = i
|
||||
return TRUE
|
||||
|
||||
/datum/component/forensics/proc/add_fingerprint(mob/living/M, ignoregloves = FALSE)
|
||||
if(!M)
|
||||
return
|
||||
add_hiddenprint(M)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
add_fibers(H)
|
||||
if(H.gloves) //Check if the gloves (if any) hide fingerprints
|
||||
var/obj/item/clothing/gloves/G = H.gloves
|
||||
if(G.transfer_prints)
|
||||
ignoregloves = TRUE
|
||||
if(!ignoregloves)
|
||||
H.gloves.add_fingerprint(H, TRUE) //ignoregloves = 1 to avoid infinite loop.
|
||||
return
|
||||
var/full_print = md5(H.dna.uni_identity)
|
||||
LAZYSET(fingerprints, full_print, full_print)
|
||||
return TRUE
|
||||
|
||||
/datum/component/forensics/proc/add_fiber_list(list/_fibertext) //list(text)
|
||||
if(!length(_fibertext))
|
||||
return
|
||||
LAZYINITLIST(fibers)
|
||||
for(var/i in _fibertext) //We use an associative list, make sure we don't just merge a non-associative list into ours.
|
||||
fibers[i] = i
|
||||
return TRUE
|
||||
|
||||
/datum/component/forensics/proc/add_fibers(mob/living/carbon/human/M)
|
||||
var/fibertext
|
||||
var/item_multiplier = isitem(src)?1.2:1
|
||||
if(M.wear_suit)
|
||||
fibertext = "Material from \a [M.wear_suit]."
|
||||
if(prob(10*item_multiplier) && !LAZYACCESS(fibers, fibertext))
|
||||
LAZYSET(fibers, fibertext, fibertext)
|
||||
if(!(M.wear_suit.body_parts_covered & CHEST))
|
||||
if(M.w_uniform)
|
||||
fibertext = "Fibers from \a [M.w_uniform]."
|
||||
if(prob(12*item_multiplier) && !LAZYACCESS(fibers, fibertext)) //Wearing a suit means less of the uniform exposed.
|
||||
LAZYSET(fibers, fibertext, fibertext)
|
||||
if(!(M.wear_suit.body_parts_covered & HANDS))
|
||||
if(M.gloves)
|
||||
fibertext = "Material from a pair of [M.gloves.name]."
|
||||
if(prob(20*item_multiplier) && !LAZYACCESS(fibers, fibertext))
|
||||
LAZYSET(fibers, fibertext, fibertext)
|
||||
else if(M.w_uniform)
|
||||
fibertext = "Fibers from \a [M.w_uniform]."
|
||||
if(prob(15*item_multiplier) && !LAZYACCESS(fibers, fibertext))
|
||||
// "Added fibertext: [fibertext]"
|
||||
LAZYSET(fibers, fibertext, fibertext)
|
||||
if(M.gloves)
|
||||
fibertext = "Material from a pair of [M.gloves.name]."
|
||||
if(prob(20*item_multiplier) && !LAZYACCESS(fibers, fibertext))
|
||||
LAZYSET(fibers, fibertext, fibertext)
|
||||
else if(M.gloves)
|
||||
fibertext = "Material from a pair of [M.gloves.name]."
|
||||
if(prob(20*item_multiplier) && !LAZYACCESS(fibers, fibertext))
|
||||
LAZYSET(fibers, fibertext, fibertext)
|
||||
return TRUE
|
||||
|
||||
/datum/component/forensics/proc/add_hiddenprint_list(list/_hiddenprints) //list(ckey = text)
|
||||
if(!length(_hiddenprints))
|
||||
return
|
||||
LAZYINITLIST(hiddenprints)
|
||||
for(var/i in _hiddenprints) //We use an associative list, make sure we don't just merge a non-associative list into ours.
|
||||
hiddenprints[i] = _hiddenprints[i]
|
||||
return TRUE
|
||||
|
||||
/datum/component/forensics/proc/add_hiddenprint(mob/living/M)
|
||||
if(!M || !M.key)
|
||||
return
|
||||
var/hasgloves = ""
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.gloves)
|
||||
hasgloves = "(gloves)"
|
||||
var/current_time = TIME_STAMP("hh:mm:ss", FALSE)
|
||||
if(!LAZYACCESS(hiddenprints, M.key))
|
||||
LAZYSET(hiddenprints, M.key, "First: [M.real_name]\[[current_time]\][hasgloves]. Ckey: [M.ckey]")
|
||||
else
|
||||
var/laststamppos = findtext(LAZYACCESS(hiddenprints, M.key), " Last: ")
|
||||
if(laststamppos)
|
||||
LAZYSET(hiddenprints, M.key, copytext(hiddenprints[M.key], 1, laststamppos))
|
||||
hiddenprints[M.key] += " Last: [M.real_name]\[[current_time]\][hasgloves]. Ckey: [M.ckey]" //made sure to be existing by if(!LAZYACCESS);else
|
||||
var/atom/A = parent
|
||||
A.fingerprintslast = M.ckey
|
||||
return TRUE
|
||||
|
||||
/datum/component/forensics/proc/add_blood_DNA(list/dna) //list(dna_enzymes = type)
|
||||
if(!length(dna))
|
||||
return
|
||||
LAZYINITLIST(blood_DNA)
|
||||
for(var/i in dna)
|
||||
blood_DNA[i] = dna[i]
|
||||
check_blood()
|
||||
return TRUE
|
||||
|
||||
/datum/component/forensics/proc/check_blood()
|
||||
if(!isitem(parent))
|
||||
return
|
||||
if(!length(blood_DNA))
|
||||
return
|
||||
parent.LoadComponent(/datum/component/decal/blood)
|
||||
@@ -237,6 +237,3 @@
|
||||
LOCKON_RANGING_BREAK_CHECK
|
||||
cd++
|
||||
CHECK_TICK
|
||||
|
||||
/datum/component/lockon_aiming/PostTransfer(datum/new_parent)
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
/datum/component/mirage_border
|
||||
can_transfer = TRUE
|
||||
var/obj/effect/abstract/mirage_holder/holder
|
||||
|
||||
/datum/component/mirage_border/Initialize(turf/target, direction, range=world.view)
|
||||
|
||||
@@ -44,19 +44,21 @@
|
||||
if(src.rotation_flags & ROTATION_CLOCKWISE)
|
||||
default_rotation_direction = ROTATION_CLOCKWISE
|
||||
|
||||
if(src.rotation_flags & ROTATION_ALTCLICK)
|
||||
/datum/component/simple_rotation/proc/add_signals()
|
||||
if(rotation_flags & ROTATION_ALTCLICK)
|
||||
RegisterSignal(parent, COMSIG_CLICK_ALT, .proc/HandRot)
|
||||
RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/ExamineMessage)
|
||||
if(src.rotation_flags & ROTATION_WRENCH)
|
||||
if(rotation_flags & ROTATION_WRENCH)
|
||||
RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/WrenchRot)
|
||||
|
||||
if(src.rotation_flags & ROTATION_VERBS)
|
||||
/datum/component/simple_rotation/proc/add_verbs()
|
||||
if(rotation_flags & ROTATION_VERBS)
|
||||
var/atom/movable/AM = parent
|
||||
if(src.rotation_flags & ROTATION_FLIP)
|
||||
if(rotation_flags & ROTATION_FLIP)
|
||||
AM.verbs += /atom/movable/proc/simple_rotate_flip
|
||||
if(src.rotation_flags & ROTATION_CLOCKWISE)
|
||||
if(rotation_flags & ROTATION_CLOCKWISE)
|
||||
AM.verbs += /atom/movable/proc/simple_rotate_clockwise
|
||||
if(src.rotation_flags & ROTATION_COUNTERCLOCKWISE)
|
||||
if(rotation_flags & ROTATION_COUNTERCLOCKWISE)
|
||||
AM.verbs += /atom/movable/proc/simple_rotate_counterclockwise
|
||||
|
||||
/datum/component/simple_rotation/proc/remove_verbs()
|
||||
@@ -66,11 +68,30 @@
|
||||
AM.verbs -= /atom/movable/proc/simple_rotate_clockwise
|
||||
AM.verbs -= /atom/movable/proc/simple_rotate_counterclockwise
|
||||
|
||||
/datum/component/simple_rotation/Destroy()
|
||||
/datum/component/simple_rotation/proc/remove_signals()
|
||||
UnregisterSignal(parent, list(COMSIG_CLICK_ALT, COMSIG_PARENT_EXAMINE, COMSIG_PARENT_ATTACKBY))
|
||||
|
||||
/datum/component/simple_rotation/RegisterWithParent()
|
||||
add_verbs()
|
||||
add_signals()
|
||||
. = ..()
|
||||
|
||||
/datum/component/simple_rotation/PostTransfer()
|
||||
//Because of the callbacks which we don't track cleanly we can't transfer this
|
||||
//item cleanly, better to let the new of the new item create a new rotation datum
|
||||
//instead (there's no real state worth transferring)
|
||||
return COMPONENT_NOTRANSFER
|
||||
|
||||
/datum/component/simple_rotation/UnregisterFromParent()
|
||||
remove_verbs()
|
||||
remove_signals()
|
||||
. = ..()
|
||||
|
||||
/datum/component/simple_rotation/Destroy()
|
||||
QDEL_NULL(can_user_rotate)
|
||||
QDEL_NULL(can_be_rotated)
|
||||
QDEL_NULL(after_rotation)
|
||||
//Signals + verbs removed via UnRegister
|
||||
. = ..()
|
||||
|
||||
/datum/component/simple_rotation/RemoveComponent()
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
// /mob/living/Move() in /modules/mob/living/living.dm - hiding storage boxes on mob movement
|
||||
|
||||
/datum/component/storage/concrete
|
||||
can_transfer = TRUE
|
||||
var/drop_all_on_deconstruct = TRUE
|
||||
var/drop_all_on_destroy = FALSE
|
||||
var/drop_all_on_break = FALSE
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
/obj/item/scalpel, /obj/item/reagent_containers/syringe, /obj/item/dnainjector,
|
||||
/obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/dropper,
|
||||
/obj/item/implanter, /obj/item/screwdriver, /obj/item/weldingtool/mini,
|
||||
/obj/item/firing_pin
|
||||
/obj/item/firing_pin, /obj/item/gun/ballistic/automatic/pistol/mag
|
||||
))
|
||||
|
||||
/datum/component/storage/concrete/pockets/shoes/clown/Initialize()
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/datum/component/wet_floor
|
||||
dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS
|
||||
can_transfer = TRUE
|
||||
var/highest_strength = TURF_DRY
|
||||
var/lube_flags = NONE //why do we have this?
|
||||
var/list/time_left_list //In deciseconds.
|
||||
@@ -26,14 +27,20 @@
|
||||
if(!isopenturf(parent))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
add_wet(strength, duration_minimum, duration_add, duration_maximum)
|
||||
RegisterSignal(parent, COMSIG_TURF_IS_WET, .proc/is_wet)
|
||||
RegisterSignal(parent, COMSIG_TURF_MAKE_DRY, .proc/dry)
|
||||
permanent = _permanent
|
||||
if(!permanent)
|
||||
START_PROCESSING(SSwet_floors, src)
|
||||
addtimer(CALLBACK(src, .proc/gc, TRUE), 1) //GC after initialization.
|
||||
last_process = world.time
|
||||
|
||||
/datum/component/wet_floor/RegisterWithParent()
|
||||
RegisterSignal(parent, COMSIG_TURF_IS_WET, .proc/is_wet)
|
||||
RegisterSignal(parent, COMSIG_TURF_MAKE_DRY, .proc/dry)
|
||||
|
||||
/datum/component/wet_floor/UnregisterFromParent()
|
||||
UnregisterSignal(parent, list(COMSIG_TURF_IS_WET, COMSIG_TURF_MAKE_DRY))
|
||||
|
||||
|
||||
/datum/component/wet_floor/Destroy()
|
||||
STOP_PROCESSING(SSwet_floors, src)
|
||||
var/turf/T = parent
|
||||
@@ -138,12 +145,19 @@
|
||||
/datum/component/wet_floor/PreTransfer()
|
||||
var/turf/O = parent
|
||||
O.cut_overlay(current_overlay)
|
||||
//That turf is no longer slippery, we're out of here
|
||||
//Slippery components don't transfer due to callbacks
|
||||
qdel(O.GetComponent(/datum/component/slippery))
|
||||
|
||||
/datum/component/wet_floor/PostTransfer()
|
||||
if(!isopenturf(parent))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
var/turf/T = parent
|
||||
T.add_overlay(current_overlay)
|
||||
//Make sure to add/update any slippery component on the new turf (update_flags calls LoadComponent)
|
||||
update_flags()
|
||||
|
||||
//NB it's possible we get deleted after this, due to inherit
|
||||
|
||||
/datum/component/wet_floor/proc/add_wet(type, duration_minimum = 0, duration_add = 0, duration_maximum = MAXIMUM_WET_TIME, _permanent = FALSE)
|
||||
var/static/list/allowed_types = list(TURF_WET_WATER, TURF_WET_LUBE, TURF_WET_ICE, TURF_WET_PERMAFROST)
|
||||
|
||||
@@ -10,10 +10,11 @@
|
||||
// And yes this does have to be in the constructor, BYOND ignores it if you set it as a normal var
|
||||
|
||||
// Helper similar to image()
|
||||
/proc/mutable_appearance(icon, icon_state = "", layer = FLOAT_LAYER, plane = FLOAT_PLANE)
|
||||
/proc/mutable_appearance(icon, icon_state = "", layer = FLOAT_LAYER, plane = FLOAT_PLANE, color = "#FFFFFF")
|
||||
var/mutable_appearance/MA = new()
|
||||
MA.icon = icon
|
||||
MA.icon_state = icon_state
|
||||
MA.layer = layer
|
||||
MA.plane = plane
|
||||
MA.color = color
|
||||
return MA
|
||||
|
||||
+19
-8
@@ -177,8 +177,8 @@
|
||||
/datum/map_template/shuttle/emergency/airless
|
||||
suffix = "airless"
|
||||
name = "Build your own shuttle kit"
|
||||
description = "Save money by building your own shuttle! The chassis will dock upon purchase, but launch will have to be authorized as usual via shuttle call. Interior and atmosphere not included."
|
||||
admin_notes = "No brig, no medical facilities, no air."
|
||||
description = "Save money by building your own shuttle! The chassis will dock upon purchase, but launch will have to be authorized as usual via shuttle call. Interior and lighting not included."
|
||||
admin_notes = "No brig, no medical facilities, just an empty box."
|
||||
credit_cost = -7500
|
||||
|
||||
/datum/map_template/shuttle/emergency/airless/prerequisites_met()
|
||||
@@ -222,9 +222,9 @@
|
||||
/datum/map_template/shuttle/emergency/luxury
|
||||
suffix = "luxury"
|
||||
name = "Luxury Shuttle"
|
||||
description = "A luxurious golden shuttle complete with an indoor swimming pool. Each crewmember wishing to board must bring 500 credits, payable in cash and mineral coin."
|
||||
admin_notes = "Due to the limited space for non paying crew, this shuttle may cause a riot."
|
||||
credit_cost = 10000
|
||||
description = "A luxurious golden shuttle complete with an indoor swimming pool. Entry is free, so long as you can afford the initial cost."
|
||||
admin_notes = "Fancy, and very roomy!"
|
||||
credit_cost = 17500
|
||||
|
||||
/datum/map_template/shuttle/emergency/discoinferno
|
||||
suffix = "discoinferno"
|
||||
@@ -300,7 +300,7 @@
|
||||
suffix = "syndicate"
|
||||
name = "Syndicate GM Battlecruiser"
|
||||
credit_cost = 20000
|
||||
description = "Manufactured by the Gorlex Marauders, this cruiser has been specially designed with high occupancy in mind, while remaining robust in combat situations. Features a fully stocked EVA storage, armory, medbay, and bar!"
|
||||
description = "(Emag only) Manufactured by the Gorlex Marauders, this cruiser has been specially designed with high occupancy in mind, while remaining robust in combat situations. Features a fully stocked EVA storage, armory, medbay, and bar!"
|
||||
admin_notes = "An emag exclusive, stocked with syndicate equipment and turrets that will target any simplemob."
|
||||
|
||||
/datum/map_template/shuttle/emergency/syndicate/prerequisites_met()
|
||||
@@ -333,7 +333,7 @@
|
||||
/datum/map_template/shuttle/emergency/supermatter
|
||||
suffix = "supermatter"
|
||||
name = "Hyperfractal Gigashuttle"
|
||||
description = "\"I dunno, this seems kinda needlessly complicated.\"\n\
|
||||
description = "(Emag only) \"I dunno, this seems kinda needlessly complicated.\"\n\
|
||||
\"This shuttle has very a very high safety record, according to CentCom Officer Cadet Yins.\"\n\
|
||||
\"Are you sure?\"\n\
|
||||
\"Yes, it has a safety record of N-A-N, which is apparently larger than 100%.\""
|
||||
@@ -341,7 +341,12 @@
|
||||
Outside of admin intervention, it cannot explode. \
|
||||
It does, however, still dust anything on contact, emits high levels of radiation, and induce hallucinations in anyone looking at it without protective goggles. \
|
||||
Emitters spawn powered on, expect admin notices, they are harmless."
|
||||
credit_cost = 100000
|
||||
credit_cost = 15000
|
||||
|
||||
/datum/map_template/shuttle/emergency/supermatter/prerequisites_met()
|
||||
if("emagged" in SSshuttle.shuttle_purchase_requirements_met)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/datum/map_template/shuttle/emergency/imfedupwiththisworld
|
||||
suffix = "imfedupwiththisworld"
|
||||
@@ -372,6 +377,12 @@
|
||||
description = "On the smaller size with a modern design, this shuttle is for the crew who like the cosier things, while still being able to stretch their legs."
|
||||
credit_cost = 1000
|
||||
|
||||
/datum/map_template/shuttle/emergency/gorilla
|
||||
suffix = "gorilla"
|
||||
name = "Gorilla Cargo Freighter"
|
||||
description = "A rustic, barely excuseable shuttle transporting important cargo. Not for crew who are about to go ape."
|
||||
credit_cost = 2000
|
||||
|
||||
/datum/map_template/shuttle/ferry/base
|
||||
suffix = "base"
|
||||
name = "transport ferry"
|
||||
|
||||
@@ -80,6 +80,36 @@
|
||||
desc = "You've fallen asleep. Wait a bit and you should wake up. Unless you don't, considering how helpless you are."
|
||||
icon_state = "asleep"
|
||||
|
||||
//TASER
|
||||
/datum/status_effect/electrode
|
||||
id = "tased"
|
||||
blocks_combatmode = TRUE
|
||||
status_type = STATUS_EFFECT_REPLACE
|
||||
alert_type = null
|
||||
|
||||
/datum/status_effect/electrode/on_creation(mob/living/new_owner, set_duration)
|
||||
if(isnum(set_duration))
|
||||
duration = set_duration
|
||||
. = ..()
|
||||
if(iscarbon(owner))
|
||||
var/mob/living/carbon/C = owner
|
||||
if(C.combatmode)
|
||||
C.toggle_combat_mode(TRUE)
|
||||
C.add_movespeed_modifier(MOVESPEED_ID_TASED_STATUS, TRUE, override = TRUE, multiplicative_slowdown = 8)
|
||||
|
||||
/datum/status_effect/electrode/on_remove()
|
||||
if(iscarbon(owner))
|
||||
var/mob/living/carbon/C = owner
|
||||
C.remove_movespeed_modifier(MOVESPEED_ID_TASED_STATUS)
|
||||
. = ..()
|
||||
|
||||
/datum/status_effect/electrode/tick()
|
||||
if(owner)
|
||||
owner.adjustStaminaLoss(5) //if you really want to try to stamcrit someone with a taser alone, you can, but it'll take time and good timing.
|
||||
|
||||
/datum/status_effect/electrode/nextmove_modifier() //why is this a proc. its no big deal since this doesnt get called often at all but literally w h y
|
||||
return 2
|
||||
|
||||
//OTHER DEBUFFS
|
||||
/datum/status_effect/his_wrath //does minor damage over time unless holding His Grace
|
||||
id = "his_wrath"
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
var/on_remove_on_mob_delete = FALSE //if we call on_remove() when the mob is deleted
|
||||
var/examine_text //If defined, this text will appear when the mob is examined - to use he, she etc. use "SUBJECTPRONOUN" and replace it in the examines themselves
|
||||
var/alert_type = /obj/screen/alert/status_effect //the alert thrown by the status effect, contains name and description
|
||||
var/blocks_combatmode //Does this status effect prevent the user from toggling combat mode?
|
||||
var/obj/screen/alert/status_effect/linked_alert = null //the alert itself, if it exists
|
||||
|
||||
/datum/status_effect/New(list/arguments)
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
area_type = /area
|
||||
protected_areas = list(/area/maintenance, /area/ai_monitored/turret_protected/ai_upload, /area/ai_monitored/turret_protected/ai_upload_foyer,
|
||||
/area/ai_monitored/turret_protected/ai, /area/storage/emergency/starboard, /area/storage/emergency/port, /area/shuttle)
|
||||
/area/ai_monitored/turret_protected/ai, /area/storage/emergency/starboard, /area/storage/emergency/port, /area/shuttle, /area/security/prison)
|
||||
target_trait = ZTRAIT_STATION
|
||||
|
||||
immunity_type = "rad"
|
||||
|
||||
+128
-9
@@ -36,6 +36,12 @@
|
||||
var/rad_flags = NONE // Will move to flags_1 when i can be arsed to
|
||||
var/rad_insulation = RAD_NO_INSULATION
|
||||
|
||||
var/icon/blood_splatter_icon
|
||||
var/list/fingerprints
|
||||
var/list/fingerprintshidden
|
||||
var/list/blood_DNA
|
||||
var/list/suit_fibers
|
||||
|
||||
/atom/New(loc, ...)
|
||||
//atom creation method that preloads variables at creation
|
||||
if(GLOB.use_preloader && (src.type == GLOB._preloader.target_path))//in case the instanciated atom is creating other atoms in New()
|
||||
@@ -220,7 +226,7 @@
|
||||
return FALSE
|
||||
|
||||
/atom/proc/CheckExit()
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/atom/proc/HasProximity(atom/movable/AM as mob|obj)
|
||||
return
|
||||
@@ -254,14 +260,27 @@
|
||||
if(article)
|
||||
. = "[article] [src]"
|
||||
override[EXAMINE_POSITION_ARTICLE] = article
|
||||
|
||||
if(SEND_SIGNAL(src, COMSIG_ATOM_GET_EXAMINE_NAME, user, override) & COMPONENT_EXNAME_CHANGED)
|
||||
. = override.Join("")
|
||||
|
||||
///Generate the full examine string of this atom (including icon for goonchat)
|
||||
/atom/proc/get_examine_string(mob/user, thats = FALSE)
|
||||
. = "[icon2html(src, user)] [thats? "That's ":""][get_examine_name(user)]"
|
||||
|
||||
/atom/proc/examine(mob/user)
|
||||
to_chat(user, get_examine_string(user, TRUE))
|
||||
//This reformat names to get a/an properly working on item descriptions when they are bloody
|
||||
var/f_name = "\a [src]."
|
||||
if(src.blood_DNA && !istype(src, /obj/effect/decal))
|
||||
if(gender == PLURAL)
|
||||
f_name = "some "
|
||||
else
|
||||
f_name = "a "
|
||||
f_name += "<span class='danger'>blood-stained</span> [name]!"
|
||||
|
||||
to_chat(user, "[icon2html(src, user)] That's [f_name]")
|
||||
|
||||
// to_chat(user, "[get_examine_string(user, TRUE)].")
|
||||
|
||||
if(desc)
|
||||
to_chat(user, desc)
|
||||
@@ -326,12 +345,14 @@
|
||||
|
||||
//returns the mob's dna info as a list, to be inserted in an object's blood_DNA list
|
||||
/mob/living/proc/get_blood_dna_list()
|
||||
if(get_blood_id() != "blood")
|
||||
var/blood_id = get_blood_id()
|
||||
if(!(blood_id =="blood" || blood_id == "jellyblood"))
|
||||
return
|
||||
return list("ANIMAL DNA" = "Y-")
|
||||
|
||||
/mob/living/carbon/get_blood_dna_list()
|
||||
if(get_blood_id() != "blood")
|
||||
var/blood_id = get_blood_id()
|
||||
if(!(blood_id =="blood" || blood_id == "jellyblood"))
|
||||
return
|
||||
var/list/blood_dna = list()
|
||||
if(dna)
|
||||
@@ -349,18 +370,116 @@
|
||||
var/new_blood_dna = L.get_blood_dna_list()
|
||||
if(!new_blood_dna)
|
||||
return FALSE
|
||||
var/old_length = blood_DNA_length()
|
||||
add_blood_DNA(new_blood_dna)
|
||||
if(blood_DNA_length() == old_length)
|
||||
LAZYINITLIST(blood_DNA) //if our list of DNA doesn't exist yet, initialise it.
|
||||
var/old_length = blood_DNA.len
|
||||
blood_DNA |= new_blood_dna
|
||||
if(blood_DNA.len == old_length)
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
//to add blood dna info to the object's blood_DNA list
|
||||
/atom/proc/transfer_blood_dna(list/blood_dna, list/datum/disease/diseases)
|
||||
LAZYINITLIST(blood_DNA)
|
||||
var/old_length = blood_DNA.len
|
||||
blood_DNA |= blood_dna
|
||||
if(blood_DNA.len > old_length)
|
||||
return TRUE
|
||||
//some new blood DNA was added
|
||||
|
||||
//to add blood from a mob onto something, and transfer their dna info
|
||||
/atom/proc/add_mob_blood(mob/living/M)
|
||||
var/list/blood_dna = M.get_blood_dna_list()
|
||||
if(!blood_dna)
|
||||
return FALSE
|
||||
return add_blood_DNA(blood_dna)
|
||||
return add_blood_DNA(blood_dna, M.diseases)
|
||||
|
||||
//to add blood onto something, with blood dna info to include.
|
||||
/atom/proc/add_blood_DNA(list/blood_dna, list/datum/disease/diseases)
|
||||
return FALSE
|
||||
|
||||
/obj/add_blood_DNA(list/blood_dna, list/datum/disease/diseases)
|
||||
return transfer_blood_dna(blood_dna, diseases)
|
||||
|
||||
/obj/item/add_blood_DNA(list/blood_dna, list/datum/disease/diseases)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
add_blood_overlay()
|
||||
|
||||
/obj/item/proc/add_blood_overlay()
|
||||
if(!blood_DNA.len)
|
||||
return
|
||||
if(initial(icon) && initial(icon_state))
|
||||
blood_splatter_icon = icon(initial(icon), initial(icon_state), , 1) //we only want to apply blood-splatters to the initial icon_state for each object
|
||||
blood_splatter_icon.Blend("#fff", ICON_ADD) //fills the icon_state with white (except where it's transparent)
|
||||
blood_splatter_icon.Blend(icon('icons/effects/blood.dmi', "itemblood"), ICON_MULTIPLY) //adds blood and the remaining white areas become transparant
|
||||
blood_splatter_icon.Blend(blood_DNA_to_color(), ICON_MULTIPLY)
|
||||
add_overlay(blood_splatter_icon)
|
||||
|
||||
/obj/item/clothing/gloves/add_blood_DNA(list/blood_dna, list/datum/disease/diseases)
|
||||
. = ..()
|
||||
transfer_blood = rand(2, 4)
|
||||
|
||||
/turf/add_blood_DNA(list/blood_dna, list/datum/disease/diseases)
|
||||
var/obj/effect/decal/cleanable/blood/splatter/B = locate() in src
|
||||
if(!B)
|
||||
B = new /obj/effect/decal/cleanable/blood/splatter(src, diseases)
|
||||
B.transfer_blood_dna(blood_dna, diseases) //give blood info to the blood decal.
|
||||
return TRUE //we bloodied the floor
|
||||
|
||||
/mob/living/carbon/human/add_blood_DNA(list/blood_dna, list/datum/disease/diseases)
|
||||
if(head)
|
||||
head.add_blood_DNA(blood_dna, diseases)
|
||||
update_inv_head()
|
||||
else if(wear_mask)
|
||||
wear_mask.add_blood_DNA(blood_dna, diseases)
|
||||
update_inv_wear_mask()
|
||||
if(wear_neck)
|
||||
wear_neck.add_blood_DNA(blood_dna, diseases)
|
||||
update_inv_neck()
|
||||
if(wear_suit)
|
||||
wear_suit.add_blood_DNA(blood_dna, diseases)
|
||||
update_inv_wear_suit()
|
||||
else if(w_uniform)
|
||||
w_uniform.add_blood_DNA(blood_dna, diseases)
|
||||
update_inv_w_uniform()
|
||||
if(gloves)
|
||||
var/obj/item/clothing/gloves/G = gloves
|
||||
G.add_blood_DNA(blood_dna, diseases)
|
||||
else
|
||||
transfer_blood_dna(blood_dna, diseases)
|
||||
bloody_hands = rand(2, 4)
|
||||
update_inv_gloves() //handles bloody hands overlays and updating
|
||||
return TRUE
|
||||
|
||||
/atom/proc/blood_DNA_to_color()
|
||||
var/list/colors = list()//first we make a list of all bloodtypes present
|
||||
for(var/bloop in blood_DNA)
|
||||
if(colors[blood_DNA[bloop]])
|
||||
colors[blood_DNA[bloop]]++
|
||||
else
|
||||
colors[blood_DNA[bloop]] = 1
|
||||
|
||||
var/final_rgb = BLOOD_COLOR_HUMAN //a default so we don't have white blood graphics if something messed up
|
||||
|
||||
if(colors.len)
|
||||
var/sum = 0 //this is all shitcode, but it works; trust me
|
||||
final_rgb = bloodtype_to_color(colors[1])
|
||||
sum = colors[colors[1]]
|
||||
if(colors.len > 1)
|
||||
var/i = 2
|
||||
while(i <= colors.len)
|
||||
var/tmp = colors[colors[i]]
|
||||
final_rgb = BlendRGB(final_rgb, bloodtype_to_color(colors[i]), tmp/(tmp+sum))
|
||||
sum += tmp
|
||||
i++
|
||||
|
||||
return final_rgb
|
||||
|
||||
/atom/proc/clean_blood()
|
||||
if(islist(blood_DNA))
|
||||
blood_DNA = null
|
||||
return TRUE
|
||||
|
||||
/atom/proc/wash_cream()
|
||||
return TRUE
|
||||
@@ -714,4 +833,4 @@ Proc for attack log creation, because really why not
|
||||
if(filter_data[name])
|
||||
filter_data -= name
|
||||
update_filters()
|
||||
return TRUE
|
||||
return TRUE
|
||||
@@ -317,7 +317,7 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event
|
||||
|
||||
/obj/effect/meteor/meaty/xeno/ram_turf(turf/T)
|
||||
if(!isspaceturf(T))
|
||||
new /obj/effect/decal/cleanable/xenoblood(T)
|
||||
new /obj/effect/decal/cleanable/blood/xeno(T)
|
||||
|
||||
//Station buster Tunguska
|
||||
/obj/effect/meteor/tunguska
|
||||
|
||||
@@ -0,0 +1,361 @@
|
||||
/obj/machinery/bloodbankgen
|
||||
name = "blood bank generator"
|
||||
desc = "Generates universally applicable synthetics for all blood types. Add regular blood to convert."
|
||||
icon = 'icons/obj/bloodbank.dmi'
|
||||
icon_state = "bloodbank-off"
|
||||
density = TRUE
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 80
|
||||
circuit = /obj/item/circuitboard/machine/bloodbankgen
|
||||
interaction_flags_machine = INTERACT_MACHINE_OPEN | INTERACT_MACHINE_ALLOW_SILICON
|
||||
var/draining = FALSE
|
||||
var/filling = FALSE
|
||||
var/obj/item/reagent_containers/blood/bag = null
|
||||
var/obj/item/reagent_containers/blood/outbag = null
|
||||
var/bloodstored = 0
|
||||
var/maxbloodstored = 1000
|
||||
var/menustat = "menu"
|
||||
var/efficiency = 0
|
||||
var/productivity = 0
|
||||
|
||||
/obj/machinery/bloodbankgen/Initialize()
|
||||
. = ..()
|
||||
create_reagents(1000)
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/bloodbankgen/Destroy()
|
||||
QDEL_NULL(bag)
|
||||
QDEL_NULL(outbag)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/bloodbankgen/contents_explosion(severity, target)
|
||||
..()
|
||||
if(bag)
|
||||
bag.ex_act(severity, target)
|
||||
if(outbag)
|
||||
outbag.ex_act(severity, target)
|
||||
|
||||
/obj/machinery/bloodbankgen/handle_atom_del(atom/A)
|
||||
..()
|
||||
if(A == bag)
|
||||
bag = null
|
||||
update_icon()
|
||||
updateUsrDialog()
|
||||
if(A == outbag)
|
||||
outbag = null
|
||||
update_icon()
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/machinery/bloodbankgen/RefreshParts()
|
||||
var/E = 0
|
||||
var/P = 0
|
||||
for(var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||
E += M.rating
|
||||
efficiency = E
|
||||
productivity = P
|
||||
|
||||
/obj/machinery/bloodbankgen/update_icon()
|
||||
cut_overlays()
|
||||
if(is_operational())
|
||||
icon_state = "bloodbank-on"
|
||||
|
||||
if(panel_open)
|
||||
add_overlay("bloodbank-panel")
|
||||
|
||||
if(src.bag)
|
||||
add_overlay("bloodbag-input")
|
||||
if(bag.reagents.total_volume)
|
||||
var/mutable_appearance/filling_overlay = mutable_appearance(icon, "input-reagent")
|
||||
|
||||
var/percent = round((bag.reagents.total_volume / bag.volume) * 100)
|
||||
switch(percent)
|
||||
if(0 to 9)
|
||||
filling_overlay.icon_state = "input-reagent0"
|
||||
if(10 to 24)
|
||||
filling_overlay.icon_state = "input-reagent10"
|
||||
if(25 to 49)
|
||||
filling_overlay.icon_state = "input-reagent25"
|
||||
if(50 to 74)
|
||||
filling_overlay.icon_state = "input-reagent50"
|
||||
if(75 to 79)
|
||||
filling_overlay.icon_state = "input-reagent75"
|
||||
if(80 to 90)
|
||||
filling_overlay.icon_state = "input-reagent80"
|
||||
if(91 to INFINITY)
|
||||
filling_overlay.icon_state = "input-reagent100"
|
||||
|
||||
filling_overlay.color = list(mix_color_from_reagents(bag.reagents.reagent_list))
|
||||
add_overlay(filling_overlay)
|
||||
|
||||
if(src.outbag)
|
||||
add_overlay("bloodbag-output")
|
||||
if(outbag.reagents.total_volume)
|
||||
var/mutable_appearance/filling_overlay = mutable_appearance(icon, "output-reagent")
|
||||
|
||||
var/percent = round((outbag.reagents.total_volume / outbag.volume) * 100)
|
||||
switch(percent)
|
||||
if(0 to 9)
|
||||
filling_overlay.icon_state = "output-reagent0"
|
||||
if(10 to 24)
|
||||
filling_overlay.icon_state = "output-reagent10"
|
||||
if(25 to 49)
|
||||
filling_overlay.icon_state = "output-reagent25"
|
||||
if(50 to 74)
|
||||
filling_overlay.icon_state = "output-reagent50"
|
||||
if(75 to 79)
|
||||
filling_overlay.icon_state = "output-reagent75"
|
||||
if(80 to 90)
|
||||
filling_overlay.icon_state = "output-reagent80"
|
||||
if(91 to INFINITY)
|
||||
filling_overlay.icon_state = "output-reagent100"
|
||||
|
||||
filling_overlay.color = list(mix_color_from_reagents(outbag.reagents.reagent_list))
|
||||
add_overlay(filling_overlay)
|
||||
return
|
||||
|
||||
/obj/machinery/bloodbankgen/process()
|
||||
if(!is_operational())
|
||||
return PROCESS_KILL
|
||||
|
||||
bloodstored = reagents.total_volume
|
||||
|
||||
var/transfer_amount = 20
|
||||
|
||||
if(draining)
|
||||
if(reagents.total_volume >= reagents.maximum_volume)
|
||||
draining = FALSE
|
||||
return
|
||||
|
||||
if(bag)
|
||||
if(bag.reagents.total_volume)
|
||||
var/datum/reagent/blood/B = bag.reagents.has_reagent("blood")
|
||||
if(B)
|
||||
var/amount = reagents.maximum_volume - reagents.total_volume //monitor the machine's internal storage
|
||||
amount = min(amount, transfer_amount)
|
||||
if(!amount)
|
||||
draining = FALSE
|
||||
updateUsrDialog()
|
||||
visible_message("[src] beeps loudly.")
|
||||
playsound(loc, 'sound/machines/twobeep.ogg', 50, 1)
|
||||
return
|
||||
|
||||
if(bag.blood_type == "SY") //no infinite loops using synthetics.
|
||||
reagents.add_reagent("syntheticblood", amount)
|
||||
else
|
||||
reagents.add_reagent("syntheticblood", (amount+(5*efficiency)))
|
||||
|
||||
if(bag.reagents.total_volume >= amount)
|
||||
bag.reagents.remove_reagent("blood", amount)
|
||||
else
|
||||
visible_message("[src] beeps loudly.")
|
||||
playsound(loc, 'sound/machines/twobeep.ogg', 50, 1)
|
||||
draining = FALSE
|
||||
|
||||
bag.update_icon()
|
||||
update_icon()
|
||||
updateUsrDialog()
|
||||
else
|
||||
draining = FALSE
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
if(filling)
|
||||
if(!reagents || !reagents.total_volume)
|
||||
filling = FALSE //there ain't anything in the machine yo.
|
||||
return
|
||||
if(outbag && outbag.reagents.total_volume < outbag.reagents.maximum_volume)
|
||||
var/amount = outbag.reagents.maximum_volume - outbag.reagents.total_volume //monitor the output bag's internal storage
|
||||
amount = min(amount, transfer_amount)
|
||||
if(!amount)
|
||||
filling = FALSE
|
||||
visible_message("[src] pings.")
|
||||
playsound(loc, 'sound/machines/beep.ogg', 50, 1)
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
reagents.trans_to(outbag, amount)
|
||||
outbag.update_icon()
|
||||
update_icon()
|
||||
updateUsrDialog()
|
||||
else
|
||||
visible_message("[src] pings.")
|
||||
playsound(loc, 'sound/machines/beep.ogg', 50, 1)
|
||||
filling = FALSE
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
/obj/machinery/bloodbankgen/attackby(obj/item/O, mob/user, params)
|
||||
if(user.a_intent == INTENT_HARM)
|
||||
return ..()
|
||||
|
||||
if(default_deconstruction_screwdriver(user, "bloodbank-off", "bloodbank-off", O))
|
||||
if(bag)
|
||||
var/obj/item/reagent_containers/blood/B = bag
|
||||
B.forceMove(drop_location())
|
||||
bag = null
|
||||
if(outbag)
|
||||
var/obj/item/reagent_containers/blood/B = outbag
|
||||
B.forceMove(drop_location())
|
||||
outbag = null
|
||||
update_icon()
|
||||
return
|
||||
|
||||
if(default_deconstruction_crowbar(O))
|
||||
return
|
||||
|
||||
if(istype(O, /obj/item/reagent_containers/blood))
|
||||
. = 1 //no afterattack
|
||||
if(!panel_open)
|
||||
if(bag && outbag)
|
||||
to_chat(user, "<span class='warning'>This machine already has bags attached.</span>")
|
||||
|
||||
if(!bag && !outbag)
|
||||
var/choice = alert(user, "Choose where to place [O]", "", "Input", "Cancel", "Output")
|
||||
switch(choice)
|
||||
if("Cancel")
|
||||
return FALSE
|
||||
if("Input")
|
||||
attachinput(O, user)
|
||||
if("Output")
|
||||
attachoutput(O, user)
|
||||
else if(!bag)
|
||||
attachinput(O, user)
|
||||
else if(!outbag)
|
||||
attachoutput(O, user)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>Close the maintenance panel first.</span>")
|
||||
return
|
||||
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You cannot put this in [src]!</span>")
|
||||
|
||||
/obj/machinery/bloodbankgen/ui_interact(mob/user)
|
||||
. = ..()
|
||||
|
||||
if(!is_operational())
|
||||
return
|
||||
|
||||
var/dat
|
||||
switch(menustat)
|
||||
if("noblood")
|
||||
dat += "<div class='statusDisplay'>You do not have enough blood product to create synthetics.</div>"
|
||||
menustat = "menu"
|
||||
if("complete")
|
||||
dat += "<div class='statusDisplay'>Operation complete.</div>"
|
||||
menustat = "menu"
|
||||
if("nobagspace")
|
||||
dat += "<div class='statusDisplay'>Not enough space left in container. Please replace receptical.</div>"
|
||||
menustat = "menu"
|
||||
|
||||
dat+= "<br><B>Current Synthetics stockpile: [reagents.total_volume] units.</B><HR>"
|
||||
|
||||
dat += "<br>Supply Bag<HR>"
|
||||
if(bag)
|
||||
dat += "<br>Current Capacity: [bag.reagents.total_volume] of [bag.reagents.maximum_volume]"
|
||||
if(bag.reagents && bag.reagents.total_volume)
|
||||
dat += "<br><a href='?src=\ref[src];activateinput=1'>Drain</a>"
|
||||
|
||||
dat += "<br><a href='?src=\ref[src];detachinput=1'>Detach</a>"
|
||||
|
||||
|
||||
dat += "<br><br>Synthetics Bag<HR>"
|
||||
if(outbag)
|
||||
dat += "<br>Current Capacity:[outbag.reagents.total_volume] of [outbag.reagents.maximum_volume]"
|
||||
if(!(outbag.reagents.total_volume >= outbag.reagents.maximum_volume))
|
||||
dat += "<br><a href='?src=\ref[src];activateoutput=1'>Fill</a>"
|
||||
dat += "<br><a href='?src=\ref[src];detachoutput=1'>Detach</a>"
|
||||
|
||||
if(!bag && !outbag)
|
||||
dat += "<div class='statusDisplay'>No containers inside, please insert container.</div>"
|
||||
|
||||
var/datum/browser/popup = new(user, "bloodbankgen", name, 350, 520)
|
||||
popup.set_content(dat)
|
||||
popup.open()
|
||||
|
||||
/obj/machinery/bloodbankgen/proc/activateinput()
|
||||
if(bag)
|
||||
draining = TRUE
|
||||
update_icon()
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>There is no blood bag in the input slot.</span>")
|
||||
return
|
||||
|
||||
/obj/machinery/bloodbankgen/proc/activateoutput()
|
||||
if(outbag)
|
||||
filling = TRUE
|
||||
update_icon()
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>There is no blood bag in the output slot.</span>")
|
||||
return
|
||||
|
||||
/obj/machinery/bloodbankgen/proc/check_container_volume(list/reagents, multiplier = 1)
|
||||
var/sum_reagents = 0
|
||||
for(var/R in reagents)
|
||||
sum_reagents += reagents[R]
|
||||
sum_reagents *= multiplier
|
||||
|
||||
if(outbag.reagents.total_volume + sum_reagents > outbag.reagents.maximum_volume)
|
||||
menustat = "nobagspace"
|
||||
return FALSE
|
||||
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/bloodbankgen/proc/detachinput()
|
||||
if(bag)
|
||||
bag.forceMove(drop_location())
|
||||
if(usr && Adjacent(usr) && !issiliconoradminghost(usr))
|
||||
usr.put_in_hands(bag)
|
||||
bag = null
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/bloodbankgen/proc/detachoutput()
|
||||
if(outbag)
|
||||
outbag.forceMove(drop_location())
|
||||
if(usr && Adjacent(usr) && !issiliconoradminghost(usr))
|
||||
usr.put_in_hands(outbag)
|
||||
outbag = null
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/bloodbankgen/proc/attachinput(obj/item/O, mob/user)
|
||||
if(!bag)
|
||||
if(!user.transferItemToLoc(O, src))
|
||||
return
|
||||
bag = O
|
||||
to_chat(user, "<span class='notice'>You add [O] to the machine's input slot.</span>")
|
||||
update_icon()
|
||||
updateUsrDialog()
|
||||
else
|
||||
to_chat(user, "<span class='notice'>There is already something in this slot!</span>")
|
||||
|
||||
/obj/machinery/bloodbankgen/proc/attachoutput(obj/item/O, mob/user)
|
||||
if(!outbag)
|
||||
if(!user.transferItemToLoc(O, src))
|
||||
return
|
||||
outbag = O
|
||||
to_chat(user, "<span class='notice'>You add [O] to the machine's output slot.</span>")
|
||||
update_icon()
|
||||
updateUsrDialog()
|
||||
else
|
||||
to_chat(user, "<span class='notice'>There is already something in this slot!</span>")
|
||||
|
||||
/obj/machinery/bloodbankgen/Topic(href, href_list)
|
||||
if(..() || panel_open)
|
||||
return
|
||||
|
||||
usr.set_machine(src)
|
||||
|
||||
if(href_list["activateinput"])
|
||||
activateinput()
|
||||
updateUsrDialog()
|
||||
|
||||
else if(href_list["detachinput"])
|
||||
detachinput()
|
||||
updateUsrDialog()
|
||||
|
||||
else if(href_list["activateoutput"])
|
||||
activateoutput()
|
||||
updateUsrDialog()
|
||||
|
||||
else if(href_list["detachoutput"])
|
||||
detachoutput()
|
||||
updateUsrDialog()
|
||||
@@ -575,7 +575,7 @@
|
||||
if(user)
|
||||
if(message)
|
||||
if(authenticated)
|
||||
if(user.canUseTopic(src, BE_CLOSE))
|
||||
if(user.canUseTopic(src, !issilicon(user)))
|
||||
if(!record1 || record1 == active1)
|
||||
if(!record2 || record2 == active2)
|
||||
return 1
|
||||
|
||||
@@ -801,7 +801,7 @@ What a mess.*/
|
||||
/obj/machinery/computer/secure_data/proc/canUseSecurityRecordsConsole(mob/user, message1 = 0, record1, record2)
|
||||
if(user)
|
||||
if(authenticated)
|
||||
if(user.canUseTopic(src, BE_CLOSE))
|
||||
if(user.canUseTopic(src, !issilicon(user)))
|
||||
if(!trim(message1))
|
||||
return 0
|
||||
if(!record1 || record1 == active1)
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
L[avoid_assoc_duplicate_keys(M.real_name, areaindex)] = M
|
||||
|
||||
var/desc = input("Please select a location to lock in.", "Locking Computer") as null|anything in L
|
||||
if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) //check if we are still around
|
||||
if(!user.canUseTopic(src, !issilicon(user), NO_DEXTERY)) //check if we are still around
|
||||
return
|
||||
target = L[desc]
|
||||
if(imp_t)
|
||||
@@ -167,7 +167,7 @@
|
||||
to_chat(user, "<span class='alert'>No active connected stations located.</span>")
|
||||
return
|
||||
var/desc = input("Please select a station to lock in.", "Locking Computer") as null|anything in L
|
||||
if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) //again, check if we are still around
|
||||
if(!user.canUseTopic(src, !issilicon(user), NO_DEXTERY)) //again, check if we are still around
|
||||
return
|
||||
var/obj/machinery/teleport/station/target_station = L[desc]
|
||||
if(!target_station || !target_station.teleporter_hub)
|
||||
|
||||
@@ -326,7 +326,7 @@
|
||||
else //for simple_animals & borgs
|
||||
L.adjustBruteLoss(DOOR_CRUSH_DAMAGE)
|
||||
var/turf/location = get_turf(src)
|
||||
//add_blood doesn't work for borgs/xenos, but add_blood_floor does.
|
||||
//add_blood_DNA doesn't work for borgs/xenos, but add_blood_floor does.
|
||||
if(iscarbon(L))
|
||||
var/mob/living/carbon/C = L
|
||||
C.bleed(DOOR_CRUSH_DAMAGE)
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
icon_state = "iv_drip"
|
||||
anchored = FALSE
|
||||
mouse_drag_pointer = MOUSE_ACTIVE_POINTER
|
||||
var/mob/living/carbon/attached = null
|
||||
var/mob/living/carbon/attached
|
||||
var/mode = IV_INJECTING
|
||||
var/obj/item/reagent_containers/beaker = null
|
||||
var/obj/item/reagent_containers/beaker
|
||||
var/static/list/drip_containers = typecacheof(list(/obj/item/reagent_containers/blood,
|
||||
/obj/item/reagent_containers/food,
|
||||
/obj/item/reagent_containers/glass))
|
||||
|
||||
/obj/machinery/iv_drip/Initialize()
|
||||
/obj/machinery/iv_drip/Initialize(mapload)
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
@@ -84,6 +84,8 @@
|
||||
if(Adjacent(target) && usr.Adjacent(target))
|
||||
if(beaker)
|
||||
usr.visible_message("<span class='warning'>[usr] attaches [src] to [target].</span>", "<span class='notice'>You attach [src] to [target].</span>")
|
||||
log_combat(usr, target, "attached", src, "containing: [beaker.name] - ([beaker.reagents.log_list()])")
|
||||
add_fingerprint(usr)
|
||||
attached = target
|
||||
START_PROCESSING(SSmachines, src)
|
||||
update_icon()
|
||||
@@ -100,6 +102,8 @@
|
||||
return
|
||||
beaker = W
|
||||
to_chat(user, "<span class='notice'>You attach [W] to [src].</span>")
|
||||
user.log_message("attached a [W] to [src] at [AREACOORD(src)] containing ([beaker.reagents.log_list()])", LOG_ATTACK)
|
||||
add_fingerprint(user)
|
||||
update_icon()
|
||||
return
|
||||
else
|
||||
@@ -142,10 +146,11 @@
|
||||
if(!amount)
|
||||
if(prob(5))
|
||||
visible_message("[src] pings.")
|
||||
playsound(loc, 'sound/machines/beep.ogg', 50, 1)
|
||||
return
|
||||
|
||||
// If the human is losing too much blood, beep.
|
||||
if(attached.blood_volume < ( (BLOOD_VOLUME_SAFE*attached.blood_ratio) && prob(5) ) )
|
||||
if(attached.blood_volume < ((BLOOD_VOLUME_SAFE*attached.blood_ratio) && prob(5) && ishuman(attached))) //really couldn't care less about monkeys
|
||||
visible_message("[src] beeps loudly.")
|
||||
playsound(loc, 'sound/machines/twobeep.ogg', 50, 1)
|
||||
attached.transfer_blood_to(beaker, amount)
|
||||
@@ -178,9 +183,10 @@
|
||||
|
||||
if(usr.incapacitated())
|
||||
return
|
||||
|
||||
if(beaker)
|
||||
beaker.forceMove(drop_location())
|
||||
if(usr && Adjacent(usr) && !issiliconoradminghost(usr))
|
||||
if(!usr.put_in_hands(beaker))
|
||||
beaker.forceMove(drop_location())
|
||||
beaker = null
|
||||
update_icon()
|
||||
|
||||
@@ -195,27 +201,27 @@
|
||||
|
||||
if(usr.incapacitated())
|
||||
return
|
||||
|
||||
mode = !mode
|
||||
to_chat(usr, "The IV drip is now [mode ? "injecting" : "taking blood"].")
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/iv_drip/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(get_dist(user, src) > 2)
|
||||
return
|
||||
|
||||
to_chat(user, "The IV drip is [mode ? "injecting" : "taking blood"].")
|
||||
. += "[src] is [mode ? "injecting" : "taking blood"].\n"
|
||||
|
||||
if(beaker)
|
||||
if(beaker.reagents && beaker.reagents.reagent_list.len)
|
||||
to_chat(user, "<span class='notice'>Attached is \a [beaker] with [beaker.reagents.total_volume] units of liquid.</span>")
|
||||
. += "\t<span class='notice'>Attached is \a [beaker] with [beaker.reagents.total_volume] units of liquid.</span>\n"
|
||||
else
|
||||
to_chat(user, "<span class='notice'>Attached is an empty [beaker.name].</span>")
|
||||
. += "\t<span class='notice'>Attached is an empty [beaker.name].</span>\n"
|
||||
else
|
||||
to_chat(user, "<span class='notice'>No chemicals are attached.</span>")
|
||||
. += "\t<span class='notice'>No chemicals are attached.</span>\n"
|
||||
|
||||
to_chat(user, "<span class='notice'>[attached ? attached : "No one"] is attached.</span>")
|
||||
. += "\t<span class='notice'>[attached ? attached : "No one"] is attached.</span>"
|
||||
to_chat(user,.)
|
||||
|
||||
#undef IV_TAKING
|
||||
#undef IV_INJECTING
|
||||
#undef IV_INJECTING
|
||||
@@ -40,6 +40,8 @@
|
||||
|
||||
var/stun_projectile = null //stun mode projectile type
|
||||
var/stun_projectile_sound
|
||||
var/nonlethal_projectile //projectile to use in stun mode when the target is resting, if any
|
||||
var/nonlethal_projectile_sound
|
||||
var/lethal_projectile = null //lethal mode projectile type
|
||||
var/lethal_projectile_sound
|
||||
|
||||
@@ -535,13 +537,22 @@
|
||||
T = closer
|
||||
break
|
||||
|
||||
var/mob/living/carbon/C
|
||||
if(iscarbon(target))
|
||||
C = target
|
||||
|
||||
update_icon()
|
||||
var/obj/item/projectile/A
|
||||
//any emagged turrets drains 2x power and uses a different projectile?
|
||||
if(mode == TURRET_STUN)
|
||||
use_power(reqpower)
|
||||
A = new stun_projectile(T)
|
||||
playsound(loc, stun_projectile_sound, 75, 1)
|
||||
if(nonlethal_projectile && C && C.resting)
|
||||
use_power(reqpower*0.5)
|
||||
A = new nonlethal_projectile(T)
|
||||
playsound(loc, nonlethal_projectile_sound, 75, 1)
|
||||
else
|
||||
use_power(reqpower)
|
||||
A = new stun_projectile(T)
|
||||
playsound(loc, stun_projectile_sound, 75, 1)
|
||||
else
|
||||
use_power(reqpower * 2)
|
||||
A = new lethal_projectile(T)
|
||||
@@ -653,6 +664,8 @@
|
||||
base_icon_state = "standard"
|
||||
stun_projectile = /obj/item/projectile/energy/electrode
|
||||
stun_projectile_sound = 'sound/weapons/taser.ogg'
|
||||
nonlethal_projectile = /obj/item/projectile/beam/disabler
|
||||
nonlethal_projectile_sound = 'sound/weapons/taser2.ogg'
|
||||
lethal_projectile = /obj/item/projectile/beam/laser
|
||||
lethal_projectile_sound = 'sound/weapons/laser.ogg'
|
||||
desc = "An energy blaster auto-turret."
|
||||
@@ -662,6 +675,8 @@
|
||||
base_icon_state = "standard"
|
||||
stun_projectile = /obj/item/projectile/energy/electrode
|
||||
stun_projectile_sound = 'sound/weapons/taser.ogg'
|
||||
nonlethal_projectile = /obj/item/projectile/beam/disabler
|
||||
nonlethal_projectile_sound = 'sound/weapons/taser2.ogg'
|
||||
lethal_projectile = /obj/item/projectile/beam/laser/heavylaser
|
||||
lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg'
|
||||
desc = "An energy blaster auto-turret."
|
||||
@@ -681,6 +696,8 @@
|
||||
|
||||
/obj/machinery/porta_turret/ai
|
||||
faction = list("silicon")
|
||||
nonlethal_projectile = /obj/item/projectile/beam/disabler
|
||||
nonlethal_projectile_sound = 'sound/weapons/taser2.ogg'
|
||||
|
||||
/obj/machinery/porta_turret/ai/assess_perp(mob/living/carbon/human/perp)
|
||||
return 10 //AI turrets shoot at everything not in their faction
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
/obj/machinery/recycler/proc/eat(atom/AM0, sound=TRUE)
|
||||
var/list/to_eat
|
||||
if(isitem(AM0))
|
||||
to_eat = AM0.GetAllContents()
|
||||
to_eat = AM0.GetAllContentsIgnoring(GLOB.typecache_mob)
|
||||
else
|
||||
to_eat = list(AM0)
|
||||
|
||||
|
||||
@@ -265,6 +265,8 @@
|
||||
things_to_clear += occupant.GetAllContents()
|
||||
for(var/atom/movable/AM in things_to_clear) //Scorches away blood and forensic evidence, although the SSU itself is unaffected
|
||||
SEND_SIGNAL(AM, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRONG)
|
||||
AM.clean_blood()
|
||||
AM.fingerprints = list()
|
||||
var/datum/component/radioactive/contamination = AM.GetComponent(/datum/component/radioactive)
|
||||
if(contamination)
|
||||
qdel(contamination)
|
||||
@@ -435,4 +437,4 @@
|
||||
if(I)
|
||||
I.forceMove(loc)
|
||||
. = TRUE
|
||||
update_icon()
|
||||
update_icon()
|
||||
@@ -0,0 +1,84 @@
|
||||
/obj/machinery/turnstile
|
||||
name = "turnstile"
|
||||
desc = "A mechanical door that permits one-way access and prevents tailgating."
|
||||
icon = 'icons/obj/turnstile.dmi'
|
||||
icon_state = "turnstile_map"
|
||||
density = FALSE
|
||||
armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 10, bio = 100, rad = 100, fire = 90, acid = 70)
|
||||
anchored = TRUE
|
||||
use_power = FALSE
|
||||
idle_power_usage = 2
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
layer = OPEN_DOOR_LAYER
|
||||
|
||||
/obj/machinery/turnstile/Initialize()
|
||||
. = ..()
|
||||
icon_state = "turnstile"
|
||||
|
||||
/obj/machinery/turnstile/CanAtmosPass(turf/T)
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/turnstile/bullet_act(obj/item/projectile/P, def_zone)
|
||||
return -1 //Pass through!
|
||||
|
||||
/obj/machinery/turnstile/proc/allowed_access(var/mob/B)
|
||||
if(B.pulledby && ismob(B.pulledby))
|
||||
return allowed(B.pulledby) | allowed(B)
|
||||
else
|
||||
return allowed(B)
|
||||
|
||||
/obj/machinery/turnstile/CanPass(atom/movable/AM, turf/T)
|
||||
if(ismob(AM))
|
||||
var/mob/B = AM
|
||||
if(isliving(AM))
|
||||
var/mob/living/M = AM
|
||||
|
||||
if(world.time - M.last_bumped <= 5)
|
||||
return FALSE
|
||||
M.last_bumped = world.time
|
||||
|
||||
var/allowed_access = FALSE
|
||||
var/turf/behind = get_step(src, dir)
|
||||
|
||||
if(B in behind.contents)
|
||||
allowed_access = allowed_access(B)
|
||||
else
|
||||
to_chat(usr, "<span class='notice'>\the [src] resists your efforts.</span>")
|
||||
return FALSE
|
||||
|
||||
if(allowed_access)
|
||||
flick("operate", src)
|
||||
playsound(src,'sound/items/ratchet.ogg',50,0,3)
|
||||
return TRUE
|
||||
else
|
||||
flick("deny", src)
|
||||
playsound(src,'sound/machines/deniedbeep.ogg',50,0,3)
|
||||
return FALSE
|
||||
if(ispath(AM, /obj/item/))
|
||||
return TRUE
|
||||
else
|
||||
return FALSE
|
||||
|
||||
/obj/machinery/turnstile/CheckExit(atom/movable/AM as mob|obj, target)
|
||||
if(isliving(AM))
|
||||
var/mob/living/M = AM
|
||||
var/outdir = dir
|
||||
if(allowed_access(M))
|
||||
switch(dir)
|
||||
if(NORTH)
|
||||
outdir = SOUTH
|
||||
if(SOUTH)
|
||||
outdir = NORTH
|
||||
if(EAST)
|
||||
outdir = WEST
|
||||
if(WEST)
|
||||
outdir = EAST
|
||||
var/turf/outturf = get_step(src, outdir)
|
||||
var/canexit = (target == src.loc) | (target == outturf)
|
||||
|
||||
if(!canexit && world.time - M.last_bumped <= 5)
|
||||
to_chat(usr, "<span class='notice'>\the [src] resists your efforts.</span>")
|
||||
M.last_bumped = world.time
|
||||
return canexit
|
||||
else
|
||||
return TRUE
|
||||
@@ -11,10 +11,6 @@
|
||||
var/obj/item/color_source
|
||||
var/max_wash_capacity = 5
|
||||
|
||||
/obj/machinery/washing_machine/ComponentInitialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/redirect, list(COMSIG_COMPONENT_CLEAN_ACT = CALLBACK(src, .proc/clean_blood)))
|
||||
|
||||
/obj/machinery/washing_machine/examine(mob/user)
|
||||
..()
|
||||
to_chat(user, "<span class='notice'>Alt-click it to start a wash cycle.</span>")
|
||||
@@ -59,7 +55,8 @@
|
||||
M.Translate(rand(-3, 3), rand(-1, 3))
|
||||
animate(src, transform=M, time=2)
|
||||
|
||||
/obj/machinery/washing_machine/proc/clean_blood()
|
||||
/obj/machinery/washing_machine/clean_blood()
|
||||
..()
|
||||
if(!busy)
|
||||
bloody_mess = FALSE
|
||||
update_icon()
|
||||
@@ -67,7 +64,8 @@
|
||||
/obj/machinery/washing_machine/proc/wash_cycle()
|
||||
for(var/X in contents)
|
||||
var/atom/movable/AM = X
|
||||
SEND_SIGNAL(AM, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
|
||||
SEND_SIGNAL(AM, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
AM.clean_blood()
|
||||
AM.machine_wash(src)
|
||||
|
||||
busy = FALSE
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
/obj/mecha/combat/neovgre
|
||||
name = "Neovgre, the Anima Bulwark"
|
||||
desc = "Nezbere's most powerful creation, a mighty war machine of unmatched power said to have ended wars in a single night."
|
||||
icon = 'icons/mecha/neovgre.dmi'
|
||||
icon_state = "neovgre"
|
||||
max_integrity = 500 //This is THE ratvarian superweaon, its deployment is an investment
|
||||
armor = list("melee" = 50, "bullet" = 40, "laser" = 25, "energy" = 25, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) //Its similar to the clockwork armour albeit with a few buffs becuase RATVARIAN SUPERWEAPON!!
|
||||
force = 50 //SMASHY SMASHY!!
|
||||
internal_damage_threshold = 0
|
||||
step_in = 3
|
||||
pixel_x = -16
|
||||
layer = ABOVE_MOB_LAYER
|
||||
breach_time = 100 //ten seconds till all goes to shit
|
||||
recharge_rate = 100
|
||||
wreckage = /obj/structure/mecha_wreckage/durand/neovgre
|
||||
|
||||
/obj/mecha/combat/neovgre/GrantActions(mob/living/user, human_occupant = 0) //No Eject action for you sonny jim, your life for Ratvar!
|
||||
internals_action.Grant(user, src)
|
||||
cycle_action.Grant(user, src)
|
||||
lights_action.Grant(user, src)
|
||||
stats_action.Grant(user, src)
|
||||
strafing_action.Grant(user, src)
|
||||
|
||||
/obj/mecha/combat/neovgre/RemoveActions(mob/living/user, human_occupant = 0)
|
||||
internals_action.Remove(user)
|
||||
cycle_action.Remove(user)
|
||||
lights_action.Remove(user)
|
||||
stats_action.Remove(user)
|
||||
strafing_action.Remove(user)
|
||||
|
||||
/obj/mecha/combat/neovgre/MouseDrop_T(mob/M, mob/user)
|
||||
if(!is_servant_of_ratvar(user))
|
||||
to_chat(user, "<span class='brass'>BEGONE HERETIC!</span>")
|
||||
return
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/mecha/combat/neovgre/moved_inside(mob/living/carbon/human/H)
|
||||
var/list/Itemlist = H.get_contents()
|
||||
for(var/obj/item/clockwork/slab/W in Itemlist)
|
||||
to_chat(H, "<span class='brass'>You safely store [W] inside [src].</span>")
|
||||
qdel(W)
|
||||
. = ..()
|
||||
|
||||
/obj/mecha/combat/neovgre/obj_destruction()
|
||||
for(var/mob/M in src)
|
||||
to_chat(M, "<span class='brass'>You are consumed by the fires raging within Neovgre...</span>")
|
||||
M.dust()
|
||||
playsound(src, 'sound/magic/lightning_chargeup.ogg', 100, 0)
|
||||
src.visible_message("<span class = 'userdanger'>The reactor has gone critical, its going to blow!</span>")
|
||||
addtimer(CALLBACK(src,.proc/go_critical),breach_time)
|
||||
|
||||
/obj/mecha/combat/neovgre/proc/go_critical()
|
||||
explosion(get_turf(loc), 3, 5, 10, 20, 30)
|
||||
Destroy(src)
|
||||
|
||||
/obj/mecha/combat/neovgre/container_resist(mob/living/user)
|
||||
to_chat(user, "<span class='brass'>Neovgre requires a lifetime commitment friend, no backing out now!</span>")
|
||||
return
|
||||
|
||||
/obj/mecha/combat/neovgre/process()
|
||||
..()
|
||||
if(GLOB.ratvar_awakens) // At this point only timley intervention by lord singulo could hople to stop the superweapon
|
||||
cell.charge = INFINITY
|
||||
max_integrity = INFINITY
|
||||
obj_integrity = max_integrity
|
||||
CHECK_TICK //Just to be on the safe side lag wise
|
||||
else if(cell.charge < cell.maxcharge)
|
||||
for(var/obj/effect/clockwork/sigil/transmission/T in range(SIGIL_ACCESS_RANGE, src))
|
||||
var/delta = min(recharge_rate, cell.maxcharge - cell.charge)
|
||||
if (get_clockwork_power() <= delta)
|
||||
cell.charge += delta
|
||||
adjust_clockwork_power(-delta)
|
||||
CHECK_TICK
|
||||
|
||||
/obj/mecha/combat/neovgre/Initialize()
|
||||
.=..()
|
||||
GLOB.neovgre_exists ++
|
||||
var/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy/neovgre/N = new
|
||||
N.attach(src)
|
||||
|
||||
/obj/structure/mecha_wreckage/durand/neovgre
|
||||
name = "\improper Neovgre wreckage?"
|
||||
desc = "On closer inspection this looks like the wreck of a durand with some spraypainted cardboard duct taped to it!"
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy/neovgre
|
||||
equip_cooldown = 8 //Rapid fire heavy laser cannon, simple yet elegant
|
||||
energy_drain = 30
|
||||
name = "Aribter Laser Cannon"
|
||||
desc = "Please re-attach this to neovgre and stop asking questions about why it looks like a normal Nanotrasen issue Solaris laser cannon - Nezbere"
|
||||
fire_sound = "sound/weapons/neovgre_laser.ogg"
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy/neovgre/can_attach(obj/mecha/combat/neovgre/M)
|
||||
if(istype(M))
|
||||
return 1
|
||||
return 0
|
||||
@@ -49,6 +49,8 @@
|
||||
var/lights = FALSE
|
||||
var/lights_power = 6
|
||||
var/last_user_hud = 1 // used to show/hide the mecha hud while preserving previous preference
|
||||
var/breach_time = 0
|
||||
var/recharge_rate = 0
|
||||
|
||||
var/bumpsmash = 0 //Whether or not the mech destroys walls by running into it.
|
||||
//inner atmos
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
/obj/effect/decal/cleanable/Initialize(mapload, list/datum/disease/diseases)
|
||||
. = ..()
|
||||
LAZYINITLIST(blood_DNA) //Kinda needed
|
||||
if (random_icon_states && (icon_state == initial(icon_state)) && length(random_icon_states) > 0)
|
||||
icon_state = pick(random_icon_states)
|
||||
create_reagents(300)
|
||||
@@ -27,7 +28,7 @@
|
||||
|
||||
/obj/effect/decal/cleanable/proc/replace_decal(obj/effect/decal/cleanable/C) // Returns true if we should give up in favor of the pre-existing decal
|
||||
if(mergeable_decal)
|
||||
return TRUE
|
||||
qdel(C)
|
||||
|
||||
/obj/effect/decal/cleanable/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/reagent_containers/glass) || istype(W, /obj/item/reagent_containers/food/drinks))
|
||||
@@ -81,7 +82,9 @@
|
||||
add_blood = bloodiness
|
||||
bloodiness -= add_blood
|
||||
S.bloody_shoes[blood_state] = min(MAX_SHOE_BLOODINESS,S.bloody_shoes[blood_state]+add_blood)
|
||||
S.add_blood_DNA(return_blood_DNA())
|
||||
if(blood_DNA && blood_DNA.len)
|
||||
S.add_blood_DNA(blood_DNA)
|
||||
S.add_blood_overlay()
|
||||
S.blood_state = blood_state
|
||||
update_icon()
|
||||
H.update_inv_shoes()
|
||||
@@ -90,4 +93,4 @@
|
||||
if((blood_state != BLOOD_STATE_OIL) && (blood_state != BLOOD_STATE_NOT_BLOODY))
|
||||
return bloodiness
|
||||
else
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
@@ -1,71 +1,72 @@
|
||||
// Note: BYOND is object oriented. There is no reason for this to be copy/pasted blood code.
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood
|
||||
/obj/effect/decal/cleanable/blood/xeno
|
||||
name = "xeno blood"
|
||||
desc = "It's green and acidic. It looks like... <i>blood?</i>"
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
icon_state = "xfloor1"
|
||||
random_icon_states = list("xfloor1", "xfloor2", "xfloor3", "xfloor4", "xfloor5", "xfloor6", "xfloor7")
|
||||
bloodiness = BLOOD_AMOUNT_PER_DECAL
|
||||
blood_state = BLOOD_STATE_XENO
|
||||
color = BLOOD_COLOR_XENO
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/Initialize()
|
||||
/obj/effect/decal/cleanable/blood/splatter/xeno
|
||||
color = BLOOD_COLOR_XENO
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/xeno
|
||||
color = BLOOD_COLOR_XENO
|
||||
gibs_reagent_id = "liquidxenogibs"
|
||||
gibs_bloodtype = "X*"
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/xeno/Initialize(mapload, list/datum/disease/diseases)
|
||||
. = ..()
|
||||
add_blood_DNA(list("UNKNOWN DNA" = "X*"))
|
||||
update_icon()
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/xsplatter
|
||||
random_icon_states = list("xgibbl1", "xgibbl2", "xgibbl3", "xgibbl4", "xgibbl5")
|
||||
/obj/effect/decal/cleanable/blood/gibs/xeno/update_icon()
|
||||
add_atom_colour(blood_DNA_to_color(), FIXED_COLOUR_PRIORITY)
|
||||
cut_overlays()
|
||||
var/mutable_appearance/flesh = mutable_appearance(icon, "[icon_state]x_flesh")
|
||||
flesh.appearance_flags = RESET_COLOR
|
||||
flesh.color = body_colors
|
||||
add_overlay(flesh)
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs
|
||||
name = "xeno gibs"
|
||||
desc = "Gnarly..."
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
icon_state = "xgib1"
|
||||
layer = LOW_OBJ_LAYER
|
||||
random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6")
|
||||
mergeable_decal = FALSE
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs/proc/streak(list/directions)
|
||||
/obj/effect/decal/cleanable/blood/gibs/xeno/streak(list/directions)
|
||||
set waitfor = 0
|
||||
var/direction = pick(directions)
|
||||
for(var/i = 0, i < pick(1, 200; 2, 150; 3, 50), i++)
|
||||
sleep(2)
|
||||
if(i > 0)
|
||||
new /obj/effect/decal/cleanable/xenoblood/xsplatter(loc)
|
||||
var/list/datum/disease/diseases
|
||||
GET_COMPONENT(infective, /datum/component/infective)
|
||||
if(infective)
|
||||
diseases = infective.diseases
|
||||
var/obj/effect/decal/cleanable/blood/splatter/xeno/splat = new /obj/effect/decal/cleanable/blood/splatter/xeno(loc, diseases)
|
||||
splat.transfer_blood_dna(blood_DNA, diseases)
|
||||
if(!step_to(src, get_step(src, direction), 0))
|
||||
break
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs/ex_act()
|
||||
return
|
||||
/obj/effect/decal/cleanable/blood/gibs/xeno/up
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1")
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs/up
|
||||
random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6","xgibup1","xgibup1","xgibup1")
|
||||
/obj/effect/decal/cleanable/blood/gibs/xeno/down
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibdown1","gibdown1","gibdown1")
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs/down
|
||||
random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6","xgibdown1","xgibdown1","xgibdown1")
|
||||
/obj/effect/decal/cleanable/blood/gibs/xeno/body
|
||||
random_icon_states = list("gibhead", "gibtorso")
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs/body
|
||||
random_icon_states = list("xgibhead", "xgibtorso")
|
||||
/obj/effect/decal/cleanable/blood/gibs/xeno/torso
|
||||
random_icon_states = list("gibtorso")
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs/torso
|
||||
random_icon_states = list("xgibtorso")
|
||||
/obj/effect/decal/cleanable/blood/gibs/xeno/limb
|
||||
random_icon_states = list("gibleg", "gibarm")
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs/limb
|
||||
random_icon_states = list("xgibleg", "xgibarm")
|
||||
/obj/effect/decal/cleanable/blood/gibs/xeno/core
|
||||
random_icon_states = list("gibmid1", "gibmid2", "gibmid3")
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs/core
|
||||
random_icon_states = list("xgibmid1", "xgibmid2", "xgibmid3")
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs/larva
|
||||
/obj/effect/decal/cleanable/blood/gibs/xeno/larva
|
||||
random_icon_states = list("xgiblarva1", "xgiblarva2")
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs/larva/body
|
||||
/obj/effect/decal/cleanable/blood/gibs/xeno/larva/body
|
||||
random_icon_states = list("xgiblarvahead", "xgiblarvatorso")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/xtracks
|
||||
icon_state = "xtracks"
|
||||
icon_state = "tracks"
|
||||
random_icon_states = null
|
||||
|
||||
/obj/effect/decal/cleanable/blood/xtracks/Initialize()
|
||||
. = ..()
|
||||
add_blood_DNA(list("Unknown DNA" = "X*"))
|
||||
add_blood_DNA(list("UNKNOWN DNA" = "X*"))
|
||||
. = ..()
|
||||
@@ -0,0 +1,233 @@
|
||||
/obj/effect/decal/cleanable/blood/gibs
|
||||
name = "gibs"
|
||||
desc = "They look bloody and gruesome."
|
||||
icon_state = "gibbl5"
|
||||
layer = LOW_OBJ_LAYER
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6")
|
||||
mergeable_decal = FALSE
|
||||
var/body_colors = "#e3ba84" //a default color just in case.
|
||||
var/gibs_reagent_id = "liquidgibs"
|
||||
var/gibs_bloodtype = "A+"
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/Initialize(mapload, list/datum/disease/diseases)
|
||||
. = ..()
|
||||
if(random_icon_states && (icon_state == initial(icon_state)) && length(random_icon_states) > 0)
|
||||
icon_state = pick(random_icon_states)
|
||||
if(gibs_reagent_id)
|
||||
reagents.add_reagent(gibs_reagent_id, 5)
|
||||
if(gibs_bloodtype)
|
||||
add_blood_DNA(list("Non-human DNA" = gibs_bloodtype, diseases))
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/update_icon()
|
||||
add_atom_colour(blood_DNA_to_color(), FIXED_COLOUR_PRIORITY)
|
||||
cut_overlays()
|
||||
var/mutable_appearance/guts = mutable_appearance(icon, "[icon_state]_guts")
|
||||
guts.appearance_flags = RESET_COLOR
|
||||
add_overlay(guts)
|
||||
var/mutable_appearance/flesh = mutable_appearance(icon, "[icon_state]_flesh")
|
||||
flesh.appearance_flags = RESET_COLOR
|
||||
flesh.color = body_colors
|
||||
add_overlay(flesh)
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/ex_act(severity, target)
|
||||
return
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/Crossed(mob/living/L)
|
||||
if(istype(L) && has_gravity(loc))
|
||||
playsound(loc, 'sound/effects/gib_step.ogg', !HAS_TRAIT(L,TRAIT_LIGHT_STEP) ? 20 : 50, 1)
|
||||
. = ..()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/proc/streak(list/directions)
|
||||
set waitfor = 0
|
||||
var/direction = pick(directions)
|
||||
for(var/i = 0, i < pick(1, 200; 2, 150; 3, 50), i++)
|
||||
sleep(2)
|
||||
if(i > 0)
|
||||
var/list/datum/disease/diseases
|
||||
GET_COMPONENT(infective, /datum/component/infective)
|
||||
if(infective)
|
||||
diseases = infective.diseases
|
||||
var/obj/effect/decal/cleanable/blood/splatter/splat = new /obj/effect/decal/cleanable/blood/splatter(loc, diseases)
|
||||
splat.transfer_blood_dna(blood_DNA, diseases)
|
||||
if(!step_to(src, get_step(src, direction), 0))
|
||||
break
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/up
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/down
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibdown1","gibdown1","gibdown1")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/body
|
||||
random_icon_states = list("gibhead", "gibtorso")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/torso
|
||||
random_icon_states = list("gibtorso")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/limb
|
||||
random_icon_states = list("gibleg", "gibarm")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/core
|
||||
random_icon_states = list("gibmid1", "gibmid2", "gibmid3")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/old
|
||||
name = "old rotting gibs"
|
||||
desc = "Space Jesus, why didn't anyone clean this up? It smells terrible."
|
||||
bloodiness = 0
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/old/Initialize(mapload, list/datum/disease/diseases)
|
||||
. = ..()
|
||||
setDir(pick(GLOB.cardinals))
|
||||
icon_state += "-old"
|
||||
update_icon()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/drip
|
||||
name = "drips of blood"
|
||||
desc = "It's gooey."
|
||||
icon_state = "1"
|
||||
random_icon_states = list("drip1","drip2","drip3","drip4","drip5")
|
||||
bloodiness = 0
|
||||
var/drips = 1
|
||||
|
||||
/obj/effect/decal/cleanable/blood/drip/can_bloodcrawl_in()
|
||||
return TRUE
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/human
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/human/Initialize(mapload, list/datum/disease/diseases)
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/human/up
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/human/down
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibdown1","gibdown1","gibdown1")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/human/body
|
||||
random_icon_states = list("gibhead", "gibtorso")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/human/torso
|
||||
random_icon_states = list("gibtorso")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/human/limb
|
||||
random_icon_states = list("gibleg", "gibarm")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/human/core
|
||||
random_icon_states = list("gibmid1", "gibmid2", "gibmid3")
|
||||
|
||||
|
||||
//Lizards
|
||||
/obj/effect/decal/cleanable/blood/gibs/human/lizard
|
||||
body_colors = "117720"
|
||||
gibs_reagent_id = "liquidgibs"
|
||||
gibs_bloodtype = "L"
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/human/lizard/Initialize(mapload, list/datum/disease/diseases)
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/human/lizard/up
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/human/lizard/down
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibdown1","gibdown1","gibdown1")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/human/lizard/body
|
||||
random_icon_states = list("gibhead", "gibtorso")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/human/lizard/torso
|
||||
random_icon_states = list("gibtorso")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/human/lizard/limb
|
||||
random_icon_states = list("gibleg", "gibarm")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/human/lizard/core
|
||||
random_icon_states = list("gibmid1", "gibmid2", "gibmid3")
|
||||
|
||||
// Slime Gibs
|
||||
/obj/effect/decal/cleanable/blood/gibs/slime
|
||||
desc = "They look gooey and gruesome."
|
||||
gibs_reagent_id = "liquidslimegibs"
|
||||
gibs_bloodtype = "GEL"
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/slime/Initialize(mapload, list/datum/disease/diseases)
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/slime/update_icon()
|
||||
add_atom_colour(body_colors, FIXED_COLOUR_PRIORITY)
|
||||
cut_overlays()
|
||||
var/mutable_appearance/guts = mutable_appearance(icon, "[icon_state]s_guts")
|
||||
guts.appearance_flags = RESET_COLOR
|
||||
guts.color = body_colors
|
||||
add_overlay(guts)
|
||||
var/mutable_appearance/flesh = mutable_appearance(icon, "[icon_state]_flesh")
|
||||
flesh.appearance_flags = RESET_COLOR
|
||||
flesh.color = body_colors
|
||||
add_overlay(flesh)
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/slime/up
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/slime/down
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibdown1","gibdown1","gibdown1")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/slime/body
|
||||
random_icon_states = list("gibhead", "gibtorso")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/slime/torso
|
||||
random_icon_states = list("gibtorso")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/slime/limb
|
||||
random_icon_states = list("gibleg", "gibarm")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/slime/core
|
||||
random_icon_states = list("gibmid1", "gibmid2", "gibmid3")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/synth
|
||||
desc = "They look sludgy and disgusting."
|
||||
gibs_reagent_id = "liquidsyntheticgibs"
|
||||
gibs_bloodtype = "SY"
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/synth/Initialize(mapload, list/datum/disease/diseases)
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
//IPCs
|
||||
/obj/effect/decal/cleanable/blood/gibs/ipc
|
||||
desc = "They look sharp yet oozing."
|
||||
body_colors = "00ff00"
|
||||
gibs_reagent_id = "liquidoilgibs"
|
||||
gibs_bloodtype = "HF"
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/ipc/Initialize(mapload, list/datum/disease/diseases)
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/ipc/update_icon()
|
||||
add_atom_colour(blood_DNA_to_color(), FIXED_COLOUR_PRIORITY)
|
||||
cut_overlays()
|
||||
var/mutable_appearance/guts = mutable_appearance(icon, "[icon_state]r-overlay")
|
||||
guts.appearance_flags = RESET_COLOR
|
||||
add_overlay(guts)
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/ipc/up
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/ipc/down
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibdown1","gibdown1","gibdown1")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/ipc/body
|
||||
random_icon_states = list("gibhead", "gibtorso")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/ipc/torso
|
||||
random_icon_states = list("gibtorso")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/ipc/limb
|
||||
random_icon_states = list("gibleg", "gibarm")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/ipc/core
|
||||
random_icon_states = list("gibmid1", "gibmid2", "gibmid3")
|
||||
@@ -1,31 +1,45 @@
|
||||
/obj/effect/decal/cleanable/blood
|
||||
name = "blood"
|
||||
desc = "It's red and gooey. Perhaps it's the chef's cooking?"
|
||||
desc = "It's gooey. Perhaps it's the chef's cooking?"
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
icon_state = "floor1"
|
||||
random_icon_states = list("floor1", "floor2", "floor3", "floor4", "floor5", "floor6", "floor7")
|
||||
blood_state = BLOOD_STATE_HUMAN
|
||||
bloodiness = BLOOD_AMOUNT_PER_DECAL
|
||||
blood_state = BLOOD_STATE_BLOOD
|
||||
bloodiness = MAX_SHOE_BLOODINESS
|
||||
color = BLOOD_COLOR_HUMAN //default so we don't have white splotches everywhere.
|
||||
|
||||
/obj/effect/decal/cleanable/blood/replace_decal(obj/effect/decal/cleanable/blood/C)
|
||||
C.add_blood_DNA(return_blood_DNA())
|
||||
if (bloodiness)
|
||||
if (C.bloodiness < MAX_SHOE_BLOODINESS)
|
||||
C.bloodiness += bloodiness
|
||||
return ..()
|
||||
if (C.blood_DNA)
|
||||
blood_DNA |= C.blood_DNA.Copy()
|
||||
update_icon()
|
||||
..()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/transfer_blood_dna()
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/transfer_mob_blood_dna()
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/update_icon()
|
||||
color = blood_DNA_to_color()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/old
|
||||
name = "dried blood"
|
||||
desc = "Looks like it's been here a while. Eew."
|
||||
desc = "Looks like it's been here a while. Eew."
|
||||
bloodiness = 0
|
||||
|
||||
/obj/effect/decal/cleanable/blood/old/Initialize(mapload, list/datum/disease/diseases)
|
||||
icon_state += "-old" //This IS necessary because the parent /blood type uses icon randomization.
|
||||
add_blood_DNA(list("Non-human DNA" = "A+")) // Needs to happen before ..()
|
||||
return ..()
|
||||
..()
|
||||
icon_state += "-old"
|
||||
add_blood_DNA(list("Non-human DNA" = "A+"))
|
||||
|
||||
/obj/effect/decal/cleanable/blood/splats
|
||||
random_icon_states = list("gibbl1", "gibbl2", "gibbl3", "gibbl4", "gibbl5")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/splatter
|
||||
random_icon_states = list("gibbl1", "gibbl2", "gibbl3", "gibbl4", "gibbl5")
|
||||
random_icon_states = list("splatter1", "splatter2", "splatter3", "splatter4", "splatter5")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/tracks
|
||||
icon_state = "tracks"
|
||||
@@ -39,84 +53,23 @@
|
||||
random_icon_states = null
|
||||
var/list/existing_dirs = list()
|
||||
|
||||
/obj/effect/decal/cleanable/trail_holder/update_icon()
|
||||
color = blood_DNA_to_color()
|
||||
|
||||
/obj/effect/cleanable/trail_holder/Initialize()
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
/obj/effect/decal/cleanable/trail_holder/can_bloodcrawl_in()
|
||||
return TRUE
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs
|
||||
name = "gibs"
|
||||
desc = "They look bloody and gruesome."
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
icon_state = "gibbl5"
|
||||
layer = LOW_OBJ_LAYER
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6")
|
||||
mergeable_decal = FALSE
|
||||
/obj/effect/decal/cleanable/trail_holder/transfer_blood_dna()
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/Initialize(mapload, list/datum/disease/diseases)
|
||||
/obj/effect/decal/cleanable/trail_holder/transfer_mob_blood_dna()
|
||||
. = ..()
|
||||
reagents.add_reagent("liquidgibs", 5)
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/ex_act(severity, target)
|
||||
return
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/Crossed(mob/living/L)
|
||||
if(istype(L) && has_gravity(loc))
|
||||
playsound(loc, 'sound/effects/gib_step.ogg', HAS_TRAIT(L, TRAIT_LIGHT_STEP) ? 20 : 50, 1)
|
||||
. = ..()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/proc/streak(list/directions)
|
||||
set waitfor = 0
|
||||
var/direction = pick(directions)
|
||||
for(var/i = 0, i < pick(1, 200; 2, 150; 3, 50), i++)
|
||||
sleep(2)
|
||||
if(i > 0)
|
||||
var/list/datum/disease/diseases
|
||||
GET_COMPONENT(infective, /datum/component/infective)
|
||||
if(infective)
|
||||
diseases = infective.diseases
|
||||
new /obj/effect/decal/cleanable/blood/splatter(loc, diseases)
|
||||
if(!step_to(src, get_step(src, direction), 0))
|
||||
break
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/up
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/down
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibdown1","gibdown1","gibdown1")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/body
|
||||
random_icon_states = list("gibhead", "gibtorso")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/torso
|
||||
random_icon_states = list("gibtorso")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/limb
|
||||
random_icon_states = list("gibleg", "gibarm")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/core
|
||||
random_icon_states = list("gibmid1", "gibmid2", "gibmid3")
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/old
|
||||
name = "old rotting gibs"
|
||||
desc = "Space Jesus, why didn't anyone clean this up? It smells terrible."
|
||||
bloodiness = 0
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/old/Initialize(mapload, list/datum/disease/diseases)
|
||||
. = ..()
|
||||
setDir(pick(1,2,4,8))
|
||||
icon_state += "-old"
|
||||
add_blood_DNA(list("Non-human DNA" = "A+"))
|
||||
|
||||
/obj/effect/decal/cleanable/blood/drip
|
||||
name = "drips of blood"
|
||||
desc = "It's red."
|
||||
icon_state = "1"
|
||||
random_icon_states = list("drip1","drip2","drip3","drip4","drip5")
|
||||
bloodiness = 0
|
||||
var/drips = 1
|
||||
|
||||
/obj/effect/decal/cleanable/blood/drip/can_bloodcrawl_in()
|
||||
return TRUE
|
||||
|
||||
update_icon()
|
||||
|
||||
//BLOODY FOOTPRINTS
|
||||
/obj/effect/decal/cleanable/blood/footprints
|
||||
@@ -127,15 +80,16 @@
|
||||
random_icon_states = null
|
||||
var/entered_dirs = 0
|
||||
var/exited_dirs = 0
|
||||
blood_state = BLOOD_STATE_HUMAN //the icon state to load images from
|
||||
blood_state = BLOOD_STATE_BLOOD //the icon state to load images from
|
||||
var/list/shoe_types = list()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/Crossed(atom/movable/O)
|
||||
..()
|
||||
if(ishuman(O))
|
||||
var/mob/living/carbon/human/H = O
|
||||
var/obj/item/clothing/shoes/S = H.shoes
|
||||
if(S && S.bloody_shoes[blood_state])
|
||||
if(color != bloodtype_to_color(S.last_bloodtype))
|
||||
return
|
||||
S.bloody_shoes[blood_state] = max(S.bloody_shoes[blood_state] - BLOOD_LOSS_PER_STEP, 0)
|
||||
shoe_types |= S.type
|
||||
if (!(entered_dirs & H.dir))
|
||||
@@ -143,21 +97,21 @@
|
||||
update_icon()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/Uncrossed(atom/movable/O)
|
||||
..()
|
||||
if(ishuman(O))
|
||||
var/mob/living/carbon/human/H = O
|
||||
var/obj/item/clothing/shoes/S = H.shoes
|
||||
if(S && S.bloody_shoes[blood_state])
|
||||
if(color != bloodtype_to_color(S.last_bloodtype))//last entry - we check its color
|
||||
return
|
||||
S.bloody_shoes[blood_state] = max(S.bloody_shoes[blood_state] - BLOOD_LOSS_PER_STEP, 0)
|
||||
shoe_types |= S.type
|
||||
if (!(exited_dirs & H.dir))
|
||||
exited_dirs |= H.dir
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/update_icon()
|
||||
..()
|
||||
cut_overlays()
|
||||
|
||||
for(var/Ddir in GLOB.cardinals)
|
||||
if(entered_dirs & Ddir)
|
||||
var/image/bloodstep_overlay = GLOB.bloody_footprints_cache["entered-[blood_state]-[Ddir]"]
|
||||
@@ -170,7 +124,7 @@
|
||||
GLOB.bloody_footprints_cache["exited-[blood_state]-[Ddir]"] = bloodstep_overlay = image(icon, "[blood_state]2", dir = Ddir)
|
||||
add_overlay(bloodstep_overlay)
|
||||
|
||||
alpha = BLOODY_FOOTPRINT_BASE_ALPHA+bloodiness
|
||||
alpha = BLOODY_FOOTPRINT_BASE_ALPHA + bloodiness
|
||||
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/examine(mob/user)
|
||||
@@ -179,16 +133,62 @@
|
||||
. += "You recognise the footprints as belonging to:\n"
|
||||
for(var/shoe in shoe_types)
|
||||
var/obj/item/clothing/shoes/S = shoe
|
||||
. += "[icon2html(initial(S.icon), user)] Some <B>[initial(S.name)]</B>.\n"
|
||||
. += "some <B>[initial(S.name)]</B> [icon2html(initial(S.icon), user)]\n"
|
||||
|
||||
to_chat(user, .)
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/replace_decal(obj/effect/decal/cleanable/C)
|
||||
if(blood_state != C.blood_state) //We only replace footprints of the same type as us
|
||||
return
|
||||
if(color != C.color)
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/can_bloodcrawl_in()
|
||||
if((blood_state != BLOOD_STATE_OIL) && (blood_state != BLOOD_STATE_NOT_BLOODY))
|
||||
return 1
|
||||
return 0
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/* Eventually TODO: make snowflake trails like baycode's
|
||||
/obj/effect/decal/cleanable/blood/footprints/tracks/shoe
|
||||
name = "footprints"
|
||||
desc = "They look like tracks left by footwear."
|
||||
icon_state = FOOTPRINT_SHOE
|
||||
print_state = FOOTPRINT_SHOE
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/tracks/foot
|
||||
name = "footprints"
|
||||
desc = "They look like tracks left by a bare foot."
|
||||
icon_state = FOOTPRINT_FOOT
|
||||
print_state = FOOTPRINT_FOOT
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/tracks/snake
|
||||
name = "tracks"
|
||||
desc = "They look like tracks left by a giant snake."
|
||||
icon_state = FOOTPRINT_SNAKE
|
||||
print_state = FOOTPRINT_SNAKE
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/tracks/paw
|
||||
name = "footprints"
|
||||
desc = "They look like tracks left by paws."
|
||||
icon_state = FOOTPRINT_PAW
|
||||
print_state = FOOTPRINT_PAW
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/tracks/claw
|
||||
name = "footprints"
|
||||
desc = "They look like tracks left by claws."
|
||||
icon_state = FOOTPRINT_CLAW
|
||||
print_state = FOOTPRINT_CLAW
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/tracks/wheels
|
||||
name = "tracks"
|
||||
desc = "They look like tracks left by wheels."
|
||||
gender = PLURAL
|
||||
icon_state = FOOTPRINT_WHEEL
|
||||
print_state = FOOTPRINT_WHEEL
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/tracks/body
|
||||
name = "trails"
|
||||
desc = "A trail left by something being dragged."
|
||||
icon_state = FOOTPRINT_DRAG
|
||||
print_state = FOOTPRINT_DRAG */
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
bloodiness = BLOOD_AMOUNT_PER_DECAL
|
||||
mergeable_decal = FALSE
|
||||
|
||||
/obj/effect/decal/cleanable/robot_debris/Initialize(mapload, list/datum/disease/diseases)
|
||||
. = ..()
|
||||
reagents.add_reagent("liquidoilgibs", 5)
|
||||
|
||||
/obj/effect/decal/cleanable/robot_debris/proc/streak(list/directions)
|
||||
set waitfor = 0
|
||||
var/direction = pick(directions)
|
||||
@@ -50,6 +54,7 @@
|
||||
/obj/effect/decal/cleanable/oil/Initialize()
|
||||
. = ..()
|
||||
reagents.add_reagent("oil", 30)
|
||||
reagents.add_reagent("liquidoilgibs", 5)
|
||||
|
||||
/obj/effect/decal/cleanable/oil/streak
|
||||
random_icon_states = list("streak1", "streak2", "streak3", "streak4", "streak5")
|
||||
|
||||
@@ -1,25 +1,69 @@
|
||||
|
||||
/obj/effect/gibspawner
|
||||
var/sparks = 0 //whether sparks spread
|
||||
var/sparks = FALSE //whether sparks spread
|
||||
var/virusProb = 20 //the chance for viruses to spread on the gibs
|
||||
var/gib_mob_type //generate a fake mob to transfer DNA from if we weren't passed a mob.
|
||||
var/gib_mob_species //We'll want to nip-pick their species for blood type stuff
|
||||
var/sound_to_play = 'sound/effects/blobattack.ogg'
|
||||
var/sound_vol = 60
|
||||
var/list/gibtypes = list() //typepaths of the gib decals to spawn
|
||||
var/list/gibamounts = list() //amount to spawn for each gib decal type we'll spawn.
|
||||
var/list/gibdirections = list() //of lists of possible directions to spread each gib decal type towards.
|
||||
|
||||
/obj/effect/gibspawner/Initialize(mapload, datum/dna/MobDNA, list/datum/disease/diseases)
|
||||
/obj/effect/gibspawner/Initialize(mapload, mob/living/source_mob, list/datum/disease/diseases)
|
||||
. = ..()
|
||||
|
||||
if(gibtypes.len != gibamounts.len || gibamounts.len != gibdirections.len)
|
||||
to_chat(world, "<span class='danger'>Gib list length mismatch!</span>")
|
||||
if(gibtypes.len != gibamounts.len)
|
||||
stack_trace("Gib list amount length mismatch!")
|
||||
return
|
||||
if(gibamounts.len != gibdirections.len)
|
||||
stack_trace("Gib list dir length mismatch!")
|
||||
return
|
||||
|
||||
var/obj/effect/decal/cleanable/blood/gibs/gib = null
|
||||
|
||||
if(sound_to_play && isnum(sound_vol))
|
||||
playsound(src, sound_to_play, sound_vol, TRUE)
|
||||
|
||||
if(sparks)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(2, 1, loc)
|
||||
s.start()
|
||||
|
||||
var/list/dna_to_add //find the dna to pass to the spawned gibs. do note this can be null if the mob doesn't have blood. add_blood_DNA() has built in null handling.
|
||||
var/body_coloring = ""
|
||||
if(source_mob)
|
||||
dna_to_add = source_mob.get_blood_dna_list() //ez pz
|
||||
if(ishuman(source_mob))
|
||||
var/mob/living/carbon/human/H = source_mob
|
||||
if(H.dna.species.use_skintones)
|
||||
body_coloring = "#[skintone2hex(H.skin_tone)]"
|
||||
else
|
||||
body_coloring = "#[H.dna.features["mcolor"]]"
|
||||
|
||||
else if(gib_mob_type)
|
||||
var/mob/living/temp_mob = new gib_mob_type(src) //generate a fake mob so that we pull the right type of DNA for the gibs.
|
||||
if(gib_mob_species)
|
||||
if(ishuman(temp_mob))
|
||||
var/mob/living/carbon/human/H = temp_mob
|
||||
H.set_species(gib_mob_species)
|
||||
dna_to_add = temp_mob.get_blood_dna_list()
|
||||
if(H.dna.species.use_skintones)
|
||||
body_coloring = "#[skintone2hex(H.skin_tone)]"
|
||||
else
|
||||
body_coloring = "#[H.dna.features["mcolor"]]"
|
||||
qdel(H)
|
||||
else
|
||||
dna_to_add = temp_mob.get_blood_dna_list()
|
||||
qdel(temp_mob)
|
||||
else if(!issilicon(temp_mob))
|
||||
dna_to_add = temp_mob.get_blood_dna_list()
|
||||
qdel(temp_mob)
|
||||
else
|
||||
qdel(temp_mob)
|
||||
else
|
||||
dna_to_add = list("Non-human DNA" = random_blood_type()) //else, generate a random bloodtype for it.
|
||||
|
||||
|
||||
for(var/i = 1, i<= gibtypes.len, i++)
|
||||
if(gibamounts[i])
|
||||
for(var/j = 1, j<= gibamounts[i], j++)
|
||||
@@ -29,10 +73,11 @@
|
||||
var/mob/living/carbon/digester = loc
|
||||
digester.stomach_contents += gib
|
||||
|
||||
if(MobDNA)
|
||||
if(dna_to_add && dna_to_add.len)
|
||||
gib.add_blood_DNA(dna_to_add)
|
||||
gib.body_colors = body_coloring
|
||||
gib.update_icon()
|
||||
|
||||
else if(istype(src, /obj/effect/gibspawner/generic)) // Probably a monkey
|
||||
gib.add_blood_DNA(list("Non-human DNA" = "A+"))
|
||||
var/list/directions = gibdirections[i]
|
||||
if(isturf(loc))
|
||||
if(directions.len)
|
||||
@@ -41,80 +86,158 @@
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
|
||||
|
||||
/obj/effect/gibspawner/generic
|
||||
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core)
|
||||
gibamounts = list(2,2,1)
|
||||
gibamounts = list(2, 2, 1)
|
||||
sound_vol = 40
|
||||
|
||||
/obj/effect/gibspawner/generic/Initialize()
|
||||
playsound(src, 'sound/effects/blobattack.ogg', 40, 1)
|
||||
gibdirections = list(list(WEST, NORTHWEST, SOUTHWEST, NORTH),list(EAST, NORTHEAST, SOUTHEAST, SOUTH), list())
|
||||
. = ..()
|
||||
if(!gibdirections.len)
|
||||
gibdirections = list(list(WEST, NORTHWEST, SOUTHWEST, NORTH),list(EAST, NORTHEAST, SOUTHEAST, SOUTH), list())
|
||||
return ..()
|
||||
|
||||
/obj/effect/gibspawner/generic/animal
|
||||
gib_mob_type = /mob/living/simple_animal/pet
|
||||
|
||||
/obj/effect/gibspawner/human
|
||||
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/up, /obj/effect/decal/cleanable/blood/gibs/down, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/body, /obj/effect/decal/cleanable/blood/gibs/limb, /obj/effect/decal/cleanable/blood/gibs/core)
|
||||
gibamounts = list(1,1,1,1,1,1,1)
|
||||
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/human/up, /obj/effect/decal/cleanable/blood/gibs/human/down, /obj/effect/decal/cleanable/blood/gibs/human, /obj/effect/decal/cleanable/blood/gibs/human, /obj/effect/decal/cleanable/blood/gibs/human/body, /obj/effect/decal/cleanable/blood/gibs/human/limb, /obj/effect/decal/cleanable/blood/gibs/human/core)
|
||||
gibamounts = list(1, 1, 1, 1, 1, 1, 1)
|
||||
gib_mob_type = /mob/living/carbon/human
|
||||
gib_mob_species = /datum/species/human
|
||||
sound_vol = 50
|
||||
|
||||
/obj/effect/gibspawner/human/Initialize()
|
||||
playsound(src, 'sound/effects/blobattack.ogg', 50, 1)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs, list())
|
||||
. = ..()
|
||||
if(!gibdirections.len)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs, list())
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/effect/gibspawner/humanbodypartless //only the gibs that don't look like actual full bodyparts (except torso).
|
||||
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood/gibs/torso)
|
||||
/obj/effect/gibspawner/human/bodypartless //only the gibs that don't look like actual full bodyparts (except torso).
|
||||
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/human, /obj/effect/decal/cleanable/blood/gibs/human/core, /obj/effect/decal/cleanable/blood/gibs/human, /obj/effect/decal/cleanable/blood/gibs/human/core, /obj/effect/decal/cleanable/blood/gibs/human, /obj/effect/decal/cleanable/blood/gibs/human/torso)
|
||||
gibamounts = list(1, 1, 1, 1, 1, 1)
|
||||
|
||||
/obj/effect/gibspawner/humanbodypartless/Initialize()
|
||||
playsound(src, 'sound/effects/blobattack.ogg', 50, 1)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, list())
|
||||
. = ..()
|
||||
/obj/effect/gibspawner/human/bodypartless/Initialize()
|
||||
if(!gibdirections.len)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, list())
|
||||
return ..()
|
||||
|
||||
/obj/effect/gibspawner/lizard
|
||||
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/human/lizard/up, /obj/effect/decal/cleanable/blood/gibs/human/lizard/down, /obj/effect/decal/cleanable/blood/gibs/human/lizard, /obj/effect/decal/cleanable/blood/gibs/human/lizard, /obj/effect/decal/cleanable/blood/gibs/human/lizard/body, /obj/effect/decal/cleanable/blood/gibs/human/lizard/limb, /obj/effect/decal/cleanable/blood/gibs/human/lizard/core)
|
||||
gibamounts = list(1, 1, 1, 1, 1, 1, 1)
|
||||
gib_mob_type = /mob/living/carbon/human/species/lizard
|
||||
gib_mob_species = /datum/species/lizard
|
||||
sound_vol = 50
|
||||
|
||||
/obj/effect/gibspawner/lizard/Initialize()
|
||||
if(!gibdirections.len)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs, list())
|
||||
return ..()
|
||||
|
||||
/obj/effect/gibspawner/lizard/bodypartless
|
||||
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/human/lizard, /obj/effect/decal/cleanable/blood/gibs/human/lizard/core, /obj/effect/decal/cleanable/blood/gibs/human/lizard, /obj/effect/decal/cleanable/blood/gibs/human/lizard/core, /obj/effect/decal/cleanable/blood/gibs/human/lizard, /obj/effect/decal/cleanable/blood/gibs/human/lizard/torso)
|
||||
gibamounts = list(1, 1, 1, 1, 1, 1)
|
||||
|
||||
/obj/effect/gibspawner/lizard/bodypartless/Initialize()
|
||||
if(!gibdirections.len)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, list())
|
||||
return ..()
|
||||
|
||||
/obj/effect/gibspawner/slime
|
||||
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/slime/up, /obj/effect/decal/cleanable/blood/gibs/slime/down, /obj/effect/decal/cleanable/blood/gibs/slime, /obj/effect/decal/cleanable/blood/gibs/slime, /obj/effect/decal/cleanable/blood/gibs/slime/body, /obj/effect/decal/cleanable/blood/gibs/slime/limb, /obj/effect/decal/cleanable/blood/gibs/slime/core)
|
||||
gibamounts = list(1, 1, 1, 1, 1, 1, 1)
|
||||
gib_mob_type = /mob/living/carbon/human/species/roundstartslime
|
||||
gib_mob_species = /datum/species/jelly/roundstartslime
|
||||
sound_vol = 50
|
||||
|
||||
/obj/effect/gibspawner/slime/Initialize()
|
||||
if(!gibdirections.len)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs, list())
|
||||
return ..()
|
||||
|
||||
/obj/effect/gibspawner/slime/bodypartless //only the gibs that don't look like actual full bodyparts (except torso).
|
||||
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/slime, /obj/effect/decal/cleanable/blood/gibs/slime/core, /obj/effect/decal/cleanable/blood/gibs/slime, /obj/effect/decal/cleanable/blood/gibs/slime/core, /obj/effect/decal/cleanable/blood/gibs/slime, /obj/effect/decal/cleanable/blood/gibs/slime/torso)
|
||||
gibamounts = list(1, 1, 1, 1, 1, 1)
|
||||
|
||||
/obj/effect/gibspawner/slime/bodypartless/Initialize()
|
||||
if(!gibdirections.len)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, list())
|
||||
return ..()
|
||||
|
||||
/obj/effect/gibspawner/ipc
|
||||
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/ipc/up, /obj/effect/decal/cleanable/blood/gibs/ipc/down, /obj/effect/decal/cleanable/blood/gibs/ipc, /obj/effect/decal/cleanable/blood/gibs/ipc, /obj/effect/decal/cleanable/blood/gibs/ipc/body, /obj/effect/decal/cleanable/blood/gibs/ipc/limb, /obj/effect/decal/cleanable/blood/gibs/ipc/core)
|
||||
gibamounts = list(1, 1, 1, 1, 1, 1, 1)
|
||||
gib_mob_type = /mob/living/carbon/human/species/ipc
|
||||
gib_mob_species = /datum/species/ipc
|
||||
sound_vol = 50
|
||||
sparks = TRUE
|
||||
sound_to_play = 'sound/effects/bang.ogg'
|
||||
|
||||
/obj/effect/gibspawner/ipc/Initialize()
|
||||
if(!gibdirections.len)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs, list())
|
||||
return ..()
|
||||
|
||||
/obj/effect/gibspawner/ipc/bodypartless //only the gibs that don't look like actual full bodyparts (except torso).
|
||||
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/ipc, /obj/effect/decal/cleanable/blood/gibs/ipc/core, /obj/effect/decal/cleanable/blood/gibs/ipc, /obj/effect/decal/cleanable/blood/gibs/ipc/core, /obj/effect/decal/cleanable/blood/gibs/ipc, /obj/effect/decal/cleanable/blood/gibs/ipc/torso)
|
||||
gibamounts = list(1, 1, 1, 1, 1, 1)
|
||||
|
||||
/obj/effect/gibspawner/ipc/bodypartless/Initialize()
|
||||
if(!gibdirections.len)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, list())
|
||||
return ..()
|
||||
|
||||
/obj/effect/gibspawner/xeno
|
||||
gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs/up, /obj/effect/decal/cleanable/xenoblood/xgibs/down, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/body, /obj/effect/decal/cleanable/xenoblood/xgibs/limb, /obj/effect/decal/cleanable/xenoblood/xgibs/core)
|
||||
gibamounts = list(1,1,1,1,1,1,1)
|
||||
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/xeno/up, /obj/effect/decal/cleanable/blood/gibs/xeno/down, /obj/effect/decal/cleanable/blood/gibs/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno/body, /obj/effect/decal/cleanable/blood/gibs/xeno/limb, /obj/effect/decal/cleanable/blood/gibs/xeno/core)
|
||||
gibamounts = list(1, 1, 1, 1, 1, 1, 1)
|
||||
gib_mob_type = /mob/living/carbon/alien
|
||||
|
||||
/obj/effect/gibspawner/xeno/Initialize()
|
||||
playsound(src, 'sound/effects/blobattack.ogg', 60, 1)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs, list())
|
||||
. = ..()
|
||||
if(!gibdirections.len)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs, list())
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/effect/gibspawner/xenobodypartless //only the gibs that don't look like actual full bodyparts (except torso).
|
||||
gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/core, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/core, /obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/xenoblood/xgibs/torso)
|
||||
/obj/effect/gibspawner/xeno/bodypartless //only the gibs that don't look like actual full bodyparts (except torso).
|
||||
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno/core, /obj/effect/decal/cleanable/blood/gibs/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno/core, /obj/effect/decal/cleanable/blood/gibs/xeno, /obj/effect/decal/cleanable/blood/gibs/xeno/torso)
|
||||
gibamounts = list(1, 1, 1, 1, 1, 1)
|
||||
|
||||
/obj/effect/gibspawner/xeno/bodypartless/Initialize()
|
||||
if(!gibdirections.len)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, list())
|
||||
return ..()
|
||||
|
||||
/obj/effect/gibspawner/xenobodypartless/Initialize()
|
||||
playsound(src, 'sound/effects/blobattack.ogg', 60, 1)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, list())
|
||||
. = ..()
|
||||
/obj/effect/gibspawner/xeno/xenoperson
|
||||
gib_mob_type = /mob/living/carbon/human/species/xeno
|
||||
gib_mob_species = /datum/species/xeno
|
||||
|
||||
/obj/effect/gibspawner/xeno/xenoperson/bodypartless
|
||||
|
||||
/obj/effect/gibspawner/larva
|
||||
gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs/larva, /obj/effect/decal/cleanable/xenoblood/xgibs/larva, /obj/effect/decal/cleanable/xenoblood/xgibs/larva/body, /obj/effect/decal/cleanable/xenoblood/xgibs/larva/body)
|
||||
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/xeno/larva, /obj/effect/decal/cleanable/blood/gibs/xeno/larva, /obj/effect/decal/cleanable/blood/gibs/xeno/larva/body, /obj/effect/decal/cleanable/blood/gibs/xeno/larva/body)
|
||||
gibamounts = list(1, 1, 1, 1)
|
||||
gib_mob_type = /mob/living/carbon/alien/larva
|
||||
|
||||
/obj/effect/gibspawner/larva/Initialize()
|
||||
playsound(src, 'sound/effects/blobattack.ogg', 60, 1)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST), list(), GLOB.alldirs)
|
||||
. = ..()
|
||||
if(!gibdirections.len)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST), list(), GLOB.alldirs)
|
||||
return ..()
|
||||
|
||||
/obj/effect/gibspawner/larvabodypartless
|
||||
gibtypes = list(/obj/effect/decal/cleanable/xenoblood/xgibs/larva, /obj/effect/decal/cleanable/xenoblood/xgibs/larva, /obj/effect/decal/cleanable/xenoblood/xgibs/larva)
|
||||
/obj/effect/gibspawner/larva/bodypartless
|
||||
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/xeno/larva, /obj/effect/decal/cleanable/blood/gibs/xeno/larva, /obj/effect/decal/cleanable/blood/gibs/xeno/larva)
|
||||
gibamounts = list(1, 1, 1)
|
||||
|
||||
/obj/effect/gibspawner/larvabodypartless/Initialize()
|
||||
playsound(src, 'sound/effects/blobattack.ogg', 60, 1)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST), list())
|
||||
. = ..()
|
||||
/obj/effect/gibspawner/larva/bodypartless/Initialize()
|
||||
if(!gibdirections.len)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST), list())
|
||||
return ..()
|
||||
|
||||
/obj/effect/gibspawner/robot
|
||||
sparks = 1
|
||||
sparks = TRUE
|
||||
gibtypes = list(/obj/effect/decal/cleanable/robot_debris/up, /obj/effect/decal/cleanable/robot_debris/down, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/robot_debris, /obj/effect/decal/cleanable/robot_debris/limb)
|
||||
gibamounts = list(1,1,1,1,1,1)
|
||||
gibamounts = list(1, 1, 1, 1, 1, 1)
|
||||
gib_mob_type = /mob/living/silicon/robot
|
||||
|
||||
/obj/effect/gibspawner/robot/Initialize()
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs)
|
||||
gibamounts[6] = pick(0,1,2)
|
||||
. = ..()
|
||||
if(!gibdirections.len)
|
||||
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), GLOB.alldirs, GLOB.alldirs)
|
||||
gibamounts[6] = pick(0, 1, 2)
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -6,7 +6,9 @@
|
||||
layer = BELOW_MOB_LAYER
|
||||
var/splatter_type = "splatter"
|
||||
|
||||
/obj/effect/temp_visual/dir_setting/bloodsplatter/Initialize(mapload, set_dir)
|
||||
/obj/effect/temp_visual/dir_setting/bloodsplatter/Initialize(mapload, set_dir, new_color)
|
||||
if(new_color)
|
||||
color = new_color
|
||||
if(set_dir in GLOB.diagonals)
|
||||
icon_state = "[splatter_type][pick(1, 2, 6)]"
|
||||
else
|
||||
@@ -41,7 +43,7 @@
|
||||
animate(src, pixel_x = target_pixel_x, pixel_y = target_pixel_y, alpha = 0, time = duration)
|
||||
|
||||
/obj/effect/temp_visual/dir_setting/bloodsplatter/xenosplatter
|
||||
splatter_type = "xsplatter"
|
||||
color = BLOOD_COLOR_XENO
|
||||
|
||||
/obj/effect/temp_visual/dir_setting/speedbike_trail
|
||||
name = "speedbike trails"
|
||||
|
||||
@@ -111,7 +111,6 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
|
||||
var/list/grind_results //A reagent list containing the reagents this item produces when ground up in a grinder - this can be an empty list to allow for reagent transferring only
|
||||
var/list/juice_results //A reagent list containing blah blah... but when JUICED in a grinder!
|
||||
|
||||
|
||||
/obj/item/Initialize()
|
||||
|
||||
materials = typelist("materials", materials)
|
||||
@@ -537,6 +536,17 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
|
||||
M.become_blind(EYE_DAMAGE)
|
||||
to_chat(M, "<span class='danger'>You go blind!</span>")
|
||||
|
||||
/obj/item/clean_blood()
|
||||
. = ..()
|
||||
if(.)
|
||||
if(blood_splatter_icon)
|
||||
cut_overlay(blood_splatter_icon)
|
||||
|
||||
/obj/item/clothing/gloves/clean_blood()
|
||||
. = ..()
|
||||
if(.)
|
||||
transfer_blood = 0
|
||||
|
||||
/obj/item/singularity_pull(S, current_size)
|
||||
..()
|
||||
if(current_size >= STAGE_FOUR)
|
||||
|
||||
@@ -45,8 +45,8 @@
|
||||
RemoveInfectionImages()
|
||||
AddInfectionImages()
|
||||
|
||||
/obj/item/organ/body_egg/proc/AddInfectionImages()
|
||||
/obj/item/organ/body_egg/proc/AddInfectionImages(mob/living/carbon/C)
|
||||
return
|
||||
|
||||
/obj/item/organ/body_egg/proc/RemoveInfectionImages()
|
||||
/obj/item/organ/body_egg/proc/RemoveInfectionImages(mob/living/carbon/C)
|
||||
return
|
||||
|
||||
@@ -342,12 +342,41 @@ update_label("John Doe", "Clowny")
|
||||
lefthand_file = 'icons/mob/inhands/equipment/idcards_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/idcards_righthand.dmi'
|
||||
assignment = "Prisoner"
|
||||
registered_name = "Scum"
|
||||
access = list(ACCESS_ENTER_GENPOP)
|
||||
|
||||
//Lavaland labor camp
|
||||
var/goal = 0 //How far from freedom?
|
||||
var/points = 0
|
||||
//Genpop
|
||||
var/sentence = 0 //When world.time is greater than this number, the card will have its ACCESS_ENTER_GENPOP access replaced with ACCESS_LEAVE_GENPOP the next time it's checked, unless this value is 0/null
|
||||
var/crime= "\[REDACTED\]"
|
||||
|
||||
/obj/item/card/id/prisoner/attack_self(mob/user)
|
||||
to_chat(usr, "<span class='notice'>You have accumulated [points] out of the [goal] points you need for freedom.</span>")
|
||||
/obj/item/card/id/prisoner/GetAccess()
|
||||
if((sentence && world.time >= sentence) || (goal && points >= goal))
|
||||
access = list(ACCESS_LEAVE_GENPOP)
|
||||
return ..()
|
||||
|
||||
/obj/item/card/id/prisoner/process()
|
||||
if(!sentence)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return
|
||||
if(world.time >= sentence)
|
||||
playsound(loc, 'sound/machines/ping.ogg', 50, 1)
|
||||
if(isliving(loc))
|
||||
to_chat(loc, "<span class='boldnotice'>[src]</span><span class='notice'> buzzes: You have served your sentence! You may now exit prison through the turnstiles and collect your belongings.</span>")
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return
|
||||
|
||||
/obj/item/card/id/prisoner/examine(mob/user)
|
||||
. = ..()
|
||||
if(sentence && world.time < sentence)
|
||||
to_chat(user, "<span class='notice'>You're currently serving a sentence for [crime]. <b>[DisplayTimeText(sentence - world.time)]</b> left.</span>")
|
||||
else if(goal)
|
||||
to_chat(user, "<span class='notice'>You have accumulated [points] out of the [goal] points you need for freedom.</span>")
|
||||
else if(!sentence)
|
||||
to_chat(user, "<span class='warning'>You are currently serving a permanent sentence for [crime].</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>Your sentence is up! You're free!</span>")
|
||||
|
||||
/obj/item/card/id/prisoner/one
|
||||
name = "Prisoner #13-001"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user