Merge branch 'master' into upstream-merge-37299

This commit is contained in:
deathride58
2018-04-27 09:22:31 +00:00
committed by GitHub
411 changed files with 90293 additions and 23490 deletions
+1 -2
View File
@@ -17,7 +17,6 @@
"data"
],
"dlls": [
"libmariadb.dll",
"rust_g.dll"
"libmariadb.dll"
]
}
@@ -1033,7 +1033,7 @@
/obj/structure/table/wood,
/obj/item/twohanded/spear,
/obj/item/storage/belt,
/turf/open/indestructible/boss/air,
/turf/open/indestructible/boss,
/area/ruin/unpowered/ash_walkers)
"cI" = (
/obj/structure/stone_tile/cracked{
@@ -1075,7 +1075,7 @@
/obj/structure/table/wood,
/obj/item/twohanded/spear,
/obj/item/scythe,
/turf/open/indestructible/boss/air,
/turf/open/indestructible/boss,
/area/ruin/unpowered/ash_walkers)
"cM" = (
/obj/structure/stone_tile/block{
@@ -9,7 +9,9 @@
/turf/closed/wall/mineral/plastitanium,
/area/ruin/unpowered)
"d" = (
/turf/open/floor/mineral/plastitanium,
/turf/open/floor/mineral/plastitanium{
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
"e" = (
/obj/structure/shuttle/engine/propulsion{
@@ -19,7 +21,9 @@
/area/ruin/unpowered)
"f" = (
/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon,
/turf/open/floor/mineral/plastitanium,
/turf/open/floor/mineral/plastitanium{
initial_gas_mix = "o2=14;n2=23;TEMP=300"
},
/area/ruin/unpowered)
(1,1,1) = {"
+18 -5
View File
@@ -49,9 +49,8 @@
/area/ruin/space/has_grav/deepstorage/crusher)
"an" = (
/obj/machinery/conveyor{
dir = 1;
id = "bunkerrecycle";
movedir = 2
dir = 2;
id = "bunkerrecycle"
},
/turf/open/floor/plating,
/area/ruin/space/has_grav/deepstorage/crusher)
@@ -2985,6 +2984,20 @@
/obj/effect/baseturf_helper/asteroid/airless,
/turf/closed/wall/mineral/iron,
/area/ruin/space/has_grav/deepstorage/power)
"rz" = (
/obj/machinery/conveyor{
dir = 6;
id = "bunkerrecycle"
},
/turf/open/floor/plating,
/area/ruin/space/has_grav/deepstorage/crusher)
"Bb" = (
/obj/machinery/conveyor{
dir = 10;
id = "bunkerrecycle"
},
/turf/open/floor/plating,
/area/ruin/space/has_grav/deepstorage/crusher)
(1,1,1) = {"
aa
@@ -4610,9 +4623,9 @@ ab
ab
ab
ag
rz
an
an
an
Bb
aQ
bh
bB
-8
View File
@@ -9441,13 +9441,11 @@
width = 6
},
/obj/docking_port/stationary{
baseturf_type = /turf/open/floor/engine;
dir = 4;
dwidth = 3;
height = 6;
id = "snowdin_excavation_top";
name = "snowdin excavation top";
turf_type = /turf/open/floor/engine;
width = 6
},
/turf/open/floor/plating,
@@ -9478,13 +9476,11 @@
/area/awaymission/snowdin/post/mining_dock)
"xP" = (
/obj/docking_port/stationary{
baseturf_type = /turf/open/floor/plating/snowed;
dir = 4;
dwidth = 3;
height = 6;
id = "snowdin_excavation_down";
name = "snowdin excavation down";
turf_type = /turf/open/floor/plating/snowed;
width = 6
},
/turf/open/floor/plating,
@@ -13821,13 +13817,11 @@
width = 5
},
/obj/docking_port/stationary{
baseturf_type = /turf/open/floor/engine;
dir = 4;
dwidth = 2;
height = 5;
id = "snowdin_mining_top";
name = "snowdin mining top";
turf_type = /turf/open/floor/engine;
width = 5
},
/turf/open/floor/plating,
@@ -13874,13 +13868,11 @@
"Kt" = (
/obj/docking_port/stationary{
area_type = /area/awaymission/snowdin/post/mining_dock;
baseturf_type = /turf/open/floor/engine;
dir = 4;
dwidth = 2;
height = 5;
id = "snowdin_mining_down";
name = "snowdin mining bottom";
turf_type = /turf/open/floor/engine;
width = 5
},
/turf/open/floor/plating,
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+124 -222
View File
@@ -1918,7 +1918,7 @@
/turf/closed/indestructible/riveted,
/area/space)
"fy" = (
/obj/machinery/igniter,
/obj/machinery/igniter/on,
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
/area/tdome/arena_source)
@@ -2526,10 +2526,6 @@
/obj/machinery/capture_the_flag/red,
/turf/open/floor/circuit/green/anim,
/area/ctf)
"hH" = (
/obj/effect/landmark/shuttle_import,
/turf/open/space,
/area/space)
"hI" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -2981,8 +2977,7 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/centcom{
name = "CentCom";
opacity = 1;
req_access_txt = "0"
opacity = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -2995,19 +2990,17 @@
/turf/open/floor/plating,
/area/centcom/supply)
"jc" = (
/obj/machinery/conveyor{
dir = 1;
id = "XCCQMLoad2";
movedir = 2
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/machinery/conveyor{
dir = 1;
id = "XCCQMLoad2"
},
/turf/open/floor/plasteel,
/area/centcom/supply)
"jd" = (
/obj/machinery/conveyor_switch/oneway{
convdir = 1;
id = "XCCQMLoad2";
pixel_x = 6
},
@@ -3072,58 +3065,50 @@
"jk" = (
/obj/machinery/door/poddoor{
density = 1;
icon_state = "closed";
id = "XCCQMLoaddoor2";
name = "Supply Dock Loading Door";
opacity = 1
},
/obj/machinery/conveyor{
dir = 4;
id = "XCCQMLoad2";
movedir = 8
name = "Supply Dock Loading Door"
},
/obj/effect/turf_decal/stripes/end{
dir = 8
},
/obj/machinery/conveyor{
dir = 4;
id = "XCCQMLoad2"
},
/turf/open/floor/plasteel,
/area/centcom/supply)
"jl" = (
/obj/structure/plasticflaps,
/obj/machinery/conveyor{
dir = 4;
id = "XCCQMLoad2";
movedir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 2
},
/obj/machinery/conveyor{
dir = 4;
id = "XCCQMLoad2"
},
/turf/open/floor/plasteel,
/area/centcom/supply)
"jm" = (
/obj/machinery/door/poddoor{
density = 1;
icon_state = "closed";
id = "XCCQMLoaddoor2";
name = "Supply Dock Loading Door";
opacity = 1
},
/obj/machinery/conveyor{
dir = 4;
id = "XCCQMLoad2";
movedir = 8
name = "Supply Dock Loading Door"
},
/obj/effect/turf_decal/stripes/line{
dir = 2
},
/obj/machinery/conveyor{
dir = 4;
id = "XCCQMLoad2"
},
/turf/open/floor/plasteel,
/area/centcom/supply)
"jn" = (
/obj/machinery/conveyor{
dir = 1;
id = "XCCQMLoad2";
movedir = 2
},
/obj/effect/turf_decal/stripes/end,
/obj/machinery/conveyor/inverted{
dir = 10;
id = "XCCQMLoad2"
},
/turf/open/floor/plasteel,
/area/centcom/supply)
"jo" = (
@@ -3280,10 +3265,8 @@
"jI" = (
/obj/machinery/door/poddoor{
density = 1;
icon_state = "closed";
id = "XCCQMLoaddoor";
name = "Supply Dock Loading Door";
opacity = 1
name = "Supply Dock Loading Door"
},
/obj/machinery/conveyor{
dir = 8;
@@ -3308,10 +3291,8 @@
"jK" = (
/obj/machinery/door/poddoor{
density = 1;
icon_state = "closed";
id = "XCCQMLoaddoor";
name = "Supply Dock Loading Door";
opacity = 1
name = "Supply Dock Loading Door"
},
/obj/machinery/conveyor{
dir = 8;
@@ -3323,13 +3304,13 @@
/turf/open/floor/plasteel,
/area/centcom/supply)
"jL" = (
/obj/machinery/conveyor{
dir = 8;
id = "XCCQMLoad"
},
/obj/effect/turf_decal/stripes/end{
dir = 1
},
/obj/machinery/conveyor/inverted{
dir = 6;
id = "XCCQMLoad2"
},
/turf/open/floor/plasteel,
/area/centcom/supply)
"jM" = (
@@ -3343,20 +3324,9 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/centcom/supply)
"jO" = (
/obj/machinery/conveyor{
dir = 1;
id = "XCCQMLoad";
movedir = 2
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/turf/open/floor/plasteel,
/area/centcom/supply)
"jP" = (
/obj/machinery/conveyor_switch/oneway{
convdir = 1;
dir = 8;
id = "XCCQMLoad";
pixel_x = 6
},
@@ -3534,7 +3504,6 @@
height = 50;
id = "emergency_syndicate";
name = "Syndicate Auxillary Shuttle Dock";
turf_type = /turf/open/floor/plating/asteroid/snow;
width = 50
},
/turf/open/floor/plating/asteroid/snow/airless,
@@ -5083,7 +5052,6 @@
/obj/machinery/vending/wallmed{
name = "Emergency NanoMed";
pixel_y = 32;
req_access_txt = "0";
use_power = 0
},
/turf/open/floor/plasteel/vault,
@@ -5334,6 +5302,24 @@
dir = 8
},
/area/centcom/control)
"oS" = (
/obj/structure/table/wood,
/obj/machinery/chem_dispenser/drinks/beer{
dir = 8
},
/turf/open/floor/plasteel/vault{
dir = 8
},
/area/tdome/tdomeobserve)
"oT" = (
/obj/structure/table/wood,
/obj/machinery/chem_dispenser/drinks{
dir = 8
},
/turf/open/floor/plasteel/vault{
dir = 8
},
/area/tdome/tdomeobserve)
"oW" = (
/obj/structure/flora/bush,
/obj/effect/light_emitter{
@@ -6051,8 +6037,7 @@
"qT" = (
/obj/machinery/door/airlock/centcom{
name = "CentCom";
opacity = 1;
req_access_txt = "0"
opacity = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 2
@@ -6960,21 +6945,6 @@
},
/turf/open/floor/plating/airless,
/area/syndicate_mothership/control)
"tj" = (
/obj/machinery/porta_turret/syndicate/pod,
/turf/closed/wall/mineral/plastitanium,
/area/shuttle/assault_pod)
"tk" = (
/turf/closed/wall/mineral/plastitanium,
/area/shuttle/assault_pod)
"tl" = (
/obj/machinery/door/airlock/centcom{
name = "Assault Pod";
opacity = 1;
req_access_txt = "150"
},
/turf/open/floor/plating,
/area/shuttle/assault_pod)
"tn" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -7295,21 +7265,6 @@
},
/turf/open/floor/plating/airless,
/area/syndicate_mothership/control)
"uf" = (
/obj/structure/chair{
dir = 4
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/assault_pod)
"ug" = (
/turf/open/floor/mineral/plastitanium,
/area/shuttle/assault_pod)
"uh" = (
/obj/structure/chair{
dir = 8
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/assault_pod)
"ui" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -7338,8 +7293,7 @@
/obj/machinery/button/door{
id = "XCCFerry";
name = "Hanger Bay Shutters";
pixel_y = -38;
req_access_txt = "0"
pixel_y = -38
},
/turf/open/floor/plasteel/vault{
dir = 8
@@ -7536,13 +7490,6 @@
},
/turf/open/floor/mineral/plastitanium,
/area/syndicate_mothership/control)
"uN" = (
/obj/structure/chair{
dir = 1
},
/obj/machinery/light,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/assault_pod)
"uO" = (
/obj/machinery/door/airlock/centcom{
name = "Shuttle Control Office";
@@ -7770,19 +7717,6 @@
/obj/item/toy/nuke,
/turf/open/floor/wood,
/area/syndicate_mothership/control)
"vy" = (
/obj/machinery/door/airlock/centcom{
aiControlDisabled = 1;
name = "Assault Pod";
opacity = 1;
req_access_txt = "150"
},
/turf/open/floor/plating,
/area/shuttle/assault_pod)
"vz" = (
/obj/machinery/computer/shuttle/syndicate/drop_pod,
/turf/closed/wall/mineral/plastitanium,
/area/shuttle/assault_pod)
"vA" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/sign/directions/engineering{
@@ -8077,13 +8011,6 @@
dir = 2
},
/area/syndicate_mothership/control)
"wq" = (
/obj/structure/chair,
/obj/machinery/light{
dir = 1
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/assault_pod)
"wr" = (
/obj/structure/chair{
dir = 4
@@ -8227,8 +8154,7 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/centcom{
name = "CentCom";
opacity = 1;
req_access_txt = "0"
opacity = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -8336,8 +8262,7 @@
/area/space)
"xc" = (
/obj/machinery/door/airlock/external{
name = "Ferry Airlock";
req_access_txt = "0"
name = "Ferry Airlock"
},
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -8528,21 +8453,17 @@
/turf/open/floor/plating/airless,
/area/syndicate_mothership/control)
"xN" = (
/obj/machinery/door/airlock/centcom{
aiControlDisabled = 1;
name = "Assault Pod";
opacity = 1;
req_access_txt = "150"
},
/obj/docking_port/mobile/assault_pod{
/obj/docking_port/stationary{
area_type = /area/syndicate_mothership/control;
dir = 1;
dwidth = 3;
name = "steel rain";
port_direction = 4;
preferred_direction = 4;
timid = 0
height = 7;
name = "escape pod loader";
roundstart_template = /datum/map_template/shuttle/assault_pod/default;
width = 7
},
/turf/open/floor/plating,
/area/shuttle/assault_pod)
/turf/open/floor/plating/airless,
/area/syndicate_mothership/control)
"xO" = (
/obj/effect/turf_decal/stripes/line{
dir = 9
@@ -8847,8 +8768,7 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/centcom{
name = "CentCom";
opacity = 1;
req_access_txt = "0"
opacity = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -9971,7 +9891,6 @@
/obj/machinery/vending/wallmed{
name = "Emergency NanoMed";
pixel_y = -32;
req_access_txt = "0";
use_power = 0
},
/obj/effect/turf_decal/stripes/line{
@@ -10559,8 +10478,7 @@
"Eg" = (
/obj/machinery/door/airlock/centcom{
name = "Thunderdome Booth";
opacity = 1;
req_access_txt = "0"
opacity = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 2
@@ -11091,8 +11009,7 @@
"FK" = (
/obj/machinery/door/airlock/centcom{
name = "Thunderdome Backstage";
opacity = 1;
req_access_txt = "0"
opacity = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -11838,13 +11755,6 @@
},
/turf/open/floor/plasteel/bar,
/area/tdome/tdomeobserve)
"HE" = (
/obj/structure/table/wood,
/obj/machinery/chem_dispenser/drinks/beer,
/turf/open/floor/plasteel/vault{
dir = 8
},
/area/tdome/tdomeobserve)
"HF" = (
/obj/structure/sink{
dir = 4;
@@ -11939,13 +11849,6 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/tdome/tdomeobserve)
"HQ" = (
/obj/structure/table/wood,
/obj/machinery/chem_dispenser/drinks,
/turf/open/floor/plasteel/vault{
dir = 8
},
/area/tdome/tdomeobserve)
"HR" = (
/obj/structure/sink{
dir = 4;
@@ -12165,7 +12068,7 @@
},
/area/tdome/tdomeobserve)
"Is" = (
/obj/machinery/igniter,
/obj/machinery/igniter/on,
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
/area/tdome/arena)
@@ -13467,7 +13370,6 @@
"My" = (
/obj/docking_port/stationary{
area_type = /area/syndicate_mothership;
baseturf_type = /turf/open/floor/plating/asteroid/snow;
dheight = 1;
dir = 8;
dwidth = 12;
@@ -13475,7 +13377,6 @@
id = "syndicate_away";
name = "syndicate recon outpost";
roundstart_template = /datum/map_template/shuttle/infiltrator/basic;
turf_type = /turf/open/floor/plating/asteroid/snow;
width = 23
},
/turf/open/floor/plating/asteroid/snow/airless,
@@ -13529,8 +13430,7 @@
"NU" = (
/obj/machinery/door/airlock/centcom{
name = "CentCom";
opacity = 1;
req_access_txt = "0"
opacity = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 2
@@ -13544,8 +13444,7 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/centcom{
name = "CentCom";
opacity = 1;
req_access_txt = "0"
opacity = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -13581,6 +13480,10 @@
},
/turf/open/floor/plasteel,
/area/centcom/control)
"VX" = (
/obj/effect/landmark/shuttle_import,
/turf/open/space/basic,
/area/space)
"Wc" = (
/obj/machinery/door/airlock/centcom{
name = "CentCom Security";
@@ -13638,8 +13541,7 @@
/area/centcom/control)
"Xy" = (
/obj/machinery/door/airlock/external{
name = "Ferry Airlock";
req_access_txt = "0"
name = "Ferry Airlock"
},
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -34936,11 +34838,11 @@ aa
ku
sl
ti
tj
tk
vy
tk
tj
sk
sk
sk
sk
sk
xM
yk
ku
@@ -35192,13 +35094,13 @@ hh
aa
ku
sm
tj
tk
uf
ug
uf
tk
tj
sk
sk
sk
sk
sk
sk
sk
yl
ku
aa
@@ -35449,13 +35351,13 @@ hh
aa
ku
sn
tk
uf
ug
uh
ug
uf
tk
sk
sk
sk
sk
sk
sk
sk
ym
ku
aa
@@ -35706,12 +35608,12 @@ hh
aa
ku
sm
tl
ug
uN
vz
wq
ug
sk
sk
sk
sk
sk
sk
xN
yl
ku
@@ -35963,13 +35865,13 @@ hh
aa
ku
sm
tk
uh
ug
uf
ug
uh
tk
sk
sk
sk
sk
sk
sk
sk
yl
ku
aa
@@ -36097,7 +35999,7 @@ aa
aa
aa
aa
aa
VX
aa
aa
aa
@@ -36220,13 +36122,13 @@ hh
aa
ku
so
tj
tk
uh
ug
uh
tk
tj
sk
sk
sk
sk
sk
sk
sk
yl
ku
aa
@@ -36478,11 +36380,11 @@ aa
ku
sp
tn
tj
tk
vy
tk
tj
sk
sk
sk
sk
sk
xO
xP
ku
@@ -44640,7 +44542,7 @@ aa
aa
aa
aa
hH
ad
aa
aa
aa
@@ -53677,9 +53579,9 @@ iP
jy
jD
jL
jO
jO
jO
jc
jc
jc
iO
iO
iX
@@ -59893,8 +59795,8 @@ Ep
GU
GM
Hw
HE
HQ
oS
oT
HX
Ie
Iq
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+7 -10
View File
@@ -1109,10 +1109,9 @@
},
/area/mine/living_quarters)
"dn" = (
/obj/structure/table,
/obj/item/storage/firstaid/toxin{
pixel_x = 3;
pixel_y = 3
/obj/machinery/cryopod,
/obj/machinery/computer/cryopod{
pixel_y = 26
},
/turf/open/floor/plasteel/whiteblue/side{
dir = 5
@@ -1245,6 +1244,10 @@
"dE" = (
/obj/structure/table,
/obj/item/storage/firstaid/regular,
/obj/item/storage/firstaid/toxin{
pixel_x = 3;
pixel_y = 3
},
/turf/open/floor/plasteel/whiteblue/side{
dir = 4
},
@@ -2292,13 +2295,11 @@
"gY" = (
/obj/docking_port/stationary{
area_type = /area/lavaland/surface/outdoors;
baseturf_type = /turf/open/lava/smooth/lava_land_surface;
dir = 8;
dwidth = 2;
height = 5;
id = "laborcamp_away";
name = "labor camp";
turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
width = 9
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
@@ -3246,13 +3247,11 @@
"Uq" = (
/obj/docking_port/stationary{
area_type = /area/lavaland/surface/outdoors;
baseturf_type = /turf/open/lava/smooth/lava_land_surface;
dir = 2;
dwidth = 11;
height = 22;
id = "whiteship_lavaland";
name = "lavaland wastes";
turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
width = 35
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
@@ -3260,13 +3259,11 @@
"Wp" = (
/obj/docking_port/stationary{
area_type = /area/lavaland/surface/outdoors;
baseturf_type = /turf/open/lava/smooth/lava_land_surface;
dir = 8;
dwidth = 3;
height = 5;
id = "mining_away";
name = "lavaland mine";
turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface;
width = 7
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+4 -6
View File
@@ -257,9 +257,8 @@
},
/area/engine/atmos)
"aO" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 4;
on = 1
/obj/machinery/atmospherics/components/binary/pump/on{
dir = 4
},
/turf/open/floor/plasteel,
/area/engine/atmos)
@@ -374,9 +373,8 @@
},
/area/engine/atmos)
"bc" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 8;
on = 1
/obj/machinery/atmospherics/components/binary/pump/on{
dir = 8
},
/turf/open/floor/plasteel,
/area/engine/atmos)
+89 -169
View File
@@ -1918,7 +1918,7 @@
/turf/closed/indestructible/riveted,
/area/space)
"fy" = (
/obj/machinery/igniter,
/obj/machinery/igniter/on,
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
/area/tdome/arena_source)
@@ -2526,10 +2526,6 @@
/obj/machinery/capture_the_flag/red,
/turf/open/floor/circuit/green/anim,
/area/ctf)
"hH" = (
/obj/effect/landmark/shuttle_import,
/turf/open/space,
/area/space)
"hI" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -2994,19 +2990,17 @@
/turf/open/floor/plating,
/area/centcom/supply)
"jc" = (
/obj/machinery/conveyor{
dir = 1;
id = "XCCQMLoad2";
movedir = 2
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/machinery/conveyor{
dir = 1;
id = "XCCQMLoad2"
},
/turf/open/floor/plasteel,
/area/centcom/supply)
"jd" = (
/obj/machinery/conveyor_switch/oneway{
convdir = 1;
id = "XCCQMLoad2";
pixel_x = 6
},
@@ -3074,26 +3068,24 @@
id = "XCCQMLoaddoor2";
name = "Supply Dock Loading Door"
},
/obj/machinery/conveyor{
dir = 4;
id = "XCCQMLoad2";
movedir = 8
},
/obj/effect/turf_decal/stripes/end{
dir = 8
},
/obj/machinery/conveyor{
dir = 4;
id = "XCCQMLoad2"
},
/turf/open/floor/plasteel,
/area/centcom/supply)
"jl" = (
/obj/structure/plasticflaps,
/obj/machinery/conveyor{
dir = 4;
id = "XCCQMLoad2";
movedir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 2
},
/obj/machinery/conveyor{
dir = 4;
id = "XCCQMLoad2"
},
/turf/open/floor/plasteel,
/area/centcom/supply)
"jm" = (
@@ -3102,23 +3094,21 @@
id = "XCCQMLoaddoor2";
name = "Supply Dock Loading Door"
},
/obj/machinery/conveyor{
dir = 4;
id = "XCCQMLoad2";
movedir = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 2
},
/obj/machinery/conveyor{
dir = 4;
id = "XCCQMLoad2"
},
/turf/open/floor/plasteel,
/area/centcom/supply)
"jn" = (
/obj/machinery/conveyor{
dir = 1;
id = "XCCQMLoad2";
movedir = 2
},
/obj/effect/turf_decal/stripes/end,
/obj/machinery/conveyor/inverted{
dir = 10;
id = "XCCQMLoad2"
},
/turf/open/floor/plasteel,
/area/centcom/supply)
"jo" = (
@@ -3314,13 +3304,13 @@
/turf/open/floor/plasteel,
/area/centcom/supply)
"jL" = (
/obj/machinery/conveyor{
dir = 8;
id = "XCCQMLoad"
},
/obj/effect/turf_decal/stripes/end{
dir = 1
},
/obj/machinery/conveyor/inverted{
dir = 6;
id = "XCCQMLoad2"
},
/turf/open/floor/plasteel,
/area/centcom/supply)
"jM" = (
@@ -3334,20 +3324,9 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/centcom/supply)
"jO" = (
/obj/machinery/conveyor{
dir = 1;
id = "XCCQMLoad";
movedir = 2
},
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/turf/open/floor/plasteel,
/area/centcom/supply)
"jP" = (
/obj/machinery/conveyor_switch/oneway{
convdir = 1;
dir = 8;
id = "XCCQMLoad";
pixel_x = 6
},
@@ -3525,7 +3504,6 @@
height = 50;
id = "emergency_syndicate";
name = "Syndicate Auxillary Shuttle Dock";
turf_type = /turf/open/floor/plating/asteroid/snow;
width = 50
},
/turf/open/floor/plating/asteroid/snow/airless,
@@ -6967,21 +6945,6 @@
},
/turf/open/floor/plating/airless,
/area/syndicate_mothership/control)
"tj" = (
/obj/machinery/porta_turret/syndicate/pod,
/turf/closed/wall/mineral/plastitanium,
/area/shuttle/assault_pod)
"tk" = (
/turf/closed/wall/mineral/plastitanium,
/area/shuttle/assault_pod)
"tl" = (
/obj/machinery/door/airlock/centcom{
name = "Assault Pod";
opacity = 1;
req_access_txt = "150"
},
/turf/open/floor/plating,
/area/shuttle/assault_pod)
"tn" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -7302,21 +7265,6 @@
},
/turf/open/floor/plating/airless,
/area/syndicate_mothership/control)
"uf" = (
/obj/structure/chair{
dir = 4
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/assault_pod)
"ug" = (
/turf/open/floor/mineral/plastitanium,
/area/shuttle/assault_pod)
"uh" = (
/obj/structure/chair{
dir = 8
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/assault_pod)
"ui" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -7542,13 +7490,6 @@
},
/turf/open/floor/mineral/plastitanium,
/area/syndicate_mothership/control)
"uN" = (
/obj/structure/chair{
dir = 1
},
/obj/machinery/light,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/assault_pod)
"uO" = (
/obj/machinery/door/airlock/centcom{
name = "Shuttle Control Office";
@@ -7776,19 +7717,6 @@
/obj/item/toy/nuke,
/turf/open/floor/wood,
/area/syndicate_mothership/control)
"vy" = (
/obj/machinery/door/airlock/centcom{
aiControlDisabled = 1;
name = "Assault Pod";
opacity = 1;
req_access_txt = "150"
},
/turf/open/floor/plating,
/area/shuttle/assault_pod)
"vz" = (
/obj/machinery/computer/shuttle/syndicate/drop_pod,
/turf/closed/wall/mineral/plastitanium,
/area/shuttle/assault_pod)
"vA" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/sign/directions/engineering{
@@ -8083,13 +8011,6 @@
dir = 2
},
/area/syndicate_mothership/control)
"wq" = (
/obj/structure/chair,
/obj/machinery/light{
dir = 1
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/assault_pod)
"wr" = (
/obj/structure/chair{
dir = 4
@@ -8532,20 +8453,17 @@
/turf/open/floor/plating/airless,
/area/syndicate_mothership/control)
"xN" = (
/obj/machinery/door/airlock/centcom{
aiControlDisabled = 1;
name = "Assault Pod";
opacity = 1;
req_access_txt = "150"
},
/obj/docking_port/mobile/assault_pod{
/obj/docking_port/stationary{
area_type = /area/syndicate_mothership/control;
dir = 1;
dwidth = 3;
name = "steel rain";
port_direction = 4;
preferred_direction = 4
height = 7;
name = "escape pod loader";
roundstart_template = /datum/map_template/shuttle/assault_pod/default;
width = 7
},
/turf/open/floor/plating,
/area/shuttle/assault_pod)
/turf/open/floor/plating/airless,
/area/syndicate_mothership/control)
"xO" = (
/obj/effect/turf_decal/stripes/line{
dir = 9
@@ -12150,7 +12068,7 @@
},
/area/tdome/tdomeobserve)
"Is" = (
/obj/machinery/igniter,
/obj/machinery/igniter/on,
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
/area/tdome/arena)
@@ -13452,7 +13370,6 @@
"My" = (
/obj/docking_port/stationary{
area_type = /area/syndicate_mothership;
baseturf_type = /turf/open/floor/plating/asteroid/snow;
dheight = 1;
dir = 8;
dwidth = 12;
@@ -13460,7 +13377,6 @@
id = "syndicate_away";
name = "syndicate recon outpost";
roundstart_template = /datum/map_template/shuttle/infiltrator/basic;
turf_type = /turf/open/floor/plating/asteroid/snow;
width = 23
},
/turf/open/floor/plating/asteroid/snow/airless,
@@ -13564,6 +13480,10 @@
},
/turf/open/floor/plasteel,
/area/centcom/control)
"VX" = (
/obj/effect/landmark/shuttle_import,
/turf/open/space/basic,
/area/space)
"Wc" = (
/obj/machinery/door/airlock/centcom{
name = "CentCom Security";
@@ -34918,11 +34838,11 @@ aa
ku
sl
ti
tj
tk
vy
tk
tj
sk
sk
sk
sk
sk
xM
yk
ku
@@ -35174,13 +35094,13 @@ hh
aa
ku
sm
tj
tk
uf
ug
uf
tk
tj
sk
sk
sk
sk
sk
sk
sk
yl
ku
aa
@@ -35431,13 +35351,13 @@ hh
aa
ku
sn
tk
uf
ug
uh
ug
uf
tk
sk
sk
sk
sk
sk
sk
sk
ym
ku
aa
@@ -35688,12 +35608,12 @@ hh
aa
ku
sm
tl
ug
uN
vz
wq
ug
sk
sk
sk
sk
sk
sk
xN
yl
ku
@@ -35945,13 +35865,13 @@ hh
aa
ku
sm
tk
uh
ug
uf
ug
uh
tk
sk
sk
sk
sk
sk
sk
sk
yl
ku
aa
@@ -36079,7 +35999,7 @@ aa
aa
aa
aa
aa
VX
aa
aa
aa
@@ -36202,13 +36122,13 @@ hh
aa
ku
so
tj
tk
uh
ug
uh
tk
tj
sk
sk
sk
sk
sk
sk
sk
yl
ku
aa
@@ -36460,11 +36380,11 @@ aa
ku
sp
tn
tj
tk
vy
tk
tj
sk
sk
sk
sk
sk
xO
xP
ku
@@ -44622,7 +44542,7 @@ aa
aa
aa
aa
hH
ad
aa
aa
aa
@@ -53659,9 +53579,9 @@ iP
jy
jD
jL
jO
jO
jO
jc
jc
jc
iO
iO
iX
+311
View File
@@ -0,0 +1,311 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/template_noop,
/area/template_noop)
"b" = (
/obj/structure/shuttle/engine/propulsion{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/turf/open/floor/plasteel/airless,
/area/shuttle/arrival)
"c" = (
/obj/docking_port/mobile/arrivals{
dir = 2;
dwidth = 2;
height = 16;
name = "omega arrivals shuttle";
width = 5
},
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/shuttle/arrival)
"d" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/shuttle/arrival)
"e" = (
/obj/structure/shuttle/engine/heater{
dir = 1
},
/obj/structure/window/reinforced,
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/turf/open/floor/plasteel/airless,
/area/shuttle/arrival)
"f" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/arrival)
"g" = (
/obj/structure/closet/wardrobe/grey{
anchored = 1
},
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel/neutral/corner,
/area/shuttle/arrival)
"h" = (
/obj/structure/closet/emcloset{
anchored = 1
},
/obj/machinery/vending/wallmed{
pixel_y = 32
},
/obj/item/storage/toolbox/emergency,
/obj/item/storage/toolbox/emergency,
/obj/item/clothing/suit/hazardvest,
/obj/item/clothing/suit/hazardvest,
/obj/item/clothing/suit/hazardvest,
/obj/item/clothing/suit/hazardvest,
/obj/item/clothing/head/hardhat/orange,
/obj/item/clothing/head/hardhat/orange,
/obj/item/clothing/head/hardhat/orange,
/obj/item/clothing/head/hardhat/orange,
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel/neutral/side,
/area/shuttle/arrival)
"i" = (
/obj/structure/closet/wardrobe/mixed{
anchored = 1
},
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel/neutral/corner{
dir = 8
},
/area/shuttle/arrival)
"j" = (
/obj/machinery/door/airlock/shuttle,
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/effect/turf_decal/stripes/line{
dir = 9
},
/turf/open/floor/plating,
/area/shuttle/arrival)
"k" = (
/obj/effect/turf_decal/caution{
dir = 4
},
/turf/open/floor/plasteel/neutral/side{
dir = 4
},
/area/shuttle/arrival)
"l" = (
/turf/open/floor/plasteel/neutral,
/area/shuttle/arrival)
"m" = (
/obj/machinery/light{
dir = 4
},
/obj/structure/sign/poster/official/enlist{
pixel_x = 32
},
/turf/open/floor/plasteel/neutral/side{
dir = 8
},
/area/shuttle/arrival)
"n" = (
/obj/structure/extinguisher_cabinet{
pixel_x = -26
},
/turf/open/floor/plasteel/neutral/corner{
dir = 4
},
/area/shuttle/arrival)
"o" = (
/obj/item/twohanded/required/kirbyplants/random,
/turf/open/floor/plasteel/neutral/corner{
dir = 1
},
/area/shuttle/arrival)
"p" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating,
/area/shuttle/arrival)
"q" = (
/obj/structure/chair{
dir = 4
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/shuttle/arrival)
"r" = (
/obj/structure/chair{
dir = 8
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/shuttle/arrival)
"s" = (
/obj/structure/table/reinforced,
/obj/item/device/radio/intercom{
pixel_x = -30
},
/obj/item/paper_bin,
/obj/item/pen,
/turf/open/floor/plasteel,
/area/shuttle/arrival)
"t" = (
/obj/structure/table/reinforced,
/obj/machinery/light{
dir = 4
},
/obj/machinery/cell_charger,
/turf/open/floor/plasteel/neutral/side{
dir = 8
},
/area/shuttle/arrival)
"u" = (
/turf/open/floor/plasteel/neutral/corner{
dir = 4
},
/area/shuttle/arrival)
"v" = (
/turf/open/floor/plasteel/neutral/side{
dir = 1
},
/area/shuttle/arrival)
"w" = (
/obj/structure/closet/crate/internals,
/obj/item/storage/firstaid/o2,
/obj/item/tank/internals/emergency_oxygen,
/obj/item/tank/internals/emergency_oxygen,
/obj/item/tank/internals/emergency_oxygen,
/obj/item/tank/internals/emergency_oxygen,
/obj/item/clothing/mask/breath,
/obj/item/clothing/mask/breath,
/obj/item/clothing/mask/breath,
/obj/item/clothing/mask/breath,
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel/neutral/corner{
dir = 1
},
/area/shuttle/arrival)
"x" = (
/obj/machinery/door/airlock/shuttle/glass,
/turf/open/floor/plasteel,
/area/shuttle/arrival)
"y" = (
/obj/machinery/light/small{
dir = 4
},
/obj/structure/chair/office/light,
/turf/open/floor/plasteel,
/area/shuttle/arrival)
"z" = (
/obj/machinery/computer{
dir = 1;
name = "Shuttle computer"
},
/turf/open/floor/plasteel,
/area/shuttle/arrival)
"C" = (
/obj/structure/table/reinforced,
/obj/item/storage/pill_bottle/dice{
pixel_x = -2;
pixel_y = 8
},
/obj/item/toy/cards/deck,
/obj/machinery/requests_console{
department = "Arrival shuttle";
name = "Arrival shuttle requests console";
pixel_x = 32
},
/turf/open/floor/plasteel,
/area/shuttle/arrival)
"F" = (
/obj/structure/sign/nanotrasen,
/turf/closed/wall/mineral/titanium,
/area/shuttle/arrival)
(1,1,1) = {"
a
d
f
j
f
p
p
d
p
p
j
F
f
a
a
a
"}
(2,1,1) = {"
b
e
g
k
n
q
q
s
q
q
k
u
f
f
p
p
"}
(3,1,1) = {"
c
d
h
l
l
l
l
l
l
l
l
v
x
y
z
p
"}
(4,1,1) = {"
b
e
i
m
o
r
r
C
r
r
t
w
f
f
p
p
"}
(5,1,1) = {"
a
d
f
f
f
p
p
d
p
p
f
F
f
a
a
a
"}
+141
View File
@@ -0,0 +1,141 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"b" = (
/obj/machinery/porta_turret/syndicate/pod,
/turf/closed/wall/mineral/plastitanium,
/area/shuttle/assault_pod)
"c" = (
/obj/structure/chair{
dir = 4
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/assault_pod)
"d" = (
/turf/closed/wall/mineral/plastitanium,
/area/shuttle/assault_pod)
"e" = (
/obj/machinery/door/airlock/centcom{
aiControlDisabled = 1;
name = "Assault Pod";
opacity = 1;
req_access_txt = "150"
},
/obj/docking_port/mobile/assault_pod{
dwidth = 3;
name = "steel rain";
port_direction = 4;
preferred_direction = 4;
timid = 1
},
/turf/open/floor/plating,
/area/shuttle/assault_pod)
"h" = (
/obj/machinery/computer/shuttle/syndicate/drop_pod,
/turf/closed/wall/mineral/plastitanium,
/area/shuttle/assault_pod)
"p" = (
/turf/open/floor/mineral/plastitanium,
/area/shuttle/assault_pod)
"t" = (
/obj/machinery/door/airlock/centcom{
aiControlDisabled = 1;
name = "Assault Pod";
opacity = 1;
req_access_txt = "150"
},
/turf/open/floor/plating,
/area/shuttle/assault_pod)
"D" = (
/obj/structure/chair,
/obj/machinery/light{
dir = 1
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/assault_pod)
"H" = (
/obj/structure/chair{
dir = 8
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/assault_pod)
"L" = (
/obj/structure/chair{
dir = 1
},
/obj/machinery/light,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/assault_pod)
"R" = (
/obj/machinery/door/airlock/centcom{
name = "Assault Pod";
opacity = 1;
req_access_txt = "150"
},
/turf/open/floor/plating,
/area/shuttle/assault_pod)
"V" = (
/turf/template_noop,
/area/template_noop)
(1,1,1) = {"
V
b
d
t
d
b
V
"}
(2,1,1) = {"
b
d
c
p
c
d
b
"}
(3,1,1) = {"
d
c
p
H
p
c
d
"}
(4,1,1) = {"
R
p
L
h
D
p
e
"}
(5,1,1) = {"
d
H
p
c
p
H
d
"}
(6,1,1) = {"
b
d
H
p
H
d
b
"}
(7,1,1) = {"
V
b
d
t
d
b
V
"}
+1 -1
View File
@@ -55,7 +55,7 @@
/area/shuttle/supply)
"j" = (
/obj/machinery/conveyor{
dir = 4;
dir = 8;
id = "QMLoad"
},
/obj/machinery/door/poddoor{
+12 -8
View File
@@ -65,6 +65,10 @@
/obj/structure/healingfountain,
/turf/open/indestructible/necropolis/air,
/area/shuttle/escape/arena)
"z" = (
/obj/effect/landmark/shuttle_arena_safe,
/turf/open/indestructible/necropolis/air,
/area/shuttle/escape/arena)
(1,1,1) = {"
a
@@ -309,16 +313,16 @@ h
h
j
j
z
j
j
j
j
z
j
h
z
j
j
j
j
z
j
j
j
@@ -465,16 +469,16 @@ h
h
j
j
z
j
j
z
j
j
j
j
j
z
j
h
j
z
j
j
j
+2 -2
View File
@@ -112,7 +112,7 @@
/turf/open/floor/plating,
/area/shuttle/escape)
"aB" = (
/obj/machinery/power/supermatter_shard/hugbox{
/obj/machinery/power/supermatter_crystal/shard/hugbox{
anchored = 1;
base_icon_state = "darkmatter";
explosion_power = 20;
@@ -210,7 +210,7 @@
/turf/open/floor/plating/airless,
/area/shuttle/escape)
"aV" = (
/obj/machinery/power/supermatter_shard/hugbox{
/obj/machinery/power/supermatter_crystal/shard/hugbox{
anchored = 1;
name = "anchored supermatter shard"
},
+71
View File
@@ -0,0 +1,71 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"B" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/pod_1)
"G" = (
/obj/structure/chair{
dir = 1
},
/obj/machinery/status_display{
pixel_x = 32
},
/obj/machinery/computer/shuttle/pod{
pixel_x = -32
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/pod_1)
"N" = (
/obj/machinery/door/airlock/titanium{
name = "Escape Pod Airlock"
},
/obj/docking_port/mobile/pod{
port_direction = 2;
timid = 1;
dwidth = 1;
width = 3;
height = 4
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/pod_1)
"Q" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating,
/area/shuttle/pod_1)
"U" = (
/obj/structure/chair{
dir = 1
},
/obj/item/device/radio/intercom{
pixel_x = 25
},
/obj/item/storage/pod{
pixel_x = -26
},
/obj/machinery/light/small{
dir = 8
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/pod_1)
"Z" = (
/obj/structure/shuttle/engine/propulsion/burst,
/turf/closed/wall/mineral/titanium,
/area/shuttle/pod_1)
(1,1,1) = {"
B
B
B
Z
"}
(2,1,1) = {"
Q
G
U
N
"}
(3,1,1) = {"
B
B
B
Z
"}
+129
View File
@@ -0,0 +1,129 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"h" = (
/obj/structure/chair{
dir = 4
},
/obj/item/storage/pod{
pixel_x = -24
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/pod_1)
"r" = (
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/pod_1)
"u" = (
/obj/structure/grille,
/obj/structure/window/shuttle,
/turf/open/floor/plating,
/area/shuttle/pod_1)
"A" = (
/obj/structure/chair{
dir = 8
},
/obj/item/device/radio/intercom{
pixel_x = 30
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/pod_1)
"B" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/pod_1)
"C" = (
/obj/machinery/computer/shuttle/monastery_shuttle,
/obj/machinery/light{
dir = 1
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/pod_1)
"H" = (
/obj/structure/chair{
dir = 8
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/pod_1)
"J" = (
/obj/structure/chair{
dir = 4
},
/obj/machinery/status_display{
pixel_x = -32
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/pod_1)
"L" = (
/obj/structure/chair{
dir = 4
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/pod_1)
"M" = (
/obj/structure/chair{
dir = 8
},
/obj/machinery/status_display{
pixel_x = 32
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/pod_1)
"O" = (
/obj/machinery/door/airlock/titanium{
name = "Shuttle Airlock"
},
/obj/docking_port/mobile/pod{
dwidth = 2;
height = 6;
launch_status = 0;
port_direction = 2;
timid = 1;
width = 5
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/pod_1)
"W" = (
/turf/template_noop,
/area/template_noop)
"Z" = (
/obj/structure/shuttle/engine/propulsion/burst,
/turf/closed/wall/mineral/titanium,
/area/shuttle/pod_1)
(1,1,1) = {"
W
B
B
u
B
Z
"}
(2,1,1) = {"
B
B
J
L
h
Z
"}
(3,1,1) = {"
u
C
r
r
r
O
"}
(4,1,1) = {"
B
B
M
H
A
Z
"}
(5,1,1) = {"
W
B
B
u
B
Z
"}
+2 -3
View File
@@ -263,10 +263,9 @@
/turf/open/floor/wood,
/area/shuttle/transport)
"bg" = (
/obj/machinery/conveyor{
/obj/machinery/conveyor/inverted{
dir = 10;
id = "garbage";
verted = -1
id = "garbage"
},
/turf/open/floor/wood,
/area/shuttle/transport)
File diff suppressed because it is too large Load Diff
+9 -13
View File
@@ -60,14 +60,14 @@
#define DNA_UNIQUE_ENZYMES_LEN 32
//Transformation proc stuff
#define TR_KEEPITEMS 1
#define TR_KEEPVIRUS 2
#define TR_KEEPDAMAGE 4
#define TR_HASHNAME 8 // hashing names (e.g. monkey(e34f)) (only in monkeyize)
#define TR_KEEPIMPLANTS 16
#define TR_KEEPSE 32 // changelings shouldn't edit the DNA's SE when turning into a monkey
#define TR_DEFAULTMSG 64
#define TR_KEEPORGANS 256
#define TR_KEEPITEMS (1<<0)
#define TR_KEEPVIRUS (1<<1)
#define TR_KEEPDAMAGE (1<<2)
#define TR_HASHNAME (1<<3) // hashing names (e.g. monkey(e34f)) (only in monkeyize)
#define TR_KEEPIMPLANTS (1<<4)
#define TR_KEEPSE (1<<5) // changelings shouldn't edit the DNA's SE when turning into a monkey
#define TR_DEFAULTMSG (1<<6)
#define TR_KEEPORGANS (1<<8)
#define CLONER_FRESH_CLONE "fresh"
@@ -89,11 +89,7 @@
#define NOSTOMACH 13
#define NO_DNA_COPY 14
#define DRINKSBLOOD 15
#define SPECIES_ORGANIC 16
#define SPECIES_INORGANIC 17
#define SPECIES_UNDEAD 18
#define SPECIES_ROBOTIC 19
#define NOEYES 20
#define NOEYES 16
#define ORGAN_SLOT_BRAIN "brain"
#define ORGAN_SLOT_APPENDIX "appendix"
+21 -21
View File
@@ -1,12 +1,12 @@
//A set of constants used to determine which type of mute an admin wishes to apply:
//Please read and understand the muting/automuting stuff before changing these. MUTE_IC_AUTO etc = (MUTE_IC << 1)
//Therefore there needs to be a gap between the flags for the automute flags
#define MUTE_IC 1
#define MUTE_OOC 2
#define MUTE_PRAY 4
#define MUTE_ADMINHELP 8
#define MUTE_DEADCHAT 16
#define MUTE_ALL 31
#define MUTE_IC (1<<0)
#define MUTE_OOC (1<<1)
#define MUTE_PRAY (1<<2)
#define MUTE_ADMINHELP (1<<3)
#define MUTE_DEADCHAT (1<<4)
#define MUTE_ALL (~0)
//Some constants for DB_Ban
#define BANTYPE_PERMA 1
@@ -20,21 +20,21 @@
#define BANTYPE_ANY_JOB 9 //used to remove jobbans
//Admin Permissions
#define R_BUILDMODE 0x1
#define R_ADMIN 0x2
#define R_BAN 0x4
#define R_FUN 0x8
#define R_SERVER 0x10
#define R_DEBUG 0x20
#define R_POSSESS 0x40
#define R_PERMISSIONS 0x80
#define R_STEALTH 0x100
#define R_POLL 0x200
#define R_VAREDIT 0x400
#define R_SOUNDS 0x800
#define R_SPAWN 0x1000
#define R_AUTOLOGIN 0x2000
#define R_DBRANKS 0x4000
#define R_BUILDMODE (1<<0)
#define R_ADMIN (1<<1)
#define R_BAN (1<<2)
#define R_FUN (1<<3)
#define R_SERVER (1<<4)
#define R_DEBUG (1<<5)
#define R_POSSESS (1<<6)
#define R_PERMISSIONS (1<<7)
#define R_STEALTH (1<<8)
#define R_POLL (1<<9)
#define R_VAREDIT (1<<10)
#define R_SOUNDS (1<<11)
#define R_SPAWN (1<<12)
#define R_AUTOLOGIN (1<<13)
#define R_DBRANKS (1<<14)
#define R_DEFAULT R_AUTOLOGIN
+4 -4
View File
@@ -201,10 +201,10 @@
#define PIPING_LAYER_P_Y 5
#define PIPING_LAYER_LCHANGE 0.05
#define PIPING_ALL_LAYER 1 //intended to connect with all layers, check for all instead of just one.
#define PIPING_ONE_PER_TURF 2 //can only be built if nothing else with this flag is on the tile already.
#define PIPING_DEFAULT_LAYER_ONLY 4 //can only exist at PIPING_LAYER_DEFAULT
#define PIPING_CARDINAL_AUTONORMALIZE 8 //north/south east/west doesn't matter, auto normalize on build.
#define PIPING_ALL_LAYER (1<<0) //intended to connect with all layers, check for all instead of just one.
#define PIPING_ONE_PER_TURF (1<<1) //can only be built if nothing else with this flag is on the tile already.
#define PIPING_DEFAULT_LAYER_ONLY (1<<2) //can only exist at PIPING_LAYER_DEFAULT
#define PIPING_CARDINAL_AUTONORMALIZE (1<<3) //north/south east/west doesn't matter, auto normalize on build.
//HELPERS
#define THERMAL_ENERGY(gas) (gas.temperature * gas.heat_capacity())
+11 -11
View File
@@ -12,12 +12,12 @@
#define BRAIN "brain"
//bitflag damage defines used for suicide_act
#define BRUTELOSS 1
#define FIRELOSS 2
#define TOXLOSS 4
#define OXYLOSS 8
#define SHAME 16
#define MANUAL_SUICIDE 32 //suicide_act will do the actual killing.
#define BRUTELOSS (1<<0)
#define FIRELOSS (1<<1)
#define TOXLOSS (1<<2)
#define OXYLOSS (1<<3)
#define SHAME (1<<4)
#define MANUAL_SUICIDE (1<<5) //suicide_act will do the actual killing.
#define EFFECT_STUN "stun"
#define EFFECT_KNOCKDOWN "knockdown"
@@ -30,11 +30,11 @@
#define EFFECT_JITTER "jitter"
//Bitflags defining which status effects could be or are inflicted on a mob
#define CANSTUN 1
#define CANKNOCKDOWN 2
#define CANUNCONSCIOUS 4
#define CANPUSH 8
#define GODMODE 16
#define CANSTUN (1<<0)
#define CANKNOCKDOWN (1<<1)
#define CANUNCONSCIOUS (1<<2)
#define CANPUSH (1<<3)
#define GODMODE (1<<4)
//Health Defines
#define HEALTH_THRESHOLD_CRIT 0
+21 -9
View File
@@ -6,10 +6,10 @@
// How multiple components of the exact same type are handled in the same datum
#define COMPONENT_DUPE_HIGHLANDER 0 //old component is deleted (default)
#define COMPONENT_DUPE_ALLOWED 1 //duplicates allowed
#define COMPONENT_DUPE_UNIQUE 2 //new component is deleted
#define COMPONENT_DUPE_UNIQUE_PASSARGS 4 //old component is given the initialization args of the new
#define COMPONENT_DUPE_HIGHLANDER 0 //old component is deleted (default)
#define COMPONENT_DUPE_ALLOWED 1 //duplicates allowed
#define COMPONENT_DUPE_UNIQUE 2 //new component is deleted
#define COMPONENT_DUPE_UNIQUE_PASSARGS 4 //old component is given the initialization args of the new
// All signals. Format:
// When the signal is called: (signal arguments)
@@ -47,10 +47,6 @@
#define COMSIG_ATOM_SET_LIGHT "atom_set_light" //from base of atom/set_light(): (l_range, l_power, l_color)
#define COMSIG_ATOM_ROTATE "atom_rotate" //from base of atom/shuttleRotate(): (rotation, params)
#define COMSIG_ATOM_DIR_CHANGE "atom_dir_change" //from base of atom/setDir(): (old_dir, new_dir)
#define COMSIG_ENTER_AREA "enter_area" //from base of area/Entered(): (/area)
#define COMSIG_EXIT_AREA "exit_area" //from base of area/Exited(): (/area)
#define COMSIG_ATOM_CONTENTS_DEL "atom_contents_del" //from base of atom/handle_atom_del(): (atom/deleted)
/////////////////
#define COMSIG_ATOM_ATTACK_GHOST "atom_attack_ghost" //from base of atom/attack_ghost(): (mob/dead/observer/ghost)
@@ -59,6 +55,9 @@
#define COMPONENT_NO_ATTACK_HAND 1 //works on all 3.
/////////////////
#define COMSIG_ENTER_AREA "enter_area" //from base of area/Entered(): (/area)
#define COMSIG_EXIT_AREA "exit_area" //from base of area/Exited(): (/area)
#define COMSIG_CLICK "atom_click" //from base of atom/Click(): (location, control, params)
#define COMSIG_CLICK_SHIFT "shift_click" //from base of atom/ShiftClick(): (/mob)
#define COMSIG_CLICK_CTRL "ctrl_click" //from base of atom/CtrlClickOn(): (/mob)
@@ -72,7 +71,6 @@
#define COMSIG_AREA_ENTERED "area_entered" //from base of area/Entered(): (atom/movable/M)
#define COMSIG_AREA_EXITED "area_exited" //from base of area/Exited(): (atom/movable/M)
// /atom/movable signals
#define COMSIG_MOVABLE_MOVED "movable_moved" //from base of atom/movable/Moved(): (/atom, dir)
#define COMSIG_MOVABLE_CROSSED "movable_crossed" //from base of atom/movable/Crossed(): (/atom/movable)
@@ -127,6 +125,20 @@
//NTnet
#define COMSIG_COMPONENT_NTNET_RECIEVE "ntnet_recieve" //called on an object by its NTNET connection component on recieve. (sending_id(number), sending_netname(text), data(datum/netdata))
// /datum/component/storage signals
#define COMSIG_CONTAINS_STORAGE "is_storage" //() - returns bool.
#define COMSIG_TRY_STORAGE_INSERT "storage_try_insert" //(obj/item/inserting, mob/user, silent, force) - returns bool
#define COMSIG_TRY_STORAGE_SHOW "storage_show_to" //(mob/show_to, force) - returns bool.
#define COMSIG_TRY_STORAGE_HIDE_FROM "storage_hide_from" //(mob/hide_from) - returns bool
#define COMSIG_TRY_STORAGE_HIDE_ALL "storage_hide_all" //returns bool
#define COMSIG_TRY_STORAGE_SET_LOCKSTATE "storage_lock_set_state" //(newstate)
#define COMSIG_IS_STORAGE_LOCKED "storage_get_lockstate" //() - returns bool. MUST CHECK IF STORAGE IS THERE FIRST!
#define COMSIG_TRY_STORAGE_TAKE_TYPE "storage_take_type" //(type, atom/destination, amount = INFINITY, check_adjacent, force, mob/user, list/inserted) - returns bool - type can be a list of types.
#define COMSIG_TRY_STORAGE_FILL_TYPE "storage_fill_type" //(type, amount = INFINITY, force = FALSE) //don't fuck this up. Force will ignore max_items, and amount is normally clamped to max_items.
#define COMSIG_TRY_STORAGE_TAKE "storage_take_obj" //(obj, new_loc, force = FALSE) - returns bool
#define COMSIG_TRY_STORAGE_QUICK_EMPTY "storage_quick_empty" //(loc) - returns bool - if loc is null it will dump at parent location.
#define COMSIG_TRY_STORAGE_RETURN_INVENTORY "storage_return_inventory" //(list/list_to_inject_results_into)
#define COMSIG_TRY_STORAGE_CAN_INSERT "storage_can_equip" //(obj/item/insertion_candidate, mob/user, silent) - returns bool
/*******Non-Signal Component Related Defines*******/
+1 -1
View File
@@ -14,7 +14,7 @@
#define SUPPORT_LINES 1
#define COVER 2
#define CUT_COVER 3
#define BOLTS 4
#define ANCHOR_BOLTS 4
#define SUPPORT_RODS 5
#define SHEATH 6
+11 -11
View File
@@ -3,21 +3,21 @@
#define VIRUS_SYMPTOM_LIMIT 6
//Visibility Flags
#define HIDDEN_SCANNER 1
#define HIDDEN_PANDEMIC 2
#define HIDDEN_SCANNER (1<<0)
#define HIDDEN_PANDEMIC (1<<1)
//Disease Flags
#define CURABLE 1
#define CAN_CARRY 2
#define CAN_RESIST 4
#define CURABLE (1<<0)
#define CAN_CARRY (1<<1)
#define CAN_RESIST (1<<2)
//Spread Flags
#define DISEASE_SPREAD_SPECIAL 1
#define DISEASE_SPREAD_NON_CONTAGIOUS 2
#define DISEASE_SPREAD_BLOOD 4
#define DISEASE_SPREAD_CONTACT_FLUIDS 8
#define DISEASE_SPREAD_CONTACT_SKIN 16
#define DISEASE_SPREAD_AIRBORNE 32
#define DISEASE_SPREAD_SPECIAL (1<<0)
#define DISEASE_SPREAD_NON_CONTAGIOUS (1<<1)
#define DISEASE_SPREAD_BLOOD (1<<2)
#define DISEASE_SPREAD_CONTACT_FLUIDS (1<<3)
#define DISEASE_SPREAD_CONTACT_SKIN (1<<4)
#define DISEASE_SPREAD_AIRBORNE (1<<5)
//Severity Defines
#define DISEASE_SEVERITY_POSITIVE "Positive" //Diseases that buff, heal, or at least do nothing at all
+56 -56
View File
@@ -1,103 +1,103 @@
/*
These defines are specific to the atom/flags_1 bitmask
*/
#define ALL ~0 //For convenience.
#define ALL (~0) //For convenience.
#define NONE 0
GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768))
// for /datum/var/datum_flags
#define DF_USE_TAG 1
#define DF_VAR_EDITED 2
#define DF_USE_TAG (1<<0)
#define DF_VAR_EDITED (1<<1)
//FLAGS BITMASK
#define STOPSPRESSUREDMAGE_1 1 //This flag is used on the flags_1 variable for SUIT and HEAD items which stop pressure damage. Note that the flag 1 was previous used as ONBACK, so it is possible for some code to use (flags & 1) when checking if something can be put on your back. Replace this code with (inv_flags & SLOT_BACK) if you see it anywhere
#define STOPSPRESSUREDMAGE_1 (1<<0) //This flag is used on the flags_1 variable for SUIT and HEAD items which stop pressure damage. Note that the flag 1 was previous used as ONBACK, so it is possible for some code to use (flags & 1) when checking if something can be put on your back. Replace this code with (inv_flags & SLOT_BACK) if you see it anywhere
//To successfully stop you taking all pressure damage you must have both a suit and head item with this flag.
#define NODROP_1 2 // This flag makes it so that an item literally cannot be removed at all, or at least that's how it should be. Only deleted.
#define NOBLUDGEON_1 4 // when an item has this it produces no "X has been hit by Y with Z" message in the default attackby()
#define MASKINTERNALS_1 8 // mask allows internals
#define HEAR_1 16 // This flag is what recursive_hear_check() uses to determine wether to add an item to the hearer list or not.
#define CHECK_RICOCHET_1 32 // Projectiels will check ricochet on things impacted that have this.
#define CONDUCT_1 64 // conducts electricity (metal etc.)
#define ABSTRACT_1 128 // for all things that are technically items but used for various different stuff, made it 128 because it could conflict with other flags other way
#define NODECONSTRUCT_1 128 // For machines and structures that should not break into parts, eg, holodeck stuff
#define OVERLAY_QUEUED_1 256 // atom queued to SSoverlay
#define ON_BORDER_1 512 // item has priority to check when entering or leaving
#define NODROP_1 (1<<1) // This flag makes it so that an item literally cannot be removed at all, or at least that's how it should be. Only deleted.
#define NOBLUDGEON_1 (1<<2) // when an item has this it produces no "X has been hit by Y with Z" message in the default attackby()
#define MASKINTERNALS_1 (1<<3) // mask allows internals
#define HEAR_1 (1<<4) // This flag is what recursive_hear_check() uses to determine wether to add an item to the hearer list or not.
#define CHECK_RICOCHET_1 (1<<5) // Projectiels will check ricochet on things impacted that have this.
#define CONDUCT_1 (1<<6) // conducts electricity (metal etc.)
#define ABSTRACT_1 (1<<7) // for all things that are technically items but used for various different stuff, made it 128 because it could conflict with other flags other way
#define NODECONSTRUCT_1 (1<<7) // For machines and structures that should not break into parts, eg, holodeck stuff
#define OVERLAY_QUEUED_1 (1<<8) // atom queued to SSoverlay
#define ON_BORDER_1 (1<<9) // item has priority to check when entering or leaving
#define NOSLIP_1 1024 //prevents from slipping on wet floors, in space etc
#define NOSLIP_1 (1<<10) //prevents from slipping on wet floors, in space etc
// BLOCK_GAS_SMOKE_EFFECT_1 only used in masks at the moment.
#define BLOCK_GAS_SMOKE_EFFECT_1 4096 // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY!
#define THICKMATERIAL_1 8192 //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body.
#define DROPDEL_1 16384 // When dropped, it calls qdel on itself
#define PREVENT_CLICK_UNDER_1 32768 //Prevent clicking things below it on the same turf eg. doors/ fulltile windows
#define BLOCK_GAS_SMOKE_EFFECT_1 (1<<12) // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY!
#define THICKMATERIAL_1 (1<<13) //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body.
#define DROPDEL_1 (1<<14) // When dropped, it calls qdel on itself
#define PREVENT_CLICK_UNDER_1 (1<<15) //Prevent clicking things below it on the same turf eg. doors/ fulltile windows
/* Secondary atom flags, for the flags_2 var, denoted with a _2 */
#define SLOWS_WHILE_IN_HAND_2 1
#define NO_EMP_WIRES_2 2
#define HOLOGRAM_2 4
#define FROZEN_2 8
#define STATIONLOVING_2 16
#define INFORM_ADMINS_ON_RELOCATE_2 32
#define BANG_PROTECT_2 64
#define SLOWS_WHILE_IN_HAND_2 (1<<0)
#define NO_EMP_WIRES_2 (1<<1)
#define HOLOGRAM_2 (1<<2)
#define FROZEN_2 (1<<3)
#define STATIONLOVING_2 (1<<4)
#define INFORM_ADMINS_ON_RELOCATE_2 (1<<5)
#define BANG_PROTECT_2 (1<<6)
// An item worn in the ear slot with HEALS_EARS will heal your ears each
// Life() tick, even if normally your ears would be too damaged to heal.
#define HEALS_EARS_2 128
#define HEALS_EARS_2 (1<<7)
// A mob with OMNITONGUE has no restriction in the ability to speak
// languages that they know. So even if they wouldn't normally be able to
// through mob or tongue restrictions, this flag allows them to ignore
// those restrictions.
#define OMNITONGUE_2 256
#define OMNITONGUE_2 (1<<8)
// TESLA_IGNORE grants immunity from being targeted by tesla-style electricity
#define TESLA_IGNORE_2 512
#define TESLA_IGNORE_2 (1<<9)
// Stops you from putting things like an RCD or other items into an ORM or protolathe for materials.
#define NO_MAT_REDEMPTION_2 1024
#define NO_MAT_REDEMPTION_2 (1<<10)
// LAVA_PROTECT used on the flags_2 variable for both SUIT and HEAD items, and stops lava damage. Must be present in both to stop lava damage.
#define LAVA_PROTECT_2 2048
#define LAVA_PROTECT_2 (1<<11)
//turf-only flags
#define NOJAUNT_1 1
#define UNUSED_TRANSIT_TURF_1 2
#define CAN_BE_DIRTY_1 4 // If a turf can be made dirty at roundstart. This is also used in areas.
#define NO_DEATHRATTLE_1 16 // Do not notify deadchat about any deaths that occur on this turf.
#define NO_RUINS_1 32 //Blocks ruins spawning on the turf
#define NO_LAVA_GEN_1 64 //Blocks lava rivers being generated on the turf
//#define CHECK_RICOCHET_1 32 //Same thing as atom flag.
#define NOJAUNT_1 (1<<0)
#define UNUSED_TRANSIT_TURF_1 (1<<1)
#define CAN_BE_DIRTY_1 (1<<2) // If a turf can be made dirty at roundstart. This is also used in areas.
#define NO_DEATHRATTLE_1 (1<<4) // Do not notify deadchat about any deaths that occur on this turf.
#define NO_RUINS_1 (1<<5) //Blocks ruins spawning on the turf
#define NO_LAVA_GEN_1 (1<<6) //Blocks lava rivers being generated on the turf
//#define CHECK_RICOCHET_1 32 //Same thing as atom flag.
/*
These defines are used specifically with the atom/pass_flags bitmask
the atom/checkpass() proc uses them (tables will call movable atom checkpass(PASSTABLE) for example)
*/
//flags for pass_flags
#define PASSTABLE 1
#define PASSGLASS 2
#define PASSGRILLE 4
#define PASSBLOB 8
#define PASSMOB 16
#define PASSCLOSEDTURF 32
#define LETPASSTHROW 64
#define PASSTABLE (1<<0)
#define PASSGLASS (1<<1)
#define PASSGRILLE (1<<2)
#define PASSBLOB (1<<3)
#define PASSMOB (1<<4)
#define PASSCLOSEDTURF (1<<5)
#define LETPASSTHROW (1<<6)
//Movement Types
#define GROUND 1
#define FLYING 2
#define GROUND (1<<0)
#define FLYING (1<<1)
// Flags for reagents
#define REAGENT_NOREACT 1
#define REAGENT_NOREACT (1<<0)
//Fire and Acid stuff, for resistance_flags
#define LAVA_PROOF 1
#define FIRE_PROOF 2 //100% immune to fire damage (but not necessarily to lava or heat)
#define FLAMMABLE 4
#define ON_FIRE 8
#define UNACIDABLE 16 //acid can't even appear on it, let alone melt it.
#define ACID_PROOF 32 //acid stuck on it doesn't melt it.
#define INDESTRUCTIBLE 64 //doesn't take damage
#define FREEZE_PROOF 128 //can't be frozen
#define LAVA_PROOF (1<<0)
#define FIRE_PROOF (1<<1) //100% immune to fire damage (but not necessarily to lava or heat)
#define FLAMMABLE (1<<2)
#define ON_FIRE (1<<3)
#define UNACIDABLE (1<<4) //acid can't even appear on it, let alone melt it.
#define ACID_PROOF (1<<5) //acid stuck on it doesn't melt it.
#define INDESTRUCTIBLE (1<<6) //doesn't take damage
#define FREEZE_PROOF (1<<7) //can't be frozen
+12 -12
View File
@@ -1,12 +1,12 @@
#define MEAT 1
#define VEGETABLES 2
#define RAW 4
#define JUNKFOOD 8
#define GRAIN 16
#define FRUIT 32
#define DAIRY 64
#define FRIED 128
#define ALCOHOL 256
#define SUGAR 512
#define GROSS 1024
#define TOXIC 2048
#define MEAT (1<<0)
#define VEGETABLES (1<<1)
#define RAW (1<<2)
#define JUNKFOOD (1<<3)
#define GRAIN (1<<4)
#define FRUIT (1<<5)
#define DAIRY (1<<6)
#define FRIED (1<<7)
#define ALCOHOL (1<<8)
#define SUGAR (1<<9)
#define GROSS (1<<10)
#define TOXIC (1<<11)
+3 -3
View File
@@ -11,9 +11,9 @@
#define IC_SPAWN_RESEARCH 2 // If the circuit design will be available in the IC printer after upgrading it.
// Categories that help differentiate circuits that can do different tipes of actions
#define IC_ACTION_MOVEMENT 1 // If the circuit can move the assembly
#define IC_ACTION_COMBAT 2 // If the circuit can cause harm
#define IC_ACTION_LONG_RANGE 4 // If the circuit communicate with something outside of the assembly
#define IC_ACTION_MOVEMENT (1<<0) // If the circuit can move the assembly
#define IC_ACTION_COMBAT (1<<1) // If the circuit can cause harm
#define IC_ACTION_LONG_RANGE (1<<2) // If the circuit communicate with something outside of the assembly
// Displayed along with the pin name to show what type of pin it is.
#define IC_FORMAT_ANY "\<ANY\>"
+17 -17
View File
@@ -1,22 +1,22 @@
#define INTERACT_ATOM_REQUIRES_ANCHORED 1 //whether can_interact() checks for anchored. only works on movables.
#define INTERACT_ATOM_ATTACK_HAND 2 //calls try_interact() on attack_hand() and returns that.
#define INTERACT_ATOM_UI_INTERACT 4 //automatically calls and returns ui_interact() on interact().
#define INTERACT_ATOM_REQUIRES_DEXTERITY 8 //user must be dextrous
#define INTERACT_ATOM_IGNORE_INCAPACITATED 16 //ignores incapacitated check
#define INTERACT_ATOM_IGNORE_RESTRAINED 32 //incapacitated check ignores restrained
#define INTERACT_ATOM_CHECK_GRAB 64 //incapacitated check checks grab
#define INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND 128//prevents leaving fingerprints automatically on attack_hand
#define INTERACT_ATOM_NO_FINGERPRINT_INTERACT 256 //adds hiddenprints instead of fingerprints on interact
#define INTERACT_ATOM_REQUIRES_ANCHORED (1<<0) //whether can_interact() checks for anchored. only works on movables.
#define INTERACT_ATOM_ATTACK_HAND (1<<1) //calls try_interact() on attack_hand() and returns that.
#define INTERACT_ATOM_UI_INTERACT (1<<2) //automatically calls and returns ui_interact() on interact().
#define INTERACT_ATOM_REQUIRES_DEXTERITY (1<<3) //user must be dextrous
#define INTERACT_ATOM_IGNORE_INCAPACITATED (1<<4) //ignores incapacitated check
#define INTERACT_ATOM_IGNORE_RESTRAINED (1<<5) //incapacitated check ignores restrained
#define INTERACT_ATOM_CHECK_GRAB (1<<6) //incapacitated check checks grab
#define INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND (1<<7) //prevents leaving fingerprints automatically on attack_hand
#define INTERACT_ATOM_NO_FINGERPRINT_INTERACT (1<<8) //adds hiddenprints instead of fingerprints on interact
#define INTERACT_ITEM_ATTACK_HAND_PICKUP 1 //attempt pickup on attack_hand for items
#define INTERACT_ITEM_ATTACK_HAND_PICKUP (1<<0) //attempt pickup on attack_hand for items
#define INTERACT_MACHINE_OPEN 1 //can_interact() while open
#define INTERACT_MACHINE_OFFLINE 2 //can_interact() while offline
#define INTERACT_MACHINE_WIRES_IF_OPEN 4 //try to interact with wires if open
#define INTERACT_MACHINE_ALLOW_SILICON 8 //let silicons interact
#define INTERACT_MACHINE_OPEN_SILICON 16 //let silicons interact while open
#define INTERACT_MACHINE_REQUIRES_SILICON 32 //must be silicon to interact
#define INTERACT_MACHINE_SET_MACHINE 64 //MACHINES HAVE THIS BY DEFAULT, SOMEONE SHOULD RUN THROUGH MACHINES AND REMOVE IT FROM THINGS LIKE LIGHT SWITCHES WHEN POSSIBLE!!--------------------------
#define INTERACT_MACHINE_OPEN (1<<0) //can_interact() while open
#define INTERACT_MACHINE_OFFLINE (1<<1) //can_interact() while offline
#define INTERACT_MACHINE_WIRES_IF_OPEN (1<<2) //try to interact with wires if open
#define INTERACT_MACHINE_ALLOW_SILICON (1<<3) //let silicons interact
#define INTERACT_MACHINE_OPEN_SILICON (1<<4) //let silicons interact while open
#define INTERACT_MACHINE_REQUIRES_SILICON (1<<5) //must be silicon to interact
#define INTERACT_MACHINE_SET_MACHINE (1<<6) //MACHINES HAVE THIS BY DEFAULT, SOMEONE SHOULD RUN THROUGH MACHINES AND REMOVE IT FROM THINGS LIKE LIGHT SWITCHES WHEN POSSIBLE!!--------------------------
//This flag determines if a machine set_machine's the user when the user uses it, making updateUsrDialog make the user re-call interact() on it.
//THIS FLAG IS ON ALL MACHINES BY DEFAULT, NEEDS TO BE RE-EVALUATED LATER!!
+47 -47
View File
@@ -14,20 +14,20 @@
#define STORAGE_VIEW_DEPTH 2
//ITEM INVENTORY SLOT BITMASKS
#define SLOT_OCLOTHING 1
#define SLOT_ICLOTHING 2
#define SLOT_GLOVES 4
#define SLOT_EYES 8
#define SLOT_EARS 16
#define SLOT_MASK 32
#define SLOT_HEAD 64
#define SLOT_FEET 128
#define SLOT_ID 256
#define SLOT_BELT 512
#define SLOT_BACK 1024
#define SLOT_POCKET 2048 // this is to allow items with a w_class of WEIGHT_CLASS_NORMAL or WEIGHT_CLASS_BULKY to fit in pockets.
#define SLOT_DENYPOCKET 4096 // this is to deny items with a w_class of WEIGHT_CLASS_SMALL or WEIGHT_CLASS_TINY to fit in pockets.
#define SLOT_NECK 8192
#define SLOT_OCLOTHING (1<<0)
#define SLOT_ICLOTHING (1<<1)
#define SLOT_GLOVES (1<<2)
#define SLOT_EYES (1<<3)
#define SLOT_EARS (1<<4)
#define SLOT_MASK (1<<5)
#define SLOT_HEAD (1<<6)
#define SLOT_FEET (1<<7)
#define SLOT_ID (1<<8)
#define SLOT_BELT (1<<9)
#define SLOT_BACK (1<<10)
#define SLOT_POCKET (1<<11) // this is to allow items with a w_class of WEIGHT_CLASS_NORMAL or WEIGHT_CLASS_BULKY to fit in pockets.
#define SLOT_DENYPOCKET (1<<12) // this is to deny items with a w_class of WEIGHT_CLASS_SMALL or WEIGHT_CLASS_TINY to fit in pockets.
#define SLOT_NECK (1<<13)
//SLOTS
#define slot_back 1
@@ -87,36 +87,36 @@
//Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses.
#define HIDEGLOVES 1
#define HIDESUITSTORAGE 2
#define HIDEJUMPSUIT 4 //these first four are only used in exterior suits
#define HIDESHOES 8
#define HIDEMASK 16 //these last six are only used in masks and headgear.
#define HIDEEARS 32 // (ears means headsets and such)
#define HIDEEYES 64 // Whether eyes and glasses are hidden
#define HIDEFACE 128 // Whether we appear as unknown.
#define HIDEHAIR 256
#define HIDEFACIALHAIR 512
#define HIDENECK 1024
#define HIDEGLOVES (1<<0)
#define HIDESUITSTORAGE (1<<1)
#define HIDEJUMPSUIT (1<<2) //these first four are only used in exterior suits
#define HIDESHOES (1<<3)
#define HIDEMASK (1<<4) //these last six are only used in masks and headgear.
#define HIDEEARS (1<<5) // (ears means headsets and such)
#define HIDEEYES (1<<6) // Whether eyes and glasses are hidden
#define HIDEFACE (1<<7) // Whether we appear as unknown.
#define HIDEHAIR (1<<8)
#define HIDEFACIALHAIR (1<<9)
#define HIDENECK (1<<10)
//bitflags for clothing coverage - also used for limbs
#define HEAD 1
#define CHEST 2
#define GROIN 4
#define LEG_LEFT 8
#define LEG_RIGHT 16
#define LEGS 24
#define FOOT_LEFT 32
#define FOOT_RIGHT 64
#define FEET 96
#define ARM_LEFT 128
#define ARM_RIGHT 256
#define ARMS 384
#define HAND_LEFT 512
#define HAND_RIGHT 1024
#define HANDS 1536
#define NECK 2048
#define FULL_BODY 4095
#define HEAD (1<<0)
#define CHEST (1<<1)
#define GROIN (1<<2)
#define LEG_LEFT (1<<3)
#define LEG_RIGHT (1<<4)
#define LEGS (LEG_LEFT | LEG_RIGHT)
#define FOOT_LEFT (1<<5)
#define FOOT_RIGHT (1<<6)
#define FEET (FOOT_LEFT | FOOT_RIGHT)
#define ARM_LEFT (1<<7)
#define ARM_RIGHT (1<<8)
#define ARMS (ARM_LEFT | ARM_RIGHT)
#define HAND_LEFT (1<<9)
#define HAND_RIGHT (1<<10)
#define HANDS (HAND_LEFT | HAND_RIGHT)
#define NECK (1<<11)
#define FULL_BODY (~0)
//flags for female outfits: How much the game can safely "take off" the uniform without it looking weird
#define NO_FEMALE_UNIFORM 0
@@ -137,11 +137,11 @@
#define SQUISHED_DIGITIGRADE 2
//flags for covering body parts
#define GLASSESCOVERSEYES 1
#define MASKCOVERSEYES 2 // get rid of some of the other retardation in these flags
#define HEADCOVERSEYES 4 // feel free to realloc these numbers for other purposes
#define MASKCOVERSMOUTH 8 // on other items, these are just for mask/head
#define HEADCOVERSMOUTH 16
#define GLASSESCOVERSEYES (1<<0)
#define MASKCOVERSEYES (1<<1) // get rid of some of the other retardation in these flags
#define HEADCOVERSEYES (1<<2) // feel free to realloc these numbers for other purposes
#define MASKCOVERSMOUTH (1<<3) // on other items, these are just for mask/head
#define HEADCOVERSMOUTH (1<<4)
#define TINT_DARKENED 2 //Threshold of tint level to apply weld mask overlay
#define TINT_BLIND 3 //Threshold of tint level to obscure vision fully
+2
View File
@@ -182,3 +182,5 @@ GLOBAL_LIST_INIT(glass_sheet_types, typecacheof(list(
#define is_glass_sheet(O) (is_type_in_typecache(O, GLOB.glass_sheet_types))
#define isblobmonster(O) (istype(O, /mob/living/simple_animal/hostile/blob))
#define isshuttleturf(T) (length(T.baseturfs) && (/turf/baseturf_skipover/shuttle in T.baseturfs))
+19 -19
View File
@@ -4,43 +4,43 @@
#define CAPTAIN (1<<0)
#define HOS (1<<1)
#define WARDEN (1<<2)
#define DETECTIVE (1<<3)
#define DETECTIVE (1<<3)
#define OFFICER (1<<4)
#define CHIEF (1<<5)
#define ENGINEER (1<<6)
#define ATMOSTECH (1<<7)
#define CHIEF (1<<5)
#define ENGINEER (1<<6)
#define ATMOSTECH (1<<7)
#define ROBOTICIST (1<<8)
#define AI_JF (1<<9)
#define AI_JF (1<<9)
#define CYBORG (1<<10)
#define MEDSCI (1<<1)
#define RD_JF (1<<0)
#define SCIENTIST (1<<1)
#define RD_JF (1<<0)
#define SCIENTIST (1<<1)
#define CHEMIST (1<<2)
#define CMO_JF (1<<3)
#define CMO_JF (1<<3)
#define DOCTOR (1<<4)
#define GENETICIST (1<<5)
#define VIROLOGIST (1<<6)
#define CIVILIAN (1<<2)
#define CIVILIAN (1<<2)
#define HOP (1<<0)
#define BARTENDER (1<<1)
#define BOTANIST (1<<2)
#define COOK (1<<3)
#define BARTENDER (1<<1)
#define BOTANIST (1<<2)
#define COOK (1<<3)
#define JANITOR (1<<4)
#define CURATOR (1<<5)
#define QUARTERMASTER (1<<6)
#define CARGOTECH (1<<7)
#define MINER (1<<8)
#define QUARTERMASTER (1<<6)
#define CARGOTECH (1<<7)
#define MINER (1<<8)
#define LAWYER (1<<9)
#define CHAPLAIN (1<<10)
#define CLOWN (1<<11)
#define MIME (1<<12)
#define ASSISTANT (1<<13)
#define CHAPLAIN (1<<10)
#define CLOWN (1<<11)
#define MIME (1<<12)
#define ASSISTANT (1<<13)
#define JOB_AVAILABLE 0
#define JOB_UNAVAILABLE_GENERIC 1
+18 -18
View File
@@ -14,22 +14,22 @@
//bitflags for door switches.
#define OPEN 1
#define IDSCAN 2
#define BOLTS 4
#define SHOCK 8
#define SAFE 16
#define OPEN (1<<0)
#define IDSCAN (1<<1)
#define BOLTS (1<<2)
#define SHOCK (1<<3)
#define SAFE (1<<4)
//used in design to specify which machine can build it
#define IMPRINTER 1 //For circuits. Uses glass/chemicals.
#define PROTOLATHE 2 //New stuff. Uses glass/metal/chemicals
#define AUTOLATHE 4 //Uses glass/metal only.
#define CRAFTLATHE 8 //Uses fuck if I know. For use eventually.
#define MECHFAB 16 //Remember, objects utilising this flag should have construction_time and construction_cost vars.
#define BIOGENERATOR 32 //Uses biomass
#define LIMBGROWER 64 //Uses synthetic flesh
#define SMELTER 128 //uses various minerals
#define AUTOYLATHE 256 //CITADEL ADDITION Uses glass/metal/Plastic CID
#define IMPRINTER (1<<0) //For circuits. Uses glass/chemicals.
#define PROTOLATHE (1<<1) //New stuff. Uses glass/metal/chemicals
#define AUTOLATHE (1<<2) //Uses glass/metal only.
#define CRAFTLATHE (1<<3) //Uses fuck if I know. For use eventually.
#define MECHFAB (1<<4) //Remember, objects utilising this flag should have construction_time and construction_cost vars.
#define BIOGENERATOR (1<<5) //Uses biomass
#define LIMBGROWER (1<<6) //Uses synthetic flesh
#define SMELTER (1<<7) //uses various minerals
#define AUTOYLATHE (1<<8) // CITADEL ADD
//Note: More then one of these can be added to a design but imprinter and lathe designs are incompatable.
//Modular computer/NTNet defines
@@ -62,10 +62,10 @@
#define MIN_NTNET_LOGS 10
//Program bitflags
#define PROGRAM_ALL 7
#define PROGRAM_CONSOLE 1
#define PROGRAM_LAPTOP 2
#define PROGRAM_TABLET 4
#define PROGRAM_ALL (~0)
#define PROGRAM_CONSOLE (1<<0)
#define PROGRAM_LAPTOP (1<<1)
#define PROGRAM_TABLET (1<<2)
//Program states
#define PROGRAM_STATE_KILLED 0
#define PROGRAM_STATE_BACKGROUND 1
+1
View File
@@ -11,6 +11,7 @@
#define BOSS_MEDAL_HIEROPHANT "Hierophant"
#define BOSS_MEDAL_LEGION "Legion"
#define BOSS_MEDAL_TENDRIL "Tendril"
#define BOSS_MEDAL_SWARMERS "Swarmer Beacon"
// Score names
#define HIEROPHANT_SCORE "Hierophants Killed"
+47 -14
View File
@@ -35,6 +35,18 @@
#define BLOODCRAWL 1
#define BLOODCRAWL_EAT 2
//Mob bio-types
#define MOB_ORGANIC "organic"
#define MOB_INORGANIC "inorganic"
#define MOB_ROBOTIC "robotic"
#define MOB_UNDEAD "undead"
#define MOB_HUMANOID "humanoid"
#define MOB_BUG "bug"
#define MOB_BEAST "beast"
#define MOB_EPIC "epic" //megafauna
#define MOB_REPTILE "reptile"
#define MOB_SPIRIT "spirit"
//Organ defines for carbon mobs
#define ORGAN_ORGANIC 1
#define ORGAN_ROBOTIC 2
@@ -51,6 +63,27 @@
#define DEVIL_BODYPART "devil"
/*see __DEFINES/inventory.dm for bodypart bitflag defines*/
// Health/damage defines for carbon mobs
#define HUMAN_MAX_OXYLOSS 3
#define HUMAN_CRIT_MAX_OXYLOSS (SSmobs.wait/30)
#define HEAT_DAMAGE_LEVEL_1 2 //Amount of damage applied when your body temperature just passes the 360.15k safety point
#define HEAT_DAMAGE_LEVEL_2 3 //Amount of damage applied when your body temperature passes the 400K point
#define HEAT_DAMAGE_LEVEL_3 8 //Amount of damage applied when your body temperature passes the 460K point and you are on fire
#define COLD_DAMAGE_LEVEL_1 0.5 //Amount of damage applied when your body temperature just passes the 260.15k safety point
#define COLD_DAMAGE_LEVEL_2 1.5 //Amount of damage applied when your body temperature passes the 200K point
#define COLD_DAMAGE_LEVEL_3 3 //Amount of damage applied when your body temperature passes the 120K point
//Note that gas heat damage is only applied once every FOUR ticks.
#define HEAT_GAS_DAMAGE_LEVEL_1 2 //Amount of damage applied when the current breath's temperature just passes the 360.15k safety point
#define HEAT_GAS_DAMAGE_LEVEL_2 4 //Amount of damage applied when the current breath's temperature passes the 400K point
#define HEAT_GAS_DAMAGE_LEVEL_3 8 //Amount of damage applied when the current breath's temperature passes the 1000K point
#define COLD_GAS_DAMAGE_LEVEL_1 0.5 //Amount of damage applied when the current breath's temperature just passes the 260.15k safety point
#define COLD_GAS_DAMAGE_LEVEL_2 1.5 //Amount of damage applied when the current breath's temperature passes the 200K point
#define COLD_GAS_DAMAGE_LEVEL_3 3 //Amount of damage applied when the current breath's temperature passes the 120K point
//Brain Damage defines
#define BRAIN_DAMAGE_MILD 20
#define BRAIN_DAMAGE_SEVERE 100
@@ -162,15 +195,15 @@
#define AI_Z_OFF 4
//determines if a mob can smash through it
#define ENVIRONMENT_SMASH_NONE 0
#define ENVIRONMENT_SMASH_STRUCTURES 1 //crates, lockers, ect
#define ENVIRONMENT_SMASH_WALLS 2 //walls
#define ENVIRONMENT_SMASH_RWALLS 4 //rwalls
#define ENVIRONMENT_SMASH_NONE 0
#define ENVIRONMENT_SMASH_STRUCTURES (1<<0) //crates, lockers, ect
#define ENVIRONMENT_SMASH_WALLS (1<<1) //walls
#define ENVIRONMENT_SMASH_RWALLS (1<<2) //rwalls
#define NO_SLIP_WHEN_WALKING 1
#define SLIDE 2
#define GALOSHES_DONT_HELP 4
#define SLIDE_ICE 8
#define NO_SLIP_WHEN_WALKING (1<<0)
#define SLIDE (1<<1)
#define GALOSHES_DONT_HELP (1<<2)
#define SLIDE_ICE (1<<3)
#define MAX_CHICKENS 50
@@ -182,12 +215,12 @@
#define INCORPOREAL_MOVE_JAUNT 3 // is blocked by holy water/salt
//Secbot and ED209 judgement criteria bitflag values
#define JUDGE_EMAGGED 1
#define JUDGE_IDCHECK 2
#define JUDGE_WEAPONCHECK 4
#define JUDGE_RECORDCHECK 8
#define JUDGE_EMAGGED (1<<0)
#define JUDGE_IDCHECK (1<<1)
#define JUDGE_WEAPONCHECK (1<<2)
#define JUDGE_RECORDCHECK (1<<3)
//ED209's ignore monkeys
#define JUDGE_IGNOREMONKEYS 16
#define JUDGE_IGNOREMONKEYS (1<<4)
#define MEGAFAUNA_DEFAULT_RECOVERY_TIME 5
@@ -211,7 +244,7 @@
#define OFFSET_NECK "neck"
//MINOR TWEAKS/MISC
#define AGE_MIN 18 //youngest a character can be
#define AGE_MIN 17 //youngest a character can be
#define AGE_MAX 85 //oldest a character can be
#define WIZARD_AGE_MIN 30 //youngest a wizard can be
#define APPRENTICE_AGE_MIN 29 //youngest an apprentice can be
+12 -12
View File
@@ -1,20 +1,20 @@
// Flags for the obj_flags var on /obj
#define EMAGGED 1
#define IN_USE 2 // If we have a user using us, this will be set on. We will check if the user has stopped using us, and thus stop updating and LAGGING EVERYTHING!
#define CAN_BE_HIT 4 //can this be bludgeoned by items?
#define BEING_SHOCKED 8 // Whether this thing is currently (already) being shocked by a tesla
#define DANGEROUS_POSSESSION 16 //Admin possession yes/no
#define ON_BLUEPRINTS 32 //Are we visible on the station blueprints at roundstart?
#define UNIQUE_RENAME 64 // can you customize the description/name of the thing?
#define USES_TGUI 128 //put on things that use tgui on ui_interact instead of custom/old UI.
#define EMAGGED (1<<0)
#define IN_USE (1<<1) // If we have a user using us, this will be set on. We will check if the user has stopped using us, and thus stop updating and LAGGING EVERYTHING!
#define CAN_BE_HIT (1<<2) //can this be bludgeoned by items?
#define BEING_SHOCKED (1<<3) // Whether this thing is currently (already) being shocked by a tesla
#define DANGEROUS_POSSESSION (1<<4) //Admin possession yes/no
#define ON_BLUEPRINTS (1<<5) //Are we visible on the station blueprints at roundstart?
#define UNIQUE_RENAME (1<<6) // can you customize the description/name of the thing?
#define USES_TGUI (1<<7) //put on things that use tgui on ui_interact instead of custom/old UI.
// If you add new ones, be sure to add them to /obj/Initialize as well for complete mapping support
// Flags for the item_flags var on /obj/item
#define BEING_REMOVED 1
#define IN_INVENTORY 2 //is this item equipped into an inventory slot or hand of a mob? used for tooltips
#define FORCE_STRING_OVERRIDE 4 // used for tooltips
#define NEEDS_PERMIT 8 //Used by security bots to determine if this item is safe for public use.
#define BEING_REMOVED (1<<0)
#define IN_INVENTORY (1<<1) //is this item equipped into an inventory slot or hand of a mob? used for tooltips
#define FORCE_STRING_OVERRIDE (1<<2) // used for tooltips
#define NEEDS_PERMIT (1<<3) //Used by security bots to determine if this item is safe for public use.
+26 -26
View File
@@ -1,35 +1,35 @@
//Preference toggles
#define SOUND_ADMINHELP 1
#define SOUND_MIDI 2
#define SOUND_AMBIENCE 4
#define SOUND_LOBBY 8
#define MEMBER_PUBLIC 16
#define INTENT_STYLE 32
#define MIDROUND_ANTAG 64
#define SOUND_INSTRUMENTS 128
#define SOUND_SHIP_AMBIENCE 256
#define SOUND_PRAYERS 512
#define ANNOUNCE_LOGIN 1024
#define SOUND_ANNOUNCEMENTS 2048
#define DISABLE_DEATHRATTLE 4096
#define DISABLE_ARRIVALRATTLE 8192
#define COMBOHUD_LIGHTING 16384
#define SOUND_ADMINHELP (1<<0)
#define SOUND_MIDI (1<<1)
#define SOUND_AMBIENCE (1<<2)
#define SOUND_LOBBY (1<<3)
#define MEMBER_PUBLIC (1<<4)
#define INTENT_STYLE (1<<5)
#define MIDROUND_ANTAG (1<<6)
#define SOUND_INSTRUMENTS (1<<7)
#define SOUND_SHIP_AMBIENCE (1<<8)
#define SOUND_PRAYERS (1<<9)
#define ANNOUNCE_LOGIN (1<<10)
#define SOUND_ANNOUNCEMENTS (1<<11)
#define DISABLE_DEATHRATTLE (1<<12)
#define DISABLE_ARRIVALRATTLE (1<<13)
#define COMBOHUD_LIGHTING (1<<14)
#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|MEMBER_PUBLIC|INTENT_STYLE|MIDROUND_ANTAG|SOUND_INSTRUMENTS|SOUND_SHIP_AMBIENCE|SOUND_PRAYERS|SOUND_ANNOUNCEMENTS)
//Chat toggles
#define CHAT_OOC 1
#define CHAT_DEAD 2
#define CHAT_GHOSTEARS 4
#define CHAT_GHOSTSIGHT 8
#define CHAT_PRAYER 16
#define CHAT_RADIO 32
#define CHAT_PULLR 64
#define CHAT_GHOSTWHISPER 128
#define CHAT_GHOSTPDA 256
#define CHAT_GHOSTRADIO 512
#define CHAT_LOOC 1024
#define CHAT_OOC (1<<0)
#define CHAT_DEAD (1<<1)
#define CHAT_GHOSTEARS (1<<2)
#define CHAT_GHOSTSIGHT (1<<3)
#define CHAT_PRAYER (1<<4)
#define CHAT_RADIO (1<<5)
#define CHAT_PULLR (1<<6)
#define CHAT_GHOSTWHISPER (1<<7)
#define CHAT_GHOSTPDA (1<<8)
#define CHAT_GHOSTRADIO (1<<9)
#define CHAT_LOOC (1<<10)
#define TOGGLES_DEFAULT_CHAT (CHAT_OOC|CHAT_DEAD|CHAT_GHOSTEARS|CHAT_GHOSTSIGHT|CHAT_PRAYER|CHAT_RADIO|CHAT_PULLR|CHAT_GHOSTWHISPER|CHAT_GHOSTPDA|CHAT_GHOSTRADIO|CHAT_LOOC)
+6 -6
View File
@@ -4,14 +4,14 @@
// container_type defines
#define INJECTABLE 1 // Makes it possible to add reagents through droppers and syringes.
#define DRAWABLE 2 // Makes it possible to remove reagents through syringes.
#define INJECTABLE (1<<0) // Makes it possible to add reagents through droppers and syringes.
#define DRAWABLE (1<<1) // Makes it possible to remove reagents through syringes.
#define REFILLABLE 4 // Makes it possible to add reagents through any reagent container.
#define DRAINABLE 8 // Makes it possible to remove reagents through any reagent container.
#define REFILLABLE (1<<2) // Makes it possible to add reagents through any reagent container.
#define DRAINABLE (1<<3) // Makes it possible to remove reagents through any reagent container.
#define TRANSPARENT 16 // Used on containers which you want to be able to see the reagents off.
#define AMOUNT_VISIBLE 32 // For non-transparent containers that still have the general amount of reagents in them visible.
#define TRANSPARENT (1<<4) // Used on containers which you want to be able to see the reagents off.
#define AMOUNT_VISIBLE (1<<5) // For non-transparent containers that still have the general amount of reagents in them visible.
// Is an open container for all intents and purposes.
#define OPENCONTAINER (REFILLABLE | DRAINABLE | TRANSPARENT)
+8 -8
View File
@@ -49,14 +49,14 @@
#define RESEARCH_FABRICATOR_SCREEN_SEARCH 4
#define RESEARCH_FABRICATOR_SCREEN_CATEGORYVIEW 5
#define DEPARTMENTAL_FLAG_SECURITY 1
#define DEPARTMENTAL_FLAG_MEDICAL 2
#define DEPARTMENTAL_FLAG_CARGO 4
#define DEPARTMENTAL_FLAG_SCIENCE 8
#define DEPARTMENTAL_FLAG_ENGINEERING 16
#define DEPARTMENTAL_FLAG_SERVICE 32
#define DEPARTMENTAL_FLAG_ALL 64 //NO THIS DOESN'T ALLOW YOU TO PRINT EVERYTHING, IT'S FOR ALL DEPARTMENTS!
//#define DEPARTMENTAL_FLAG_MINING 128
#define DEPARTMENTAL_FLAG_SECURITY (1<<0)
#define DEPARTMENTAL_FLAG_MEDICAL (1<<1)
#define DEPARTMENTAL_FLAG_CARGO (1<<2)
#define DEPARTMENTAL_FLAG_SCIENCE (1<<3)
#define DEPARTMENTAL_FLAG_ENGINEERING (1<<4)
#define DEPARTMENTAL_FLAG_SERVICE (1<<5)
#define DEPARTMENTAL_FLAG_ALL (1<<6) //NO THIS DOESN'T ALLOW YOU TO PRINT EVERYTHING, IT'S FOR ALL DEPARTMENTS!
//#define DEPARTMENTAL_FLAG_MINING (1<<7)
#define DESIGN_ID_IGNORE "IGNORE_THIS_DESIGN"
+6 -6
View File
@@ -29,12 +29,12 @@
#define BOT_NO_ROUTE 17 // no destination beacon found (or no route)
//Bot types
#define SEC_BOT 1 // Secutritrons (Beepsky) and ED-209s
#define MULE_BOT 2 // MULEbots
#define FLOOR_BOT 4 // Floorbots
#define CLEAN_BOT 8 // Cleanbots
#define MED_BOT 16 // Medibots
#define HONK_BOT 32 // Honkbots & ED-Honks
#define SEC_BOT (1<<0) // Secutritrons (Beepsky) and ED-209s
#define MULE_BOT (1<<1) // MULEbots
#define FLOOR_BOT (1<<2) // Floorbots
#define CLEAN_BOT (1<<3) // Cleanbots
#define MED_BOT (1<<4) // Medibots
#define HONK_BOT (1<<5) // Honkbots & ED-Honks
//AI notification defines
#define NEW_BORG 1
-2
View File
@@ -24,7 +24,6 @@
#define ROLE_REVENANT "revenant"
#define ROLE_DEVIL "devil"
#define ROLE_SERVANT_OF_RATVAR "servant of Ratvar"
#define ROLE_BORER "borer"
#define ROLE_BROTHER "blood brother"
#define ROLE_BRAINWASHED "brainwashed victim"
#define ROLE_MISCREANT "miscreant"
@@ -49,7 +48,6 @@ GLOBAL_LIST_INIT(special_roles, list(
ROLE_REVENANT,
ROLE_ABDUCTOR,
ROLE_DEVIL = /datum/game_mode/devil,
ROLE_BORER,
ROLE_SERVANT_OF_RATVAR = /datum/game_mode/clockwork_cult,
ROLE_MISCREANT
))
+6 -8
View File
@@ -52,12 +52,12 @@
#define ENGINE_DEFAULT_MAXSPEED_ENGINES 5
//Docking error flags
#define DOCKING_SUCCESS 0
#define DOCKING_BLOCKED 1
#define DOCKING_IMMOBILIZED 2
#define DOCKING_AREA_EMPTY 4
#define DOCKING_NULL_DESTINATION 8
#define DOCKING_NULL_SOURCE 16
#define DOCKING_SUCCESS 0
#define DOCKING_BLOCKED (1<<0)
#define DOCKING_IMMOBILIZED (1<<1)
#define DOCKING_AREA_EMPTY (1<<2)
#define DOCKING_NULL_DESTINATION (1<<3)
#define DOCKING_NULL_SOURCE (1<<4)
//Docking turf movements
#define MOVE_TURF 1
@@ -74,7 +74,5 @@
#define SHUTTLE_DOCKER_BLOCKED 3
//Shuttle defaults
#define SHUTTLE_DEFAULT_TURF_TYPE /turf/open/space
#define SHUTTLE_DEFAULT_BASETURF_TYPE /turf/open/space
#define SHUTTLE_DEFAULT_SHUTTLE_AREA_TYPE /area/shuttle
#define SHUTTLE_DEFAULT_UNDERLYING_AREA /area/space
+9 -9
View File
@@ -17,14 +17,14 @@
#define INVISIBILITY_ABSTRACT 101 //only used for abstract objects (e.g. spacevine_controller), things that are not really there.
#define BORGMESON 1
#define BORGTHERM 2
#define BORGXRAY 4
#define BORGMATERIAL 8
#define BORGMESON (1<<0)
#define BORGTHERM (1<<1)
#define BORGXRAY (1<<2)
#define BORGMATERIAL (1<<3)
//for clothing visor toggles, these determine which vars to toggle
#define VISOR_FLASHPROTECT 1
#define VISOR_TINT 2
#define VISOR_VISIONFLAGS 4 //all following flags only matter for glasses
#define VISOR_DARKNESSVIEW 8
#define VISOR_INVISVIEW 16
#define VISOR_FLASHPROTECT (1<<0)
#define VISOR_TINT (1<<1)
#define VISOR_VISIONFLAGS (1<<2) //all following flags only matter for glasses
#define VISOR_DARKNESSVIEW (1<<3)
#define VISOR_INVISVIEW (1<<4)
+4 -4
View File
@@ -9,10 +9,10 @@
#define DEAD 3
// bitflags for machine stat variable
#define BROKEN 1
#define NOPOWER 2
#define MAINT 4 // under maintaince
#define EMPED 8 // temporary broken by EMP pulse
#define BROKEN (1<<0)
#define NOPOWER (1<<1)
#define MAINT (1<<2) // under maintaince
#define EMPED (1<<3) // temporary broken by EMP pulse
//ai power requirement defines
#define POWER_REQ_ALL 1
+5 -5
View File
@@ -6,18 +6,18 @@
//Timing subsystem
//Don't run if there is an identical unique timer active
//if the arguments to addtimer are the same as an existing timer, it doesn't create a new timer, and returns the id of the existing timer
#define TIMER_UNIQUE 0x1
#define TIMER_UNIQUE (1<<0)
//For unique timers: Replace the old timer rather then not start this one
#define TIMER_OVERRIDE 0x2
#define TIMER_OVERRIDE (1<<1)
//Timing should be based on how timing progresses on clients, not the sever.
// tracking this is more expensive,
// should only be used in conjuction with things that have to progress client side, such as animate() or sound()
#define TIMER_CLIENT_TIME 0x4
#define TIMER_CLIENT_TIME (1<<2)
//Timer can be stopped using deltimer()
#define TIMER_STOPPABLE 0x8
#define TIMER_STOPPABLE (1<<3)
//To be used with TIMER_UNIQUE
//prevents distinguishing identical timers with the wait variable
#define TIMER_NO_HASH_WAIT 0x10
#define TIMER_NO_HASH_WAIT (1<<4)
#define TIMER_NO_INVOKE_WARNING 600 //number of byond ticks that are allowed to pass before the timer subsystem thinks it hung on something
+4 -9
View File
@@ -83,15 +83,10 @@
newA.contents += thing
thing.change_area(old_area, newA)
var/list/related_areas = oldA.related
for(var/i in 1 to related_areas.len)
var/area/place = related_areas[i]
var/list/firedoors = place.firedoors
if(!LAZYLEN(firedoors))
continue
for(var/k in 1 to firedoors.len)
var/obj/machinery/door/firedoor/FD = firedoors[k]
FD.CalculateAffectingAreas()
var/list/firedoors = oldA.firedoors
for(var/door in firedoors)
var/obj/machinery/door/firedoor/FD = door
FD.CalculateAffectingAreas()
to_chat(creator, "<span class='notice'>You have created a new area, named [newA.name]. It is now weather proof, and constructing an APC will allow it to be powered.</span>")
return TRUE
+14 -14
View File
@@ -24,21 +24,21 @@
*/
//Redefinitions of the diagonal directions so they can be stored in one var without conflicts
#define N_NORTH 2
#define N_SOUTH 4
#define N_EAST 16
#define N_WEST 256
#define N_NORTHEAST 32
#define N_NORTHWEST 512
#define N_SOUTHEAST 64
#define N_SOUTHWEST 1024
#define N_NORTH (1<<1)
#define N_SOUTH (1<<2)
#define N_EAST (1<<4)
#define N_WEST (1<<8)
#define N_NORTHEAST (1<<5)
#define N_NORTHWEST (1<<9)
#define N_SOUTHEAST (1<<6)
#define N_SOUTHWEST (1<<10)
#define SMOOTH_FALSE 0 //not smooth
#define SMOOTH_TRUE 1 //smooths with exact specified types or just itself
#define SMOOTH_MORE 2 //smooths with all subtypes of specified types or just itself (this value can replace SMOOTH_TRUE)
#define SMOOTH_DIAGONAL 4 //if atom should smooth diagonally, this should be present in 'smooth' var
#define SMOOTH_BORDER 8 //atom will smooth with the borders of the map
#define SMOOTH_QUEUED 16 //atom is currently queued to smooth.
#define SMOOTH_FALSE 0 //not smooth
#define SMOOTH_TRUE (1<<0) //smooths with exact specified types or just itself
#define SMOOTH_MORE (1<<1) //smooths with all subtypes of specified types or just itself (this value can replace SMOOTH_TRUE)
#define SMOOTH_DIAGONAL (1<<2) //if atom should smooth diagonally, this should be present in 'smooth' var
#define SMOOTH_BORDER (1<<3) //atom will smooth with the borders of the map
#define SMOOTH_QUEUED (1<<4) //atom is currently queued to smooth.
#define NULLTURF_BORDER 123456789
+13 -1
View File
@@ -762,6 +762,19 @@ world
else
curdir = A.dir
//Try to remove/optimize this section ASAP, CPU hog.
//Determines if there's directionals.
if(!noIcon && curdir != SOUTH)
var/exist = FALSE
var/static/list/checkdirs = list(NORTH, EAST, WEST)
for(var/i in checkdirs) //Not using GLOB for a reason.
if(length(icon_states(icon(curicon, curstate, i))))
exist = TRUE
break
if(!exist)
base_icon_dir = SOUTH
//
if(!base_icon_dir)
base_icon_dir = curdir
@@ -879,7 +892,6 @@ world
#undef BLANK
#undef SET_SELF
#undef APPLY_SELF_COLOR
/proc/getIconMask(atom/A)//By yours truly. Creates a dynamic mask for a mob/whatever. /N
var/icon/alpha_mask = new(A.icon,A.icon_state)//So we want the default icon and icon state of A.
-5
View File
@@ -310,8 +310,3 @@
/obj/screen/parallax_layer/planet/update_o()
return //Shit wont move
#undef LOOP_NONE
#undef LOOP_NORMAL
#undef LOOP_REVERSE
#undef LOOP_TIME
+22 -9
View File
@@ -180,13 +180,18 @@
/obj/screen/close
name = "close"
layer = ABOVE_HUD_LAYER
plane = ABOVE_HUD_PLANE
icon_state = "backpack_close"
/obj/screen/close/Initialize(mapload, new_master)
. = ..()
master = new_master
/obj/screen/close/Click()
if(istype(master, /obj/item/storage))
var/obj/item/storage/S = master
S.close(usr)
return 1
var/datum/component/storage/S = master
S.hide_from(usr)
return TRUE
/obj/screen/drop
name = "drop"
@@ -346,19 +351,27 @@
/obj/screen/storage
name = "storage"
icon_state = "block"
screen_loc = "7,7 to 10,8"
layer = HUD_LAYER
plane = HUD_PLANE
/obj/screen/storage/Initialize(mapload, new_master)
. = ..()
master = new_master
/obj/screen/storage/Click(location, control, params)
if(world.time <= usr.next_move)
return 1
return TRUE
if(usr.stat || usr.IsUnconscious() || usr.IsKnockdown() || usr.IsStun())
return 1
return TRUE
if (ismecha(usr.loc)) // stops inventory actions in a mech
return 1
return TRUE
if(master)
var/obj/item/I = usr.get_active_held_item()
if(I)
master.attackby(I, usr, params)
return 1
return TRUE
/obj/screen/throw_catch
name = "throw/catch"
@@ -1,5 +1,3 @@
#undef CURRENT_RESIDENT_FILE
#define LIST_MODE_NUM 0
#define LIST_MODE_TEXT 1
#define LIST_MODE_FLAG 2
@@ -8,7 +6,7 @@
var/name //read-only, this is determined by the last portion of the derived entry type
var/config_entry_value
var/default //read-only, just set value directly
var/resident_file //the file which this was loaded from, if any
var/modified = FALSE //set to TRUE if the default has been overridden by a config entry
@@ -19,7 +17,7 @@
/datum/config_entry/New()
if(type == abstract_type)
CRASH("Abstract config entry [type] instatiated!")
CRASH("Abstract config entry [type] instatiated!")
name = lowertext(type2top(type))
if(islist(config_entry_value))
var/list/L = config_entry_value
+1 -1
View File
@@ -393,5 +393,5 @@ SUBSYSTEM_DEF(air)
#undef SSAIR_ACTIVETURFS
#undef SSAIR_EXCITEDGROUPS
#undef SSAIR_HIGHPRESSURE
#undef SSAIR_HOTSPOT
#undef SSAIR_HOTSPOTS
#undef SSAIR_SUPERCONDUCTIVITY
+4 -4
View File
@@ -367,14 +367,14 @@ GLOBAL_LIST_EMPTY(the_station_areas)
away_level = template.load_new_z()
else
return
message_admins("Admin [key_name_admin(usr)] has loaded [away_name] away mission.")
log_admin("Admin [key_name(usr)] has loaded [away_name] away mission.")
if(!away_level)
message_admins("Loading [away_name] failed!")
return
if(GLOB.the_gateway)
//Link any found away gate with station gate
var/obj/machinery/gateway/centeraway/new_gate
@@ -384,4 +384,4 @@ GLOBAL_LIST_EMPTY(the_station_areas)
break
//Link station gate with away gate and remove wait time.
GLOB.the_gateway.awaygate = new_gate
GLOB.the_gateway.wait = world.time
GLOB.the_gateway.wait = world.time
+3 -4
View File
@@ -55,8 +55,8 @@ SUBSYSTEM_DEF(shuttle)
var/list/shuttle_purchase_requirements_met = list() //For keeping track of ingame events that would unlock new shuttles, such as defeating a boss or discovering a secret item
var/lockdown = FALSE //disallow transit after nuke goes off
var/auto_call = 72000 //CIT CHANGE - time before in deciseconds in which the shuttle is auto called. Default is 2½ hours plus 15 for the shuttle. So total is 3.
var/auto_call = 72000 //CIT CHANGE - time before in deciseconds in which the shuttle is auto called. Default is 2½ hours plus 15 for the shuttle. So total is 3.
/datum/controller/subsystem/shuttle/Initialize(timeofday)
ordernum = rand(1, 9000)
@@ -554,7 +554,6 @@ SUBSYSTEM_DEF(shuttle)
var/obj/docking_port/stationary/transit/new_transit_dock = new(midpoint)
new_transit_dock.assigned_turfs = proposed_zone
new_transit_dock.name = "Transit for [M.id]/[M.name]"
new_transit_dock.turf_type = transit_path
new_transit_dock.owner = M
new_transit_dock.assigned_area = A
@@ -700,4 +699,4 @@ SUBSYSTEM_DEF(shuttle)
var/obj/machinery/computer/camera_advanced/shuttle_docker/C = V
C.update_hidden_docking_ports(remove_images, add_images)
QDEL_LIST(remove_images)
QDEL_LIST(remove_images)
+4 -4
View File
@@ -128,14 +128,14 @@ SUBSYSTEM_DEF(ticker)
login_music = pick(music)
else
login_music = "[global.config.directory]/title_music/sounds/[pick(music)]"
/*
crewobjlist = typesof(/datum/objective/crew)
miscreantobjlist = (typesof(/datum/objective/miscreant) - /datum/objective/miscreant)
for(var/hoorayhackyshit in crewobjlist) //taken from old Hippie's "job2obj" proc with adjustments.
var/datum/objective/crew/obj = hoorayhackyshit //dm is not a sane language in any way, shape, or form.
var/list/availableto = splittext(initial(obj.jobs),",")
for(var/job in availableto)
crewobjjobs["[job]"] += list(obj)
crewobjjobs["[job]"] += list(obj) */
if(!GLOB.syndicate_code_phrase)
GLOB.syndicate_code_phrase = generate_code_phrase()
@@ -324,12 +324,12 @@ SUBSYSTEM_DEF(ticker)
GLOB.start_state = new /datum/station_state()
GLOB.start_state.count()
//assign crew objectives and generate miscreants
/* //assign crew objectives and generate miscreants
if(CONFIG_GET(flag/allow_extended_miscreants) && GLOB.master_mode == "extended")
GLOB.miscreants_allowed = TRUE
if(CONFIG_GET(flag/allow_miscreants) && GLOB.master_mode != "extended")
GLOB.miscreants_allowed = TRUE
generate_crew_objectives()
generate_crew_objectives() */
var/list/adm = get_admin_counts()
var/list/allmins = adm["present"]
+26 -1
View File
@@ -21,7 +21,7 @@
var/mob/owner
/datum/action/New(Target)
target = Target
link_to(Target)
button = new
button.linked_action = src
button.name = name
@@ -29,6 +29,9 @@
if(desc)
button.desc = desc
/datum/action/proc/link_to(Target)
target = Target
/datum/action/Destroy()
if(owner)
Remove(owner)
@@ -689,3 +692,25 @@
else
owner.remove_alt_appearance("smallsprite")
small = FALSE
/datum/action/item_action/storage_gather_mode
name = "Switch gathering mode"
desc = "Switches the gathering mode of a storage object."
icon_icon = 'icons/mob/actions/actions_items.dmi'
button_icon_state = "storage_gather_switch"
/datum/action/item_action/storage_gather_mode/ApplyIcon(obj/screen/movable/action_button/current_button)
. = ..()
var/old_layer = target.layer
var/old_plane = target.plane
target.layer = FLOAT_LAYER //AAAH
target.plane = FLOAT_PLANE //^ what that guy said
current_button.cut_overlays()
current_button.add_overlay(target)
target.layer = old_layer
target.plane = old_plane
current_button.appearance_cache = target.appearance
/datum/action/item_action/storage_gather_mode/Trigger()
GET_COMPONENT_FROM(STR, /datum/component/storage, target)
STR.gather_mode_switch(owner)
+6 -6
View File
@@ -50,7 +50,7 @@
owner.derpspeech = min(owner.derpspeech + 5, 25)
if(prob(3))
owner.emote("drool")
else if(owner && owner.stat == CONSCIOUS && prob(3))
else if(owner.stat == CONSCIOUS && prob(3))
owner.say(pick_list_replacements(BRAIN_DAMAGE_FILE, "brain_damage"))
..()
@@ -138,13 +138,13 @@
/datum/brain_trauma/mild/muscle_weakness/on_life()
var/fall_chance = 1
if(owner && owner.m_intent == MOVE_INTENT_RUN)
if(owner.m_intent == MOVE_INTENT_RUN)
fall_chance += 2
if(prob(fall_chance) && !owner.lying && !owner.buckled)
to_chat(owner, "<span class='warning'>Your leg gives out!</span>")
owner.Knockdown(35)
else if(owner && owner.get_active_held_item())
else if(owner.get_active_held_item())
var/drop_chance = 1
var/obj/item/I = owner.get_active_held_item()
drop_chance += I.w_class
@@ -167,11 +167,11 @@
if(prob(7))
switch(rand(1,5))
if(1)
if(owner && owner.canmove && !isspaceturf(owner.loc))
if(owner.canmove && !isspaceturf(owner.loc))
to_chat(owner, "<span class='warning'>Your leg spasms!</span>")
step(owner, pick(GLOB.cardinals))
if(2)
if(owner && owner.incapacitated())
if(owner.incapacitated())
return
var/obj/item/I = owner.get_active_held_item()
if(I)
@@ -203,7 +203,7 @@
owner.ClickOn(owner)
owner.a_intent = prev_intent
if(5)
if(owner && owner.incapacitated())
if(owner.incapacitated())
return
var/obj/item/I = owner.get_active_held_item()
var/list/turf/targets = list()
+7 -7
View File
@@ -1,15 +1,15 @@
#define ROTATION_ALTCLICK 1
#define ROTATION_WRENCH 2
#define ROTATION_VERBS 4
#define ROTATION_COUNTERCLOCKWISE 8
#define ROTATION_CLOCKWISE 16
#define ROTATION_FLIP 32
#define ROTATION_ALTCLICK (1<<0)
#define ROTATION_WRENCH (1<<1)
#define ROTATION_VERBS (1<<2)
#define ROTATION_COUNTERCLOCKWISE (1<<3)
#define ROTATION_CLOCKWISE (1<<4)
#define ROTATION_FLIP (1<<5)
/datum/component/simple_rotation
var/datum/callback/can_user_rotate //Checks if user can rotate
var/datum/callback/can_be_rotated //Check if object can be rotated at all
var/datum/callback/after_rotation //Additional stuff to do after rotation
var/rotation_flags = NONE
var/default_rotation_direction = ROTATION_CLOCKWISE
@@ -0,0 +1,185 @@
// External storage-related logic:
// /mob/proc/ClickOn() in /_onclick/click.dm - clicking items in storages
// /mob/living/Move() in /modules/mob/living/living.dm - hiding storage boxes on mob movement
/datum/component/storage/concrete
var/drop_all_on_deconstruct = TRUE
var/drop_all_on_destroy = FALSE
var/transfer_contents_on_component_transfer = FALSE
var/list/datum/component/storage/slaves = list()
/datum/component/storage/concrete/Initialize()
. = ..()
RegisterSignal(COMSIG_ATOM_CONTENTS_DEL, .proc/on_contents_del)
RegisterSignal(COMSIG_OBJ_DECONSTRUCT, .proc/on_deconstruct)
/datum/component/storage/concrete/Destroy()
var/atom/real_location = real_location()
for(var/atom/_A in real_location)
_A.mouse_opacity = initial(_A.mouse_opacity)
if(drop_all_on_destroy)
do_quick_empty()
for(var/i in slaves)
var/datum/component/storage/slave = i
slave.change_master(null)
return ..()
/datum/component/storage/concrete/master()
return src
/datum/component/storage/concrete/real_location()
return parent
/datum/component/storage/concrete/OnTransfer(datum/new_parent)
if(!isatom(new_parent))
return COMPONENT_INCOMPATIBLE
var/list/mob/_is_using
if(is_using)
_is_using = is_using.Copy()
close_all()
if(transfer_contents_on_component_transfer)
var/atom/old = parent
for(var/i in old)
var/atom/movable/AM = i
AM.forceMove(new_parent)
if(_is_using)
for(var/i in _is_using)
var/mob/M = i
show_to(M)
/datum/component/storage/concrete/_insert_physical_item(obj/item/I, override = FALSE)
. = TRUE
var/atom/real_location = real_location()
if(I.loc != real_location)
I.forceMove(real_location)
refresh_mob_views()
/datum/component/storage/concrete/refresh_mob_views()
. = ..()
for(var/i in slaves)
var/datum/component/storage/slave = i
slave.refresh_mob_views()
/datum/component/storage/concrete/emp_act(severity)
var/atom/real_location = real_location()
for(var/i in real_location)
var/atom/A = i
A.emp_act(severity)
/datum/component/storage/concrete/proc/on_slave_link(datum/component/storage/S)
if(S == src)
return FALSE
slaves += S
return TRUE
/datum/component/storage/concrete/proc/on_slave_unlink(datum/component/storage/S)
slaves -= S
return FALSE
/datum/component/storage/concrete/proc/on_contents_del(atom/A)
var/atom/real_location = parent
if(A in real_location)
usr = null
remove_from_storage(A, null)
/datum/component/storage/concrete/proc/on_deconstruct(disassembled)
if(drop_all_on_deconstruct)
do_quick_empty()
/datum/component/storage/concrete/can_see_contents()
. = ..()
for(var/i in slaves)
var/datum/component/storage/slave = i
. |= slave.can_see_contents()
//Resets screen loc and other vars of something being removed from storage.
/datum/component/storage/concrete/_removal_reset(atom/movable/thing)
thing.layer = initial(thing.layer)
thing.plane = initial(thing.plane)
thing.mouse_opacity = initial(thing.mouse_opacity)
if(thing.maptext)
thing.maptext = ""
/datum/component/storage/concrete/remove_from_storage(atom/movable/AM, atom/new_location)
//Cache this as it should be reusable down the bottom, will not apply if anyone adds a sleep to dropped
//or moving objects, things that should never happen
var/atom/parent = src.parent
var/list/seeing_mobs = can_see_contents()
for(var/mob/M in seeing_mobs)
M.client.screen -= AM
if(ismob(parent.loc) && isitem(AM))
var/obj/item/I = AM
var/mob/M = parent.loc
I.dropped(M)
if(new_location)
//Reset the items values
_removal_reset(AM)
AM.forceMove(new_location)
//We don't want to call this if the item is being destroyed
AM.on_exit_storage(src)
else
//Being destroyed, just move to nullspace now (so it's not in contents for the icon update)
AM.moveToNullspace()
refresh_mob_views()
if(isobj(parent))
var/obj/O = parent
O.update_icon()
return TRUE
/datum/component/storage/concrete/proc/slave_can_insert_object(datum/component/storage/slave, obj/item/I, stop_messages = FALSE, mob/M)
return TRUE
/datum/component/storage/concrete/proc/handle_item_insertion_from_slave(datum/component/storage/slave, obj/item/I, prevent_warning = FALSE, M)
. = handle_item_insertion(I, prevent_warning, M, slave)
if(. && !prevent_warning)
slave.mob_item_insertion_feedback(usr, M, I)
/datum/component/storage/concrete/handle_item_insertion(obj/item/I, prevent_warning = FALSE, mob/M, datum/component/storage/remote) //Remote is null or the slave datum
var/datum/component/storage/concrete/master = master()
var/atom/parent = src.parent
var/moved = FALSE
if(!istype(I))
return FALSE
if(M)
if(!M.temporarilyRemoveItemFromInventory(I))
return FALSE
else
moved = TRUE //At this point if the proc fails we need to manually move the object back to the turf/mob/whatever.
if(I.pulledby)
I.pulledby.stop_pulling()
if(silent)
prevent_warning = TRUE
if(!_insert_physical_item(I))
if(moved)
if(M)
if(!M.put_in_active_hand(I))
I.forceMove(parent.drop_location())
else
I.forceMove(parent.drop_location())
return FALSE
I.on_enter_storage(master)
refresh_mob_views()
I.mouse_opacity = MOUSE_OPACITY_OPAQUE //So you can click on the area around the item to equip it, instead of having to pixel hunt
if(M)
if(M.client && M.active_storage != src)
M.client.screen -= I
if(M.observers && M.observers.len)
for(var/i in M.observers)
var/mob/dead/observe = i
if(observe.client && observe.active_storage != src)
observe.client.screen -= I
if(!remote)
parent.add_fingerprint(M)
if(!prevent_warning)
mob_item_insertion_feedback(usr, M, I)
update_icon()
return TRUE
/datum/component/storage/concrete/update_icon()
if(isobj(parent))
var/obj/O = parent
O.update_icon()
for(var/i in slaves)
var/datum/component/storage/slave = i
slave.update_icon()
@@ -0,0 +1,22 @@
/datum/component/storage/concrete/bluespace/bag_of_holding/handle_item_insertion(obj/item/W, prevent_warning = FALSE, mob/living/user)
var/atom/A = parent
if((istype(W, /obj/item/storage/backpack/holding) || count_by_type(W.GetAllContents(), /obj/item/storage/backpack/holding)))
var/turf/loccheck = get_turf(A)
if(is_reebe(loccheck.z))
user.visible_message("<span class='warning'>An unseen force knocks [user] to the ground!</span>", "<span class='big_brass'>\"I think not!\"</span>")
user.Knockdown(60)
return
var/safety = alert(user, "Doing this will have extremely dire consequences for the station and its crew. Be sure you know what you're doing.", "Put in [A.name]?", "Proceed", "Abort")
if(safety == "Abort" || !in_range(A, user) || !A || !W || user.incapacitated())
return
A.investigate_log("has become a singularity. Caused by [user.key]", INVESTIGATE_SINGULO)
to_chat(user, "<span class='danger'>The Bluespace interfaces of the two devices catastrophically malfunction!</span>")
qdel(W)
var/obj/singularity/singulo = new /obj/singularity (get_turf(A))
singulo.energy = 300 //should make it a bit bigger~
message_admins("[key_name_admin(user)] detonated a bag of holding")
log_game("[key_name(user)] detonated a bag of holding")
qdel(A)
singulo.process()
return
. = ..()
@@ -0,0 +1,21 @@
/datum/component/storage/concrete/bluespace
var/dumping_range = 8
var/dumping_sound = 'sound/items/pshoom.ogg'
var/alt_sound = 'sound/items/pshoom_2.ogg'
/datum/component/storage/concrete/bluespace/dump_content_at(atom/dest, mob/M)
var/atom/A = parent
if(A.Adjacent(M))
var/atom/dumping_location = dest.get_dumping_location()
if(get_dist(M, dumping_location) < dumping_range)
if(dumping_location.storage_contents_dump_act(src, M))
if(alt_sound && prob(1))
playsound(src, alt_sound, 40, 1)
else
playsound(src, dumping_sound, 40, 1)
M.Beam(dumping_location, icon_state="rped_upgrade", time=5)
return TRUE
to_chat(M, "The [A.name] buzzes.")
playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 0)
return FALSE
@@ -0,0 +1,17 @@
/datum/component/storage/concrete/implant
max_w_class = WEIGHT_CLASS_NORMAL
max_combined_w_class = 6
max_items = 2
drop_all_on_destroy = TRUE
drop_all_on_deconstruct = TRUE
silent = TRUE
/datum/component/storage/concrete/implant/Initialize()
. = ..()
cant_hold = typecacheof(list(/obj/item/disk/nuclear))
/datum/component/storage/concrete/implant/InheritComponent(datum/component/storage/concrete/implant/I, original)
if(!istype(I))
return ..()
max_combined_w_class += I.max_combined_w_class
max_items += I.max_items
@@ -0,0 +1,65 @@
/datum/component/storage/concrete/pockets
max_items = 2
max_w_class = WEIGHT_CLASS_SMALL
max_combined_w_class = 50
rustle_sound = FALSE
/datum/component/storage/concrete/pockets/handle_item_insertion(obj/item/I, prevent_warning, mob/user)
. = ..()
if(. && silent && !prevent_warning)
if(quickdraw)
to_chat(user, "<span class='notice'>You discreetly slip [I] into [parent]. Alt-click [parent] to remove it.</span>")
else
to_chat(user, "<span class='notice'>You discreetly slip [I] into [parent].</span>")
/datum/component/storage/concrete/pockets
max_w_class = WEIGHT_CLASS_NORMAL
/datum/component/storage/concrete/pockets/small
max_items = 1
attack_hand_interact = FALSE
/datum/component/storage/concrete/pockets/tiny
max_items = 1
max_w_class = WEIGHT_CLASS_TINY
attack_hand_interact = FALSE
/datum/component/storage/concrete/pockets/small/detective
attack_hand_interact = TRUE // so the detectives would discover pockets in their hats
/datum/component/storage/concrete/pockets/shoes
attack_hand_interact = FALSE
quickdraw = TRUE
silent = TRUE
/datum/component/storage/concrete/pockets/shoes/Initialize()
. = ..()
can_hold = typecacheof(list(
/obj/item/kitchen/knife, /obj/item/switchblade, /obj/item/pen,
/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/device/firing_pin
))
/datum/component/storage/concrete/pockets/shoes/clown/Initialize()
. = ..()
can_hold = typecacheof(list(
/obj/item/kitchen/knife, /obj/item/switchblade, /obj/item/pen,
/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/device/firing_pin, /obj/item/bikehorn))
/datum/component/storage/concrete/pockets/pocketprotector
max_items = 3
max_w_class = WEIGHT_CLASS_TINY
/datum/component/storage/concrete/pockets/pocketprotector/Initialize()
. = ..()
can_hold = typecacheof(list( //Same items as a PDA
/obj/item/pen,
/obj/item/toy/crayon,
/obj/item/lipstick,
/obj/item/device/flashlight/pen,
/obj/item/clothing/mask/cigarette))
@@ -0,0 +1,31 @@
/datum/component/storage/concrete/rped
collection_mode = COLLECT_EVERYTHING
allow_quick_gather = TRUE
allow_quick_empty = TRUE
click_gather = TRUE
max_w_class = WEIGHT_CLASS_NORMAL
max_combined_w_class = 100
max_items = 50
display_numerical_stacking = TRUE
/datum/component/storage/concrete/rped/can_be_inserted(obj/item/I, stop_messages, mob/M)
. = ..()
if(!I.get_part_rating() && !stop_messages)
to_chat(M, "<span class='warning'>[parent] only accepts machine parts!</span>")
return FALSE
/datum/component/storage/concrete/bluespace/rped
collection_mode = COLLECT_EVERYTHING
allow_quick_gather = TRUE
allow_quick_empty = TRUE
click_gather = TRUE
max_w_class = WEIGHT_CLASS_NORMAL
max_combined_w_class = 800
max_items = 400
display_numerical_stacking = TRUE
/datum/component/storage/concrete/bluespace/rped/can_be_inserted(obj/item/I, stop_messages, mob/M)
. = ..()
if(!I.get_part_rating() && !stop_messages)
to_chat(M, "<span class='warning'>[parent] only accepts machine parts!</span>")
return FALSE
@@ -0,0 +1,5 @@
/datum/component/storage/concrete/secret_satchel/can_be_inserted(I,msg,user)
if(SSpersistence.spawned_objects[I])
to_chat(user, "<span class='warning'>[I] is unstable after its journey through space and time, it wouldn't survive another trip.</span>")
return FALSE
return ..()
@@ -0,0 +1,67 @@
//Stack-only storage.
/datum/component/storage/concrete/stack
display_numerical_stacking = TRUE
var/max_combined_stack_amount = 300
max_w_class = WEIGHT_CLASS_NORMAL
max_combined_w_class = WEIGHT_CLASS_NORMAL * 14
/datum/component/storage/concrete/stack/proc/total_stack_amount()
. = 0
var/atom/real_location = real_location()
for(var/i in real_location)
var/obj/item/stack/S = i
if(!istype(S))
continue
. += S.amount
/datum/component/storage/concrete/stack/proc/remaining_space()
return max(0, max_combined_stack_amount - total_stack_amount())
//emptying procs do not need modification as stacks automatically merge.
/datum/component/storage/concrete/stack/_insert_physical_item(obj/item/I, override = FALSE)
if(!istype(I, /obj/item/stack))
if(override)
return ..()
return FALSE
var/atom/real_location = real_location()
var/obj/item/stack/S = I
var/can_insert = min(S.amount, remaining_space())
if(!can_insert)
return FALSE
for(var/i in real_location) //combine.
if(QDELETED(I))
return
var/obj/item/stack/_S = i
if(!istype(_S))
continue
if(_S.merge_type == S.merge_type)
_S.add(can_insert)
S.use(can_insert, TRUE)
return TRUE
return ..(S.change_stack(null, can_insert), override)
/datum/component/storage/concrete/stack/remove_from_storage(obj/item/I, atom/new_location)
var/atom/real_location = real_location()
var/obj/item/stack/S = I
if(!istype(S))
return ..()
if(S.amount > S.max_amount)
var/overrun = S.amount - S.max_amount
S.amount = S.max_amount
var/obj/item/stack/temp = new S.type(real_location, overrun)
handle_item_insertion(temp)
return ..(S, new_location)
/datum/component/storage/concrete/stack/_process_numerical_display()
var/atom/real_location = real_location()
. = list()
for(var/i in real_location)
var/obj/item/stack/I = i
if(!istype(I) || QDELETED(I)) //We're specialized stack storage, just ignore non stacks.
continue
if(!.[I.merge_type])
.[I.merge_type] = new /datum/numbered_display(I, I.amount)
else
var/datum/numbered_display/ND = .[I.merge_type]
ND.number += I.amount
+2 -2
View File
@@ -60,7 +60,7 @@
/datum/component/storage/Initialize(datum/component/storage/concrete/master)
if(!isatom(parent))
. = COMPONENT_INCOMPATIBLE
return COMPONENT_INCOMPATIBLE
if(master)
change_master(master)
boxes = new(null, src)
@@ -727,4 +727,4 @@
if(COLLECT_EVERYTHING)
to_chat(user, "[parent] now picks up all items in a tile at once.")
if(COLLECT_ONE)
to_chat(user, "[parent] now picks up one item at a time.")
to_chat(user, "[parent] now picks up one item at a time.")
+5 -5
View File
@@ -3,21 +3,21 @@
var/amount
var/overlay
var/static/list/blacklist = typecacheof(
var/static/list/blacklist = typecacheof(list(
/turf/open/lava,
/turf/open/space,
/turf/open/water,
/turf/open/chasm,
/turf/open/chasm)
)
var/static/list/immunelist = typecacheof(
var/static/list/immunelist = typecacheof(list(
/turf/closed/wall/mineral/diamond,
/turf/closed/indestructible,
/turf/open/indestructible,
/turf/open/indestructible)
)
var/static/list/resistlist = typecacheof(
/turf/closed/wall/r_wall,
/turf/closed/wall/r_wall
)
/datum/component/thermite/Initialize(_amount)
+8 -8
View File
@@ -17,6 +17,14 @@
if(HasDisease(D))
return FALSE
var/can_infect = FALSE
for(var/host_type in D.infectable_biotypes)
if(host_type in mob_biotypes)
can_infect = TRUE
break
if(!can_infect)
return FALSE
if(!(type in D.viable_mobtypes))
return FALSE
@@ -132,14 +140,6 @@
if(has_trait(TRAIT_VIRUSIMMUNE) && !D.bypasses_immunity)
return FALSE
var/can_infect = FALSE
for(var/host_type in D.infectable_hosts)
if(host_type in dna.species.species_traits)
can_infect = TRUE
break
if(!can_infect)
return FALSE
for(var/thing in D.required_organs)
if(!((locate(thing) in bodyparts) || (locate(thing) in internal_organs)))
return FALSE
+2 -2
View File
@@ -30,7 +30,7 @@
var/list/required_organs = list()
var/needs_all_cures = TRUE
var/list/strain_data = list() //dna_spread special bullshit
var/list/infectable_hosts = list(SPECIES_ORGANIC) //if the disease can spread on organics, synthetics, or undead
var/list/infectable_biotypes = list(MOB_ORGANIC) //if the disease can spread on organics, synthetics, or undead
var/process_dead = FALSE //if this ticks while the host is dead
/datum/disease/Destroy()
@@ -139,7 +139,7 @@
var/static/list/copy_vars = list("name", "visibility_flags", "disease_flags", "spread_flags", "form", "desc", "agent", "spread_text",
"cure_text", "max_stages", "stage_prob", "viable_mobtypes", "cures", "infectivity", "cure_chance",
"bypasses_immunity", "permeability_mod", "severity", "required_organs", "needs_all_cures", "strain_data",
"infectable_hosts", "process_dead")
"infectable_biotypes", "process_dead")
var/datum/disease/D = new type()
for(var/V in copy_vars)
@@ -12,7 +12,7 @@
if(!..())
return
A.process_dead = TRUE
A.infectable_hosts |= SPECIES_UNDEAD
A.infectable_biotypes |= MOB_UNDEAD
/datum/symptom/inorganic_adaptation
name = "Inorganic Biology"
@@ -27,4 +27,4 @@
/datum/symptom/inorganic_adaptation/Start(datum/disease/advance/A)
if(!..())
return
A.infectable_hosts |= SPECIES_INORGANIC
A.infectable_biotypes |= MOB_INORGANIC
@@ -1,44 +0,0 @@
/*
//////////////////////////////////////
Weakness
Slightly noticeable.
Lowers resistance slightly.
Decreases stage speed moderately.
Decreases transmittablity moderately.
Moderate Level.
Bonus
Deals stamina damage to the host
//////////////////////////////////////
*/
/datum/symptom/weakness
name = "Weakness"
stealth = -1
resistance = -1
stage_speed = -2
transmittable = -2
level = 3
severity = 3
/datum/symptom/weakness/Activate(datum/disease/advance/A)
..()
if(prob(SYMPTOM_ACTIVATION_PROB))
var/mob/living/M = A.affected_mob
switch(A.stage)
if(1, 2)
to_chat(M, "<span class='warning'>[pick("You feel weak.", "You feel lazy.")]</span>")
if(3, 4)
to_chat(M, "<span class='warning'><b>[pick("You feel very frail.", "You think you might faint.")]</span>")
M.adjustStaminaLoss(15)
else
to_chat(M, "<span class='userdanger'>[pick("You feel tremendously weak!", "Your body trembles as exhaustion creeps over you.")]</span>")
M.adjustStaminaLoss(30)
if(M.getStaminaLoss() > 60 && !M.stat)
M.visible_message("<span class='warning'>[M] faints!</span>", "<span class='userdanger'>You swoon and faint...</span>")
M.AdjustSleeping(100)
return
+1 -1
View File
@@ -10,7 +10,7 @@
viable_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
desc = "If left untreated subject will regurgitate bees."
severity = DISEASE_SEVERITY_MEDIUM
infectable_hosts = list(SPECIES_ORGANIC, SPECIES_UNDEAD) //bees nesting in corpses
infectable_biotypes = list(MOB_ORGANIC, MOB_UNDEAD) //bees nesting in corpses
/datum/disease/beesease/stage_act()
..()
+1 -1
View File
@@ -10,7 +10,7 @@
permeability_mod = 0.75
desc = "This disease disrupts the magnetic field of your body, making it act as if a powerful magnet. Injections of iron help stabilize the field."
severity = DISEASE_SEVERITY_MEDIUM
infectable_hosts = list(SPECIES_ORGANIC, SPECIES_ROBOTIC)
infectable_biotypes = list(MOB_ORGANIC, MOB_ROBOTIC)
process_dead = TRUE
/datum/disease/magnitis/stage_act()
+1 -1
View File
@@ -11,7 +11,7 @@
viable_mobtypes = list(/mob/living/carbon/human)
desc = "Subject is possesed by the vengeful spirit of a parrot. Call the priest."
severity = DISEASE_SEVERITY_MEDIUM
infectable_hosts = list(SPECIES_ORGANIC, SPECIES_UNDEAD, SPECIES_INORGANIC, SPECIES_ROBOTIC)
infectable_biotypes = list(MOB_ORGANIC, MOB_UNDEAD, MOB_INORGANIC, MOB_ROBOTIC)
bypasses_immunity = TRUE //2spook
var/mob/living/simple_animal/parrot/Poly/ghost/parrot
+2 -2
View File
@@ -149,7 +149,7 @@
stage4 = list("<span class='danger'>Your skin feels very loose.</span>", "<span class='danger'>You can feel... something...inside you.</span>")
stage5 = list("<span class='danger'>Your skin feels as if it's about to burst off!</span>")
new_form = /mob/living/silicon/robot
infectable_hosts = list(SPECIES_ORGANIC, SPECIES_UNDEAD, SPECIES_ROBOTIC)
infectable_biotypes = list(MOB_ORGANIC, MOB_UNDEAD, MOB_ROBOTIC)
/datum/disease/transformation/robot/stage_act()
..()
@@ -263,4 +263,4 @@
stage4 = list("<span class='danger'>You're ravenous.</span>")
stage5 = list("<span class='danger'>You have become a morph.</span>")
new_form = /mob/living/simple_animal/hostile/morph
infectable_hosts = list(SPECIES_ORGANIC, SPECIES_INORGANIC, SPECIES_UNDEAD) //magic!
infectable_biotypes = list(MOB_ORGANIC, MOB_INORGANIC, MOB_UNDEAD) //magic!
+1
View File
@@ -11,6 +11,7 @@
/datum/mood_event/Destroy()
remove_effects()
return ..()
/datum/mood_event/proc/add_effects(param)
return
+4 -4
View File
@@ -56,13 +56,13 @@ GLOBAL_LIST_EMPTY(mutations_list)
/datum/mutation/human/proc/on_acquiring(mob/living/carbon/human/owner)
if(!owner || !istype(owner) || owner.stat == DEAD || (src in owner.dna.mutations))
return 1
return TRUE
if(species_allowed.len && !species_allowed.Find(owner.dna.species.id))
return 1
return TRUE
if(health_req && owner.health < health_req)
return 1
return TRUE
if(limb_req && !owner.get_bodypart(limb_req))
return 1
return TRUE
owner.dna.mutations.Add(src)
if(text_gain_indication)
to_chat(owner, text_gain_indication)
+10
View File
@@ -0,0 +1,10 @@
//Used in storage.
/datum/numbered_display
var/obj/item/sample_object
var/number
/datum/numbered_display/New(obj/item/sample, _number = 1)
if(!istype(sample))
qdel(src)
sample_object = sample
number = _number
+52
View File
@@ -21,6 +21,20 @@
mappath = "[prefix][shuttle_id].dmm"
. = ..()
/datum/map_template/shuttle/load(turf/T, centered)
. = ..()
if(!.)
return
var/list/turfs = block( locate(.[MAP_MINX], .[MAP_MINY], .[MAP_MINZ]),
locate(.[MAP_MAXX], .[MAP_MAXY], .[MAP_MAXZ]))
for(var/i in 1 to turfs.len)
var/turf/place = turfs[i]
if(istype(place, /turf/open/space)) // This assumes all shuttles are loaded in a single spot then moved to their real destination.
continue
if(length(place.baseturfs) < 2) // Some snowflake shuttle shit
continue
place.baseturfs.Insert(3, /turf/baseturf_skipover/shuttle)
//Whatever special stuff you want
/datum/map_template/shuttle/proc/on_bought()
return
@@ -60,7 +74,21 @@
port_id = "infiltrator"
can_be_bought = FALSE
/datum/map_template/shuttle/aux_base
port_id = "aux_base"
can_be_bought = FALSE
/datum/map_template/shuttle/escape_pod
port_id = "escape_pod"
can_be_bought = FALSE
/datum/map_template/shuttle/assault_pod
port_id = "assault_pod"
can_be_bought = FALSE
/datum/map_template/shuttle/pirate
port_id = "pirate"
can_be_bought = FALSE
// Shuttles start here:
@@ -355,3 +383,27 @@
/datum/map_template/shuttle/arrival/pubby
suffix = "pubby"
name = "arrival shuttle (Pubby)"
/datum/map_template/shuttle/arrival/omega
suffix = "omega"
name = "arrival shuttle (Omega)"
/datum/map_template/shuttle/aux_base/default
suffix = "default"
name = "auxilliary base (Default)"
/datum/map_template/shuttle/escape_pod/default
suffix = "default"
name = "escape pod (Default)"
/datum/map_template/shuttle/escape_pod/large
suffix = "large"
name = "escape pod (Large)"
/datum/map_template/shuttle/assault_pod/default
suffix = "default"
name = "assault pod (Default)"
/datum/map_template/shuttle/pirate/default
suffix = "default"
name = "pirate ship (Default)"
+1 -3
View File
@@ -53,9 +53,7 @@
if(!where)
where = "at your feet"
if(where == "in your backpack")
var/obj/item/storage/B = H.back
B.orient2hud(trait_holder)
B.show_to(trait_holder)
H.back.SendSignal(COMSIG_TRY_STORAGE_SHOW, H)
where_text = "<span class='boldnotice'>There is a precious family [heirloom.name] [where], passed down from generation to generation. Keep it safe!</span>"
/datum/trait/family_heirloom/post_add()
-7
View File
@@ -81,13 +81,6 @@
if(usr)
A.shockedby += text("\[[time_stamp()]\][usr](ckey:[usr.ckey])")
add_logs(usr, A, "electrified")
sleep(10)
if(A)
while (A.secondsElectrified > 0)
A.secondsElectrified -= 1
if(A.secondsElectrified < 0)
A.set_electrified(0)
sleep(10)
if(WIRE_SAFETY)
A.safe = !A.safe
if(!A.density)
+27 -61
View File
@@ -52,7 +52,6 @@
var/safe = FALSE //Is the area teleport-safe: no space / radiation / aggresive mobs / other dangers
var/no_air = null
var/list/related // the other areas of the same type as this
var/parallax_movedir = 0
@@ -88,27 +87,10 @@ GLOBAL_LIST_EMPTY(teleportlocs)
// ===
// Added to fix mech fabs 05/2013 ~Sayu
// This is necessary due to lighting subareas. If you were to go in assuming that things in
// the same logical /area have the parent /area object... well, you would be mistaken. If you
// want to find machines, mobs, etc, in the same logical area, you will need to check all the
// related areas. This returns a master contents list to assist in that.
/proc/area_contents(area/A)
if(!istype(A))
return null
var/list/contents = list()
for(var/area/LSA in A.related)
contents += LSA.contents
return contents
/area/Initialize()
icon_state = ""
layer = AREA_LAYER
uid = ++global_uid
related = list(src)
map_name = name // Save the initial (the name set in the map) name of the area.
canSmoothWithAreas = typecacheof(canSmoothWithAreas)
@@ -195,11 +177,6 @@ GLOBAL_LIST_EMPTY(teleportlocs)
/area/proc/atmosalert(danger_level, obj/source)
if(danger_level != atmosalm)
if (danger_level==2)
var/list/cameras = list()
for(var/area/RA in related)
for (var/item in RA.cameras)
var/obj/machinery/camera/C = item
cameras += C
for (var/item in GLOB.silicon_mobs)
var/mob/living/silicon/aiPlayer = item
@@ -254,18 +231,12 @@ GLOBAL_LIST_EMPTY(teleportlocs)
if(always_unpowered == 1) //no fire alarms in space/asteroid
return
var/list/cameras = list()
for(var/area/RA in related)
if (!( RA.fire ))
RA.set_fire_alarm_effect()
RA.ModifyFiredoors(FALSE)
for(var/item in RA.firealarms)
var/obj/machinery/firealarm/F = item
F.update_icon()
for (var/item in RA.cameras)
var/obj/machinery/camera/C = item
cameras += C
if (!fire)
set_fire_alarm_effect()
ModifyFiredoors(FALSE)
for(var/item in firealarms)
var/obj/machinery/firealarm/F = item
F.update_icon()
for (var/item in GLOB.alert_consoles)
var/obj/machinery/computer/station_alert/a = item
@@ -283,15 +254,14 @@ GLOBAL_LIST_EMPTY(teleportlocs)
START_PROCESSING(SSobj, src)
/area/proc/firereset(obj/source)
for(var/area/RA in related)
if (RA.fire)
RA.fire = 0
RA.mouse_opacity = MOUSE_OPACITY_TRANSPARENT
RA.updateicon()
RA.ModifyFiredoors(TRUE)
for(var/item in RA.firealarms)
var/obj/machinery/firealarm/F = item
F.update_icon()
if (fire)
fire = 0
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
updateicon()
ModifyFiredoors(TRUE)
for(var/item in firealarms)
var/obj/machinery/firealarm/F = item
F.update_icon()
for (var/item in GLOB.silicon_mobs)
var/mob/living/silicon/aiPlayer = item
@@ -310,8 +280,7 @@ GLOBAL_LIST_EMPTY(teleportlocs)
/area/process()
if(firedoors_last_closed_on + 100 < world.time) //every 10 seconds
for(var/area/RA in related)
RA.ModifyFiredoors(FALSE)
ModifyFiredoors(FALSE)
/area/proc/close_and_lock_door(obj/machinery/door/DOOR)
set waitfor = FALSE
@@ -323,17 +292,11 @@ GLOBAL_LIST_EMPTY(teleportlocs)
if(always_unpowered == 1) //no burglar alarms in space/asteroid
return
var/list/cameras = list()
for(var/area/RA in related)
//Trigger alarm effect
RA.set_fire_alarm_effect()
//Lockdown airlocks
for(var/obj/machinery/door/DOOR in RA)
close_and_lock_door(DOOR)
for (var/item in RA.cameras)
var/obj/machinery/camera/C = item
cameras += C
//Trigger alarm effect
set_fire_alarm_effect()
//Lockdown airlocks
for(var/obj/machinery/door/DOOR in src)
close_and_lock_door(DOOR)
for (var/i in GLOB.silicon_mobs)
var/mob/living/silicon/SILICON = i
@@ -429,10 +392,9 @@ GLOBAL_LIST_EMPTY(teleportlocs)
// called when power status changes
/area/proc/power_change()
for(var/area/RA in related)
for(var/obj/machinery/M in RA) // for each machine in the area
M.power_change() // reverify power status (to update icons etc.)
RA.updateicon()
for(var/obj/machinery/M in src) // for each machine in the area
M.power_change() // reverify power status (to update icons etc.)
updateicon()
/area/proc/usage(chan)
var/used = 0
@@ -553,3 +515,7 @@ GLOBAL_LIST_EMPTY(teleportlocs)
/area/drop_location()
CRASH("Bad op: area/drop_location() called")
// A hook so areas can modify the incoming args
/area/proc/PlaceOnTopReact(list/new_baseturfs, turf/fake_turf_type, flags)
return flags
+7
View File
@@ -16,6 +16,13 @@
canSmoothWithAreas = type
. = ..()
/area/shuttle/PlaceOnTopReact(list/new_baseturfs, turf/fake_turf_type, flags)
. = ..()
if(length(new_baseturfs) > 1 || fake_turf_type)
return // More complicated larger changes indicate this isn't a player
if(ispath(new_baseturfs[1], /turf/open/floor/plating))
new_baseturfs.Insert(1, /turf/baseturf_skipover/shuttle)
////////////////////////////Multi-area shuttles////////////////////////////
////////////////////////////Syndicate infiltrator////////////////////////////
+21 -3
View File
@@ -387,13 +387,31 @@
return FALSE
/atom/proc/storage_contents_dump_act(obj/item/storage/src_object, mob/user)
return 0
if(GetComponent(/datum/component/storage))
return component_storage_contents_dump_act(src_object, user)
return FALSE
/atom/proc/component_storage_contents_dump_act(datum/component/storage/src_object, mob/user)
var/list/things = src_object.contents()
var/datum/progressbar/progress = new(user, things.len, src)
GET_COMPONENT(STR, /datum/component/storage)
while (do_after(user, 10, TRUE, src, FALSE, CALLBACK(STR, /datum/component/storage.proc/handle_mass_item_insertion, things, src_object, user, progress)))
stoplag(1)
qdel(progress)
to_chat(user, "<span class='notice'>You dump as much of [src_object.parent]'s contents into [STR.insert_preposition]to [src] as you can.</span>")
STR.orient2hud(user)
src_object.orient2hud(user)
if(user.active_storage) //refresh the HUD to show the transfered contents
user.active_storage.close(user)
user.active_storage.show_to(user)
return TRUE
/atom/proc/get_dumping_location(obj/item/storage/source,mob/user)
return null
//This proc is called on the location of an atom when the atom is Destroy()'d
/atom/proc/handle_atom_del(atom/A)
SendSignal(COMSIG_ATOM_CONTENTS_DEL, A)
//called when the turf the atom resides on is ChangeTurfed
/atom/proc/HandleTurfChange(turf/T)
@@ -526,8 +544,8 @@
/atom/Entered(atom/movable/AM, atom/oldLoc)
SendSignal(COMSIG_ATOM_ENTERED, AM, oldLoc)
/atom/Exited(atom/movable/AM)
SendSignal(COMSIG_ATOM_EXITED, AM)
/atom/Exited(atom/movable/AM, atom/newLoc)
SendSignal(COMSIG_ATOM_EXITED, AM, newLoc)
/atom/proc/return_temperature()
return
+11 -6
View File
@@ -492,12 +492,12 @@
if(spin)
SpinAnimation(5, 1)
SendSignal(COMSIG_MOVABLE_THROW, TT, spin)
SSthrowing.processing[src] = TT
if (SSthrowing.state == SS_PAUSED && length(SSthrowing.currentrun))
SSthrowing.currentrun[src] = TT
TT.tick()
/atom/movable/proc/handle_buckled_mob_movement(newloc,direct)
for(var/m in buckled_mobs)
var/mob/living/buckled_mob = m
@@ -514,6 +514,13 @@
return 1
return ..()
// called when this atom is removed from a storage item, which is passed on as S. The loc variable is already set to the new destination before this is called.
/atom/movable/proc/on_exit_storage(datum/component/storage/concrete/S)
return
// called when this atom is added into a storage item, which is passed on as S. The loc variable is already set to the storage item.
/atom/movable/proc/on_enter_storage(datum/component/storage/concrete/S)
return
/atom/movable/proc/get_spacemove_backup()
var/atom/movable/dense_object_backup
@@ -538,7 +545,7 @@
/atom/movable/proc/relay_container_resist(mob/living/user, obj/O)
return
// CITADEL CHANGE - adds final_pixel_y and final_pixel_x to do_attack_animation args // maybe not needed anymore we'll try it
/atom/movable/proc/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect)
if(!no_effect && (visual_effect_icon || used_item))
do_item_attack_animation(A, visual_effect_icon, used_item)
@@ -675,9 +682,8 @@
if(ismob(loc))
var/mob/M = loc
M.transferItemToLoc(src, targetturf, TRUE) //nodrops disks when?
else if(istype(loc, /obj/item/storage))
var/obj/item/storage/S = loc
S.remove_from_storage(src, targetturf)
else if(loc.SendSignal(COMSIG_CONTAINS_STORAGE))
loc.SendSignal(COMSIG_TRY_STORAGE_TAKE, src, targetturf, TRUE)
else
forceMove(targetturf)
// move the disc, so ghosts remain orbiting it even if it's "destroyed"
@@ -708,7 +714,6 @@
return FALSE
/* Language procs */
/atom/movable/proc/get_language_holder(shadow=TRUE)
if(language_holder)
@@ -21,7 +21,7 @@
strip_delay = 70
resistance_flags = NONE
permeability_coefficient = 0.05
pockets = /obj/item/storage/internal/pocket/shoes
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
//The super annoying version
/obj/item/clothing/shoes/clown_shoes/banana_shoes/combat
@@ -32,7 +32,7 @@
strip_delay = 70
resistance_flags = NONE
permeability_coefficient = 0.05
pockets = /obj/item/storage/internal/pocket/shoes
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
always_noslip = TRUE
var/max_recharge = 3000 //30 peels worth
var/recharge_rate = 34 //about 1/3 of a peel per tick
+45
View File
@@ -573,6 +573,8 @@ GLOBAL_LIST_EMPTY(possible_items_special)
return captured_amount >= target_amount
//Changeling Objectives
/datum/objective/absorb
/datum/objective/absorb/proc/gen_amount_goal(lowbound = 4, highbound = 6)
@@ -604,7 +606,47 @@ GLOBAL_LIST_EMPTY(possible_items_special)
absorbedcount += changeling.absorbedcount
return absorbedcount >= target_amount
/datum/objective/absorb_most
explanation_text = "Extract more compatible genomes than any other Changeling."
/datum/objective/absorb_most/check_completion()
var/list/datum/mind/owners = get_owners()
var/absorbedcount = 0
for(var/datum/mind/M in owners)
if(!M)
continue
var/datum/antagonist/changeling/changeling = M.has_antag_datum(/datum/antagonist/changeling)
if(!changeling || !changeling.stored_profiles)
continue
absorbedcount += changeling.absorbedcount
for(var/datum/antagonist/changeling/changeling2 in GLOB.antagonists)
if(!changeling2.owner || !changeling2.stored_profiles || changeling2.absorbedcount < absorbedcount)
continue
return FALSE
return TRUE
/datum/objective/absorb_changeling
explanation_text = "Absorb another Changeling."
/datum/objective/absorb_changeling/check_completion()
var/list/datum/mind/owners = get_owners()
for(var/datum/mind/M in owners)
if(!M)
continue
var/datum/antagonist/changeling/changeling = M.has_antag_datum(/datum/antagonist/changeling)
if(!changeling)
continue
var/total_genetic_points = changeling.geneticpoints
for(var/obj/effect/proc_holder/changeling/p in changeling.purchasedpowers)
total_genetic_points += p.dna_cost
if(total_genetic_points > initial(changeling.geneticpoints))
return TRUE
return FALSE
//End Changeling Objectives
/datum/objective/destroy
martyr_compatible = 1
@@ -829,3 +871,6 @@ GLOBAL_LIST_EMPTY(possible_items_special)
/datum/objective/changeling_team_objective/impersonate_department/impersonate_heads
explanation_text = "Have X or more heads of staff escape on the shuttle disguised as heads, while the real heads are dead"
command_staff_only = TRUE
+4 -4
View File
@@ -413,10 +413,10 @@ Class Procs:
var/obj/item/stack/SN = new SB.merge_type(null,used_amt)
component_parts += SN
else
W.remove_from_storage(B, src)
component_parts += B
B.moveToNullspace()
W.handle_item_insertion(A, 1)
if(W.SendSignal(COMSIG_TRY_STORAGE_TAKE, B, src))
component_parts += B
B.moveToNullspace()
W.SendSignal(COMSIG_TRY_STORAGE_INSERT, A, null, null, TRUE)
component_parts -= A
to_chat(user, "<span class='notice'>[A.name] replaced with [B.name].</span>")
shouldplaysound = 1 //Only play the sound when parts are actually replaced!

Some files were not shown because too many files have changed in this diff Show More