This commit is contained in:
LetterJay
2017-09-13 20:58:57 -05:00
171 changed files with 2713 additions and 2483 deletions
@@ -7,6 +7,9 @@
/area/ruin/powered/golem_ship)
"c" = (
/obj/structure/closet/crate,
/obj/item/shovel,
/obj/item/shovel,
/obj/item/shovel,
/obj/item/pickaxe,
/obj/item/pickaxe,
/obj/item/pickaxe,
@@ -19,6 +22,8 @@
/area/ruin/powered/golem_ship)
"d" = (
/obj/structure/closet/crate,
/obj/item/shovel,
/obj/item/shovel,
/obj/item/pickaxe,
/obj/item/pickaxe,
/obj/item/storage/bag/ore,
@@ -694,8 +694,8 @@
/area/ruin/powered/syndicate_lava_base)
"bJ" = (
/obj/structure/table/reinforced,
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted,
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted,
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot,
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot,
/turf/open/floor/plasteel/vault{
dir = 8
},
@@ -67,7 +67,7 @@
/area/ruin/space/has_grav/derelictoutpost/cargobay)
"ao" = (
/obj/machinery/power/apc{
cell_type = 0;
start_charge = 0;
dir = 4;
name = "Cargo Bay APC";
pixel_x = 24
@@ -749,7 +749,7 @@
/area/ruin/space/has_grav/derelictoutpost/powerstorage)
"ca" = (
/obj/machinery/power/apc{
cell_type = 0;
start_charge = 0;
dir = 4;
name = "Power Storage APC";
pixel_x = 23;
@@ -845,7 +845,7 @@
/area/ruin/space/has_grav/derelictoutpost)
"ck" = (
/obj/machinery/power/apc{
cell_type = 0;
start_charge = 0;
dir = 2;
name = "Tradepost APC";
pixel_y = -24
@@ -2006,7 +2006,7 @@
/area/ruin/space/has_grav/derelictoutpost/cargostorage)
"el" = (
/obj/machinery/power/apc{
cell_type = 0;
start_charge = 0;
dir = 4;
name = "Cargo Storage APC";
pixel_x = 24
@@ -3907,4 +3907,4 @@ aa
aa
aa
aa
"}
"}
@@ -815,8 +815,8 @@
/area/ruin/unpowered)
"cC" = (
/obj/structure/closet/crate/secure/weapon,
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted,
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted,
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot,
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot,
/turf/open/floor/mineral/titanium/yellow/airless,
/area/ruin/unpowered)
"cD" = (
+5 -9
View File
@@ -1096,8 +1096,7 @@
d2 = 8;
icon_state = "0-8"
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Hydroponics APC";
pixel_x = 24
@@ -1466,8 +1465,7 @@
/area/ruin/space/has_grav/deepstorage)
"cQ" = (
/obj/structure/cable/yellow,
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Storage APC";
pixel_x = 24
@@ -2260,8 +2258,7 @@
d2 = 8;
icon_state = "0-8"
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Armory APC";
pixel_x = 24
@@ -3085,8 +3082,7 @@
"fE" = (
/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,
/obj/structure/cable/yellow,
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Dormory APC";
pixel_x = 24
@@ -6625,4 +6621,4 @@ aa
aa
aa
aa
"}
"}
@@ -174,7 +174,6 @@
dir = 1
},
/obj/machinery/power/apc{
cell_type = 2500;
dir = 1;
name = "Worn-out APC";
pixel_x = 1;
@@ -44,7 +44,6 @@
/area/tcommsat/chamber)
"ak" = (
/obj/machinery/power/apc{
cell_type = 2500;
dir = 1;
name = "Worn-out APC";
pixel_x = 1;
-2
View File
@@ -350,7 +350,6 @@
icon_state = "0-8"
},
/obj/machinery/power/apc{
cell_type = 2500;
dir = 1;
name = "Mining Drone Bay APC";
pixel_y = 24
@@ -848,7 +847,6 @@
d2 = 4
},
/obj/machinery/power/apc{
cell_type = 2500;
dir = 1;
name = "Bridge APC";
pixel_y = 24
+14 -28
View File
@@ -655,8 +655,7 @@
name = "Hotel Guest Room 3"
})
"bN" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Guest Room APC";
pixel_y = -24
@@ -719,8 +718,7 @@
name = "Hotel Guest Room 4"
})
"bT" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Guest Room APC";
pixel_y = -24
@@ -783,8 +781,7 @@
name = "Hotel Guest Room 5"
})
"bZ" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Guest Room APC";
pixel_y = -24
@@ -847,8 +844,7 @@
name = "Hotel Guest Room 6"
})
"cf" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Guest Room APC";
pixel_y = -24
@@ -1379,8 +1375,7 @@
name = "Hotel Guest Room 2"
})
"dn" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Guest Room APC";
pixel_y = 25
@@ -1461,8 +1456,7 @@
name = "Hotel Guest Room 1"
})
"dv" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Guest Room APC";
pixel_y = 25
@@ -1874,8 +1868,7 @@
/turf/open/floor/plasteel/white,
/area/ruin/space/has_grav/hotel/workroom)
"eA" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Laundry APC";
pixel_y = -24
@@ -2080,8 +2073,7 @@
/turf/open/floor/plating,
/area/ruin/space/has_grav/hotel)
"fh" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Kitchen APC";
pixel_y = -24
@@ -2874,8 +2866,7 @@
/turf/open/floor/plasteel/cafeteria,
/area/ruin/space/has_grav/hotel/bar)
"hA" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Staff Room APC";
pixel_y = -24
@@ -3261,8 +3252,7 @@
},
/area/ruin/space/has_grav/hotel/power)
"iw" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Power Storage APC";
pixel_y = 25
@@ -3427,8 +3417,7 @@
},
/area/ruin/space/has_grav/hotel/power)
"iU" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Security APC";
pixel_y = -24
@@ -3500,8 +3489,7 @@
/turf/open/floor/plating,
/area/ruin/space/has_grav/hotel/pool)
"iZ" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Pool APC";
pixel_y = -24
@@ -3559,8 +3547,7 @@
/obj/machinery/light{
dir = 8
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Dock APC";
pixel_y = -24
@@ -4824,8 +4811,7 @@
/turf/open/floor/plasteel/neutral,
/area/ruin/space/has_grav/hotel/custodial)
"mJ" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Custodial APC";
pixel_y = -24
+3 -6
View File
@@ -1973,8 +1973,7 @@
})
"cK" = (
/obj/structure/cable,
/obj/machinery/power/apc{
cell_type = 15000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 2;
locked = 1;
name = "Worn-out APC";
@@ -4917,8 +4916,7 @@
})
"gG" = (
/obj/structure/cable,
/obj/machinery/power/apc{
cell_type = 15000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 4;
locked = 0;
name = "Worn-out APC";
@@ -6969,8 +6967,7 @@
icon_state = "0-2";
d2 = 2
},
/obj/machinery/power/apc{
cell_type = 15000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 1;
locked = 0;
name = "Worn-out APC";
+7 -14
View File
@@ -371,9 +371,8 @@
icon_state = "0-2";
d2 = 2
},
/obj/machinery/power/apc{
/obj/machinery/power/apc/highcap/ten_k{
auto_name = 1;
cell_type = 9000;
dir = 4;
name = "Engineering APC";
pixel_x = 27;
@@ -660,8 +659,7 @@
/turf/open/floor/plasteel/black,
/area/awaymission/research/interior/gateway)
"cb" = (
/obj/machinery/power/apc{
cell_type = 12000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 4;
name = "Gateway APC";
pixel_x = 24
@@ -988,8 +986,7 @@
d2 = 2;
icon_state = "1-2"
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Genetics APC";
pixel_x = 24
@@ -1718,8 +1715,7 @@
/turf/open/floor/plasteel/whitepurple,
/area/awaymission/research/interior)
"fa" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Cryostatis APC";
pixel_x = 24
@@ -1889,8 +1885,7 @@
/turf/open/floor/plasteel/black,
/area/awaymission/research/interior/secure)
"fy" = (
/obj/machinery/power/apc{
cell_type = 12000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 4;
name = "Vault APC";
pixel_x = 24
@@ -3057,8 +3052,7 @@
/turf/open/floor/plating,
/area/awaymission/research/interior/maint)
"iw" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Genetics APC";
pixel_x = 24
@@ -3655,8 +3649,7 @@
},
/area/awaymission/research/interior/medbay)
"kp" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Dorms APC";
pixel_x = 24
+6 -12
View File
@@ -3159,8 +3159,7 @@
dir = 1;
network = list("UO45")
},
/obj/machinery/power/apc{
cell_type = 15000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 2;
locked = 0;
name = "Hydroponics APC";
@@ -6240,8 +6239,7 @@
icon_state = "0-4";
d2 = 4
},
/obj/machinery/power/apc{
cell_type = 15000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 1;
locked = 0;
name = "UO45 Bar APC";
@@ -7619,8 +7617,7 @@
d2 = 8;
icon_state = "0-8"
},
/obj/machinery/power/apc{
cell_type = 15000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 2;
locked = 0;
name = "UO45 Research Division APC";
@@ -8313,8 +8310,7 @@
})
"mE" = (
/obj/structure/cable,
/obj/machinery/power/apc{
cell_type = 15000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 2;
locked = 0;
name = "UO45 Gateway APC";
@@ -11932,8 +11928,7 @@
icon_state = "0-4";
d2 = 4
},
/obj/machinery/power/apc{
cell_type = 15000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 8;
locked = 1;
name = "UO45 Engineering APC";
@@ -12695,8 +12690,7 @@
})
"sj" = (
/obj/structure/cable,
/obj/machinery/power/apc{
cell_type = 15000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 2;
locked = 0;
name = "UO45 Mining APC";
+21 -32
View File
@@ -851,8 +851,7 @@
/turf/open/floor/plasteel,
/area/ai_monitored/security/armory)
"acm" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
areastring = "/area/ai_monitored/security/armory";
name = "Armory APC";
@@ -2408,7 +2407,7 @@
dir = 4;
id = "pod3";
name = "escape pod 3";
port_angle = 180;
port_direction = 2;
preferred_direction = 4
},
/turf/open/floor/mineral/titanium/blue,
@@ -6369,7 +6368,7 @@
height = 5;
id = "laborcamp";
name = "labor camp shuttle";
port_angle = 90;
port_direction = 4;
width = 9
},
/obj/docking_port/stationary{
@@ -16485,7 +16484,7 @@
height = 7;
id = "arrival";
name = "arrival shuttle";
port_angle = -90;
port_direction = 8;
preferred_direction = 8;
width = 15
},
@@ -20943,8 +20942,7 @@
},
/area/bridge)
"aWW" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Bridge APC";
areastring = "/area/bridge";
@@ -22745,7 +22743,6 @@
/area/quartermaster/storage)
"bbu" = (
/obj/machinery/power/apc{
cell_type = 2500;
dir = 1;
name = "Captain's Office APC";
areastring = "/area/crew_quarters/heads/captain";
@@ -23802,8 +23799,7 @@
/turf/open/floor/plasteel/black,
/area/ai_monitored/turret_protected/ai_upload)
"bed" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Upload APC";
areastring = "/area/ai_monitored/turret_protected/ai_upload";
@@ -32546,7 +32542,7 @@
height = 24;
id = "syndicate";
name = "syndicate infiltrator";
port_angle = 0;
port_direction = 1;
roundstart_move = "syndicate_away";
width = 18
},
@@ -37967,7 +37963,7 @@
height = 5;
id = "mining";
name = "mining shuttle";
port_angle = 90;
port_direction = 4;
width = 7
},
/obj/docking_port/stationary{
@@ -42341,8 +42337,7 @@
/turf/open/floor/plasteel/white,
/area/medical/virology)
"bSX" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Virology APC";
areastring = "/area/medical/virology";
@@ -43924,8 +43919,7 @@
/obj/machinery/light{
dir = 1
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Telecomms Server APC";
areastring = "/area/tcommsat/server";
@@ -46081,8 +46075,7 @@
/obj/structure/closet/secure_closet/engineering_chief{
req_access_txt = "0"
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "CE Office APC";
areastring = "/area/crew_quarters/heads/chief";
@@ -49118,8 +49111,7 @@
/turf/open/floor/plasteel,
/area/engine/engineering)
"cib" = (
/obj/machinery/power/apc{
cell_type = 15000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 1;
name = "Engineering APC";
areastring = "/area/engine/engineering";
@@ -49156,8 +49148,7 @@
dir = 1
},
/obj/structure/reagent_dispensers/watertank,
/obj/machinery/power/apc{
cell_type = 15000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 1;
name = "Engineering APC";
areastring = "/area/engine/engineering";
@@ -52688,7 +52679,7 @@
dir = 4;
id = "pod4";
name = "escape pod 4";
port_angle = 180;
port_direction = 2;
preferred_direction = 4
},
/turf/open/floor/mineral/titanium/blue,
@@ -52995,7 +52986,7 @@
dir = 8;
id = "pod2";
name = "escape pod 2";
port_angle = 180
port_direction = 2
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/pod_2)
@@ -55811,8 +55802,7 @@
d2 = 8;
icon_state = "0-8"
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "AI Chamber APC";
areastring = "/area/ai_monitored/turret_protected/ai";
@@ -56189,7 +56179,7 @@
height = 13;
id = "ferry";
name = "ferry shuttle";
port_angle = 0;
port_direction = 1;
preferred_direction = 4;
roundstart_move = "ferry_away";
width = 5
@@ -56213,7 +56203,7 @@
dir = 8;
id = "pod1";
name = "escape pod 1";
port_angle = 180
port_direction = 2
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/pod_1)
@@ -56382,7 +56372,7 @@
id = "whiteship";
launch_status = 0;
name = "NT Medical Ship";
port_angle = -90;
port_direction = 8;
preferred_direction = 4;
roundstart_move = "whiteship_away";
timid = null;
@@ -60916,7 +60906,7 @@
height = 24;
id = "syndicate";
name = "syndicate infiltrator";
port_angle = 0;
port_direction = 1;
roundstart_move = "syndicate_away";
width = 18
},
@@ -62503,7 +62493,6 @@
/area/quartermaster/sorting)
"cNL" = (
/obj/machinery/power/apc{
cell_type = 2500;
dir = 1;
name = "Central Maintenance APC";
areastring = "/area/maintenance/central";
@@ -129465,4 +129454,4 @@ aaa
aaa
aaa
aaa
"}
"}
+30 -50
View File
@@ -319,7 +319,7 @@
/obj/docking_port/mobile/pod{
id = "pod1";
name = "escape pod 1";
port_angle = 180
port_direction = 2
},
/obj/effect/turf_decal/stripes/end,
/turf/open/floor/plasteel/white,
@@ -335,7 +335,7 @@
/obj/docking_port/mobile/pod{
id = "pod2";
name = "escape pod 2";
port_angle = 180
port_direction = 2
},
/obj/effect/turf_decal/stripes/end,
/turf/open/floor/plasteel/white,
@@ -863,8 +863,7 @@
/area/maintenance/solars/starboard/fore)
"abM" = (
/obj/structure/cable/white,
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 2;
name = "Starboard Bow Solar APC";
areastring = "/area/maintenance/solars/starboard/fore";
@@ -2671,7 +2670,7 @@
height = 24;
id = "syndicate";
name = "syndicate infiltrator";
port_angle = 0;
port_direction = 1;
roundstart_move = "syndicate_away";
width = 18
},
@@ -15589,8 +15588,7 @@
/area/maintenance/solars/port/fore)
"aGh" = (
/obj/structure/cable/white,
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 2;
name = "Port Bow Solar APC";
areastring = "/area/maintenance/solars/port/fore";
@@ -24570,8 +24568,7 @@
/area/security/prison)
"aXv" = (
/obj/structure/cable/white,
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Prison Wing APC";
areastring = "/area/security/prison";
@@ -24696,7 +24693,7 @@
dir = 4;
id = "pod3";
name = "escape pod 3";
port_angle = 180;
port_direction = 2;
preferred_direction = 4
},
/obj/effect/turf_decal/stripes/end{
@@ -27292,7 +27289,7 @@
height = 5;
id = "mining";
name = "mining shuttle";
port_angle = 90;
port_direction = 4;
width = 7
},
/obj/docking_port/stationary{
@@ -27406,8 +27403,7 @@
},
/area/engine/atmos)
"bdr" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Atmospherics APC";
areastring = "/area/engine/atmos";
@@ -37439,7 +37435,7 @@
height = 5;
id = "laborcamp";
name = "labor camp shuttle";
port_angle = 90;
port_direction = 4;
width = 9
},
/obj/docking_port/stationary{
@@ -37815,8 +37811,7 @@
/turf/open/floor/plasteel,
/area/engine/gravity_generator)
"bwL" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Gravity Generator APC";
areastring = "/area/engine/gravity_generator";
@@ -38945,8 +38940,7 @@
/obj/machinery/light{
dir = 1
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Engineering Foyer APC";
areastring = "/area/engine/break_room";
@@ -43406,8 +43400,7 @@
d2 = 2;
icon_state = "0-2"
},
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 1;
name = "Council Chambers APC";
areastring = "/area/bridge/meeting_room/council";
@@ -43982,8 +43975,7 @@
/turf/closed/wall,
/area/engine/transit_tube)
"bHy" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Transit Tube Access APC";
areastring = "/area/engine/transit_tube";
@@ -44496,8 +44488,7 @@
/turf/open/floor/plasteel/grimy,
/area/tcommsat/computer)
"bIq" = (
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 1;
name = "Telecomms Monitoring APC";
areastring = "/area/tcommsat/computer";
@@ -44659,8 +44650,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/machinery/disposal/bin,
/obj/structure/disposalpipe/trunk,
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Auxiliary Tool Storage APC";
areastring = "/area/storage/tools";
@@ -46594,8 +46584,7 @@
/turf/open/floor/wood,
/area/crew_quarters/heads/captain)
"bMI" = (
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 2;
name = "Captain's Office APC";
areastring = "/area/crew_quarters/heads/captain";
@@ -54595,8 +54584,7 @@
d2 = 8;
icon_state = "0-8"
},
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 1;
name = "Brig APC";
areastring = "/area/security/brig";
@@ -55181,8 +55169,7 @@
/obj/structure/window/reinforced{
dir = 8
},
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 2;
name = "Captain's Quarters APC";
areastring = "/area/crew_quarters/heads/captain/private";
@@ -58237,8 +58224,7 @@
"cig" = (
/obj/structure/table,
/obj/item/hand_tele,
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 1;
name = "Teleporter APC";
areastring = "/area/teleporter";
@@ -63428,8 +63414,7 @@
d2 = 2;
icon_state = "0-2"
},
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 1;
name = "Gateway APC";
areastring = "/area/gateway";
@@ -84197,8 +84182,7 @@
d2 = 8;
icon_state = "0-8"
},
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 1;
name = "Mech Bay APC";
areastring = "/area/science/robotics/mechbay";
@@ -84331,8 +84315,7 @@
d2 = 2;
icon_state = "0-2"
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Cloning Lab APC";
areastring = "/area/medical/genetics/cloning";
@@ -92088,8 +92071,7 @@
/area/maintenance/starboard/aft)
"dxk" = (
/obj/structure/cable/white,
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 2;
name = "Starboard Quarter Solar APC";
areastring = "/area/maintenance/solars/starboard/aft";
@@ -102792,7 +102774,7 @@
name = "Delta emergency shuttle";
width = 30;
preferred_direction = 2;
port_angle = 90
port_direction = 4
},
/obj/docking_port/stationary{
dheight = 0;
@@ -104595,8 +104577,7 @@
/area/maintenance/solars/port/aft)
"dWj" = (
/obj/structure/cable/white,
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 2;
name = "Port Quarter Solar APC";
areastring = "/area/maintenance/solars/port/aft";
@@ -107661,7 +107642,7 @@
height = 13;
id = "ferry";
name = "ferry shuttle";
port_angle = 0;
port_direction = 1;
preferred_direction = 4;
roundstart_move = "ferry_away";
width = 5
@@ -108844,8 +108825,7 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
"egC" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Departure Lounge APC";
areastring = "/area/hallway/secondary/exit/departure_lounge";
@@ -110542,7 +110522,7 @@
height = 24;
id = "syndicate";
name = "syndicate infiltrator";
port_angle = 0;
port_direction = 1;
roundstart_move = "syndicate_away";
width = 18
},
@@ -178697,4 +178677,4 @@ aaa
aaa
aaa
aaa
"}
"}
+38 -75
View File
@@ -613,7 +613,7 @@
/obj/docking_port/mobile/pod{
id = "pod2";
name = "escape pod 2";
port_angle = 180
port_direction = 2
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/pod_2)
@@ -1461,7 +1461,6 @@
/area/security/execution/education)
"acZ" = (
/obj/machinery/power/apc{
cell_type = 2500;
dir = 1;
name = "Prisoner Education Chamber APC";
areastring = "/area/security/execution/education";
@@ -1771,7 +1770,7 @@
dir = 4;
id = "pod3";
name = "escape pod 3";
port_angle = 180;
port_direction = 2;
preferred_direction = 4
},
/turf/open/floor/mineral/titanium/blue,
@@ -2554,8 +2553,7 @@
},
/area/security/prison)
"aeX" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Prison Wing APC";
areastring = "/area/security/prison";
@@ -3934,8 +3932,7 @@
},
/area/ai_monitored/security/armory)
"ahF" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Armory APC";
areastring = "/area/ai_monitored/security/armory";
@@ -6333,8 +6330,7 @@
d2 = 4;
icon_state = "1-4"
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 8;
name = "Brig Control APC";
areastring = "/area/security/warden";
@@ -6499,7 +6495,6 @@
req_access_txt = "1"
},
/obj/machinery/power/apc{
cell_type = 2500;
dir = 4;
name = "Shooting Range APC";
areastring = "/area/security/range";
@@ -7000,8 +6995,7 @@
/turf/open/floor/plasteel,
/area/security/main)
"anC" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Security Office APC";
areastring = "/area/security/main";
@@ -12217,8 +12211,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 2;
name = "Brig APC";
areastring = "/area/security/brig";
@@ -13956,7 +13949,7 @@
height = 5;
id = "mining";
name = "mining shuttle";
port_angle = 90;
port_direction = 4;
width = 7
},
/obj/docking_port/stationary{
@@ -14172,7 +14165,7 @@
height = 5;
id = "laborcamp";
name = "labor camp shuttle";
port_angle = 90;
port_direction = 4;
width = 9
},
/obj/docking_port/stationary{
@@ -17037,8 +17030,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Fore Primary Hallway APC";
areastring = "/area/hallway/primary/fore";
@@ -21223,8 +21215,7 @@
},
/area/hydroponics/garden)
"aOO" = (
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 8;
name = "Engine Room APC";
areastring = "/area/engine/engineering";
@@ -22133,8 +22124,7 @@
/turf/open/floor/plasteel/black,
/area/ai_monitored/turret_protected/ai_upload)
"aQA" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Upload APC";
areastring = "/area/ai_monitored/turret_protected/ai_upload";
@@ -22691,7 +22681,7 @@
/obj/docking_port/mobile/pod{
id = "pod1";
name = "escape pod 1";
port_angle = 180
port_direction = 2
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/pod_1)
@@ -24313,7 +24303,6 @@
/area/security/courtroom)
"aUG" = (
/obj/machinery/power/apc{
cell_type = 2500;
dir = 2;
name = "Courtroom APC";
areastring = "/area/security/courtroom";
@@ -30962,7 +30951,6 @@
"bhf" = (
/obj/effect/landmark/blobstart,
/obj/machinery/power/apc{
cell_type = 2500;
dir = 4;
name = "Central Maintenance APC";
areastring = "/area/maintenance/central";
@@ -31519,7 +31507,7 @@
dir = 4;
id = "pod4";
name = "escape pod 4";
port_angle = 180;
port_direction = 2;
preferred_direction = 4
},
/turf/open/floor/mineral/titanium/blue,
@@ -32675,7 +32663,6 @@
},
/obj/item/hand_labeler,
/obj/machinery/power/apc{
cell_type = 2500;
dir = 4;
name = "Delivery Office APC";
areastring = "/area/quartermaster/sorting";
@@ -34503,7 +34490,6 @@
"bnE" = (
/obj/machinery/power/apc{
aidisabled = 0;
cell_type = 2500;
dir = 4;
name = "MiniSat Antechamber APC";
areastring = "/area/ai_monitored/turret_protected/aisat_interior";
@@ -34914,8 +34900,7 @@
/turf/open/floor/wood,
/area/crew_quarters/heads/hop)
"bop" = (
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 8;
name = "Bridge APC";
areastring = "/area/bridge";
@@ -36423,7 +36408,6 @@
"brd" = (
/obj/structure/table,
/obj/machinery/power/apc{
cell_type = 2500;
dir = 8;
name = "Art Storage APC";
areastring = "/area/storage/art";
@@ -37019,9 +37003,8 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/machinery/power/apc{
/obj/machinery/power/apc/highcap/five_k{
aidisabled = 0;
cell_type = 5000;
dir = 2;
name = "MiniSat Foyer APC";
areastring = "/area/ai_monitored/turret_protected/aisat/foyer";
@@ -39570,8 +39553,7 @@
/turf/open/floor/plasteel/bar,
/area/crew_quarters/bar)
"bwR" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Bar APC";
areastring = "/area/crew_quarters/bar";
@@ -40107,8 +40089,7 @@
/area/crew_quarters/toilet/auxiliary)
"bxS" = (
/obj/item/cigbutt,
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Port Maintenance APC";
areastring = "/area/maintenance/port";
@@ -40670,8 +40651,7 @@
},
/area/engine/atmos)
"byX" = (
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 1;
name = "Atmospherics APC";
areastring = "/area/engine/atmos";
@@ -40909,8 +40889,7 @@
/turf/open/floor/plasteel/grimy,
/area/tcommsat/computer)
"bzt" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Telecomms Control Room APC";
areastring = "/area/tcommsat/computer";
@@ -42538,8 +42517,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 9
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Auxiliary Restrooms APC";
areastring = "/area/crew_quarters/toilet/auxiliary";
@@ -42794,8 +42772,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 1;
name = "Command Hallway APC";
areastring = "/area/hallway/secondary/command";
@@ -45460,8 +45437,7 @@
},
/obj/item/storage/toolbox/emergency,
/obj/item/device/flashlight,
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Gateway APC";
areastring = "/area/gateway";
@@ -47415,8 +47391,7 @@
/turf/open/floor/plasteel/black/telecomms/mainframe,
/area/tcommsat/server)
"bMs" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Telecomms Server Room APC";
areastring = "/area/tcommsat/server";
@@ -48631,8 +48606,7 @@
/turf/open/floor/wood,
/area/bridge/showroom/corporate)
"bOF" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Nanotrasen Corporate Showroom APC";
areastring = "/area/bridge/showroom/corporate";
@@ -50924,7 +50898,6 @@
/area/maintenance/starboard)
"bTc" = (
/obj/machinery/power/apc{
cell_type = 2500;
dir = 1;
name = "Starboard Maintenance APC";
areastring = "/area/maintenance/starboard";
@@ -51374,8 +51347,7 @@
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 1
},
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 1;
name = "Central Primary Hallway APC";
areastring = "/area/hallway/primary/central";
@@ -55242,7 +55214,7 @@
id = "whiteship";
launch_status = 0;
name = "NT Recovery White-Ship";
port_angle = -90;
port_direction = 8;
preferred_direction = 4;
roundstart_move = "whiteship_away";
width = 27
@@ -59120,8 +59092,7 @@
/turf/open/floor/plasteel/white,
/area/science/research)
"ciJ" = (
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 1;
name = "Research Division APC";
areastring = "/area/science/research";
@@ -63763,8 +63734,7 @@
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"crH" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Aft Hallway APC";
areastring = "/area/hallway/primary/aft";
@@ -64655,8 +64625,7 @@
/area/science/storage)
"cti" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Toxins Storage APC";
areastring = "/area/science/storage";
@@ -70046,8 +70015,7 @@
pixel_y = 2
},
/obj/item/storage/box/syringes,
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Virology APC";
areastring = "/area/medical/virology";
@@ -73954,8 +73922,7 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
"cKy" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Departure Lounge APC";
areastring = "/area/hallway/secondary/exit/departure_lounge";
@@ -74944,8 +74911,7 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
"cMk" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Aft Maintenance APC";
areastring = "/area/maintenance/aft";
@@ -78474,7 +78440,7 @@
height = 24;
id = "syndicate";
name = "syndicate infiltrator";
port_angle = 0;
port_direction = 1;
roundstart_move = "syndicate_away";
width = 18
},
@@ -79453,7 +79419,7 @@
height = 13;
id = "ferry";
name = "ferry shuttle";
port_angle = 0;
port_direction = 1;
preferred_direction = 4;
roundstart_move = "ferry_away";
width = 5
@@ -82764,8 +82730,7 @@
pixel_y = 3
},
/obj/item/reagent_containers/dropper,
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 1;
name = "Xenobiology APC";
areastring = "/area/science/xenobiology";
@@ -87024,7 +86989,6 @@
icon_state = "0-8"
},
/obj/machinery/power/apc{
cell_type = 2500;
dir = 4;
name = "Port Bow Maintenance APC";
areastring = "/area/maintenance/port/fore";
@@ -89548,8 +89512,7 @@
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
"dAd" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Starboard Quarter Maintenance APC";
areastring = "/area/maintenance/starboard/aft";
@@ -156338,4 +156301,4 @@ aaa
aaa
aaa
aaa
"}
"}
+15 -26
View File
@@ -2783,8 +2783,7 @@
d2 = 2;
icon_state = "0-2"
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Head of Personnel Quarter's APC";
areastring = "/area/crew_quarters/heads/hop";
@@ -2968,8 +2967,7 @@
/turf/open/floor/wood,
/area/security/detectives_office)
"afh" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Detective's Office APC";
areastring = "/area/security/detectives_office";
@@ -9503,7 +9501,7 @@
height = 5;
id = "mining";
name = "mining shuttle";
port_angle = 90;
port_direction = 4;
width = 7
},
/obj/docking_port/stationary{
@@ -15182,8 +15180,7 @@
d2 = 2;
icon_state = "0-2"
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Central Starboard Maintenance APC";
areastring = "/area/maintenance/starboard/central";
@@ -16893,8 +16890,7 @@
d2 = 2;
icon_state = "0-2"
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Theatre Backstage APC";
areastring = "/area/crew_quarters/theatre";
@@ -19560,8 +19556,7 @@
d2 = 2;
icon_state = "0-2"
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Central Port Maintenance APC";
areastring = "/area/maintenance/port/central";
@@ -21269,8 +21264,7 @@
/turf/open/floor/plasteel,
/area/engine/gravity_generator)
"aJl" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Gravity Generator APC";
areastring = "/area/engine/gravity_generator";
@@ -21563,8 +21557,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/item/storage/bag/trash,
/obj/item/key/janitor,
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Custodial Closet APC";
areastring = "/area/janitor";
@@ -26410,8 +26403,7 @@
/obj/machinery/light{
dir = 1
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Chemistry Lab APC";
areastring = "/area/medical/chemistry";
@@ -30345,8 +30337,7 @@
locked = 0;
pixel_x = -23
},
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 1;
name = "Mech Bay APC";
areastring = "/area/science/robotics/mechbay";
@@ -33800,8 +33791,7 @@
/obj/structure/chair/wood/normal{
dir = 8
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Chapel APC";
areastring = "/area/chapel/main";
@@ -34639,8 +34629,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Arrivals APC";
areastring = "/area/hallway/secondary/entry";
@@ -37387,7 +37376,7 @@
height = 24;
id = "syndicate";
name = "syndicate infiltrator";
port_angle = 0;
port_direction = 1;
roundstart_move = "syndicate_away";
width = 18
},
@@ -39910,7 +39899,7 @@
height = 13;
id = "ferry";
name = "ferry shuttle";
port_angle = 0;
port_direction = 1;
preferred_direction = 4;
roundstart_move = "ferry_away";
width = 5
@@ -106004,4 +105993,4 @@ aaa
aaa
aaa
aaa
"}
"}
+94 -76
View File
@@ -297,7 +297,7 @@
height = 24;
id = "syndicate";
name = "syndicate infiltrator";
port_angle = 0;
port_direction = 1;
roundstart_move = "syndicate_away";
width = 18
},
@@ -3325,8 +3325,7 @@
},
/area/security/prison)
"ahJ" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Prison Wing APC";
pixel_x = 1;
@@ -3804,8 +3803,7 @@
/obj/item/storage/box/firingpins,
/obj/item/storage/box/firingpins,
/obj/item/key/security,
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 4;
name = "Armory APC";
pixel_x = 24
@@ -5369,8 +5367,7 @@
d2 = 8;
icon_state = "0-8"
},
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 4;
name = "Brig APC";
pixel_x = 24
@@ -7656,7 +7653,7 @@
id = "pod1";
launch_status = 0;
name = "monastery shuttle";
port_angle = 180;
port_direction = 2;
width = 5
},
/turf/open/floor/mineral/titanium/blue,
@@ -9701,7 +9698,7 @@
height = 5;
id = "laborcamp";
name = "labor camp shuttle";
port_angle = 90;
port_direction = 4;
width = 9
},
/obj/docking_port/stationary{
@@ -10810,7 +10807,6 @@
/area/crew_quarters/heads/captain)
"axS" = (
/obj/machinery/power/apc{
cell_type = 2500;
dir = 1;
name = "Captain's Office APC";
pixel_y = 24
@@ -11495,8 +11491,7 @@
/area/bridge)
"azo" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 4;
name = "Bridge APC";
areastring = "/area/bridge";
@@ -12401,8 +12396,7 @@
},
/area/ai_monitored/turret_protected/ai_upload)
"aBx" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Upload APC";
areastring = "/area/ai_monitored/turret_protected/ai_upload";
@@ -12508,8 +12502,7 @@
/turf/open/floor/wood,
/area/crew_quarters/heads/hop)
"aBH" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 8;
name = "Central Hall APC";
pixel_x = -25
@@ -17679,8 +17672,7 @@
},
/area/hallway/secondary/exit/departure_lounge)
"aMO" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Departure Lounge APC";
areastring = "/area/hallway/secondary/exit/departure_lounge";
@@ -17841,8 +17833,7 @@
/area/crew_quarters/toilet/auxiliary)
"aNe" = (
/obj/structure/cable,
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 2;
name = "Auxiliary Restrooms APC";
pixel_y = -24
@@ -20209,7 +20200,6 @@
/area/quartermaster/storage)
"aSl" = (
/obj/machinery/power/apc{
cell_type = 2500;
dir = 4;
name = "Cargo Maintenance APC";
pixel_x = 24
@@ -20903,7 +20893,7 @@
dwidth = 4;
height = 15;
name = "Pubby emergency shuttle";
port_angle = 90;
port_direction = 4;
width = 18
},
/turf/open/floor/plating,
@@ -26406,7 +26396,7 @@
height = 5;
id = "mining";
name = "mining shuttle";
port_angle = 90;
port_direction = 4;
width = 7
},
/obj/docking_port/stationary{
@@ -32730,7 +32720,7 @@
height = 13;
id = "ferry";
name = "ferry shuttle";
port_angle = 0;
port_direction = 1;
preferred_direction = 4;
roundstart_move = "ferry_away";
width = 5
@@ -33661,8 +33651,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 1;
name = "Research Lobby APC";
pixel_y = 25
@@ -33769,8 +33758,7 @@
/turf/closed/wall,
/area/science/research)
"bvL" = (
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 1;
name = "Research Division APC";
pixel_y = 25
@@ -34020,8 +34008,7 @@
icon_state = "0-4";
d2 = 4
},
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 8;
name = "Xenobiology APC";
pixel_x = -25
@@ -39331,8 +39318,7 @@
/turf/open/floor/plasteel/white,
/area/medical/virology)
"bGU" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
name = "Virology APC";
pixel_y = 24
@@ -43456,7 +43442,7 @@
dir = 2;
network = list("SS13")
},
/obj/item/circuitboard/computer/shuttle/monastery_shuttle,
/obj/item/circuitboard/computer/monastery_shuttle,
/turf/open/floor/plasteel/darkgreen,
/area/storage/tech)
"bQx" = (
@@ -46639,8 +46625,7 @@
amount = 50
},
/obj/item/stack/cable_coil,
/obj/machinery/power/apc{
cell_type = 10000;
/obj/machinery/power/apc/highcap/ten_k{
dir = 8;
name = "Engine Room APC";
areastring = "/area/engine/engine_smes";
@@ -47190,8 +47175,7 @@
/turf/open/floor/plating,
/area/maintenance/department/engine)
"bYG" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 8;
name = "Engineering Maintenance APC";
pixel_x = -25;
@@ -47588,8 +47572,7 @@
/turf/open/floor/plasteel,
/area/engine/engineering)
"bZc" = (
/obj/machinery/power/apc{
cell_type = 15000;
/obj/machinery/power/apc/highcap/fifteen_k{
dir = 4;
name = "Engineering APC";
pixel_x = 28
@@ -52041,7 +52024,7 @@
id = "whiteship";
launch_status = 0;
name = "White Ship";
port_angle = 90;
port_direction = 4;
preferred_direction = 1;
roundstart_move = "whiteship_away";
timid = null;
@@ -53310,8 +53293,7 @@
/turf/open/floor/circuit/telecomms/mainframe,
/area/tcommsat/server)
"cmI" = (
/obj/machinery/power/apc{
cell_type = 5000;
/obj/machinery/power/apc/highcap/five_k{
dir = 1;
layer = 4;
name = "Telecomms Server APC";
@@ -58378,6 +58360,42 @@
},
/turf/open/floor/plasteel/black,
/area/chapel/office)
"cBN" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating,
/area/shuttle/escape)
"cBO" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating,
/area/shuttle/escape)
"cBP" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating,
/area/shuttle/escape)
"cBQ" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating,
/area/shuttle/escape)
"cBR" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating,
/area/shuttle/escape)
"cBS" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating,
/area/shuttle/escape)
"cBT" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating,
/area/shuttle/escape)
"cBU" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating,
/area/shuttle/escape)
"cBV" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating,
/area/shuttle/escape)
(1,1,1) = {"
aaa
@@ -72108,11 +72126,11 @@ aaa
aaa
aaa
aaa
bVq
cBF
bVq
cBG
bVq
aaa
aaa
aaa
aaa
aaa
aaa
aaa
aaa
@@ -72356,20 +72374,20 @@ aaa
aaa
aaa
aFS
aFT
aFT
cBO
cBP
aKs
aFS
aFS
aFT
aFT
cBT
cBU
aFS
aKs
cBC
aOc
aPj
aOc
cBH
aFS
aKs
aFS
aFS
aFS
aaa
aaa
aaa
@@ -72616,17 +72634,17 @@ aFS
aIs
aJx
aJx
aFT
cBR
aMI
aNZ
aNZ
aNZ
aMI
cBD
aOd
aPk
aQq
cBI
aNZ
aMI
aNZ
aVJ
aWD
aaa
aaa
aaa
@@ -72879,11 +72897,11 @@ aIx
aIx
aIx
aIx
cBE
aOc
aPl
aOc
cBJ
aIx
aIx
aIx
aVJ
aWD
aaa
aaa
aaa
@@ -73130,7 +73148,7 @@ aFS
aIu
aJy
aKt
aFT
cBS
aIx
aOa
aOa
@@ -73895,19 +73913,19 @@ aaa
aaa
aaa
aaa
aFT
cBN
aGQ
aHw
aIw
aIw
aFT
cBQ
aIx
aIx
aOc
aPj
aOc
aIx
aFT
cBV
aMI
aMI
aMI
@@ -95714,8 +95732,8 @@ ajv
aju
ajt
alQ
alb
alb
cBt
cBt
aiS
anY
apt
@@ -95972,7 +95990,7 @@ akh
alc
alR
amF
alb
cBt
anm
ajv
ajv
@@ -96229,7 +96247,7 @@ cBm
cBp
alS
amG
alb
cBt
aiS
aiS
aiS
@@ -123913,4 +123931,4 @@ aaa
aaa
aaa
aaa
"}
"}
File diff suppressed because it is too large Load Diff
+561 -243
View File
@@ -1,273 +1,591 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/closed/wall/mineral/titanium/overspace,
/area/shuttle/supply)
"b" = (
"aa" = (
/turf/open/space,
/area/space)
"ab" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/supply)
"c" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/supply)
"d" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/supply)
"e" = (
/obj/machinery/conveyor{
dir = 2;
id = "cargoshuttle";
name = "cargo shuttle conveyor belt"
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/supply)
"f" = (
/obj/machinery/conveyor{
dir = 8;
id = "cargoshuttle";
name = "cargo shuttle conveyor belt"
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/supply)
"g" = (
/obj/machinery/conveyor{
dir = 4;
id = "cargoshuttle";
name = "cargo shuttle conveyor belt"
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/supply)
"h" = (
/obj/machinery/conveyor{
dir = 9;
id = "cargoshuttle";
name = "cargo shuttle conveyor belt"
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/supply)
"i" = (
/obj/machinery/conveyor{
dir = 1;
id = "cargoshuttle";
name = "cargo shuttle conveyor belt"
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/supply)
"j" = (
/obj/machinery/conveyor{
dir = 10;
id = "cargoshuttle";
name = "cargo shuttle conveyor belt"
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/supply)
"k" = (
/obj/machinery/conveyor{
dir = 6;
id = "cargoshuttle";
name = "cargo shuttle conveyor belt"
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/supply)
"l" = (
/obj/machinery/door/poddoor{
id = "QMLoaddoor2";
name = "supply dock loading door"
},
/obj/machinery/conveyor{
dir = 8;
id = "cargoshuttle";
name = "cargo shuttle conveyor belt"
},
/area/shuttle/escape)
"ac" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating,
/area/shuttle/supply)
"m" = (
/area/shuttle/escape)
"ad" = (
/obj/structure/table,
/obj/item/scalpel,
/obj/item/retractor{
pixel_y = 5
},
/obj/item/hemostat,
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"ae" = (
/obj/structure/table,
/obj/item/cautery,
/obj/item/surgicaldrill,
/obj/item/circular_saw{
pixel_y = 9
},
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"af" = (
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"ag" = (
/obj/structure/shuttle/engine/propulsion/right{
dir = 4
},
/turf/open/floor/plating/airless,
/area/shuttle/escape)
"ah" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/shuttle/escape)
"ai" = (
/obj/machinery/computer/emergency_shuttle,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/supply)
"n" = (
/turf/open/floor/mineral/titanium,
/area/shuttle/supply)
"o" = (
/obj/machinery/door/airlock/titanium{
name = "Supply Shuttle Airlock";
req_access_txt = "31"
/area/shuttle/escape)
"aj" = (
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"ak" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-22"
},
/turf/open/floor/plating,
/area/shuttle/supply)
"p" = (
/obj/machinery/button/door{
dir = 2;
id = "QMLoaddoor2";
name = "Loading Doors";
pixel_x = 24;
pixel_y = 8
},
/obj/machinery/button/door{
id = "QMLoaddoor";
name = "Loading Doors";
pixel_x = 24;
pixel_y = -8
},
/obj/machinery/conveyor_switch/oneway{
id = "cargoshuttle"
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"al" = (
/obj/structure/chair,
/turf/open/floor/mineral/plastitanium/brig,
/area/shuttle/escape)
"am" = (
/obj/structure/chair,
/obj/machinery/light{
dir = 1
},
/turf/open/floor/mineral/plastitanium/brig,
/area/shuttle/escape)
"an" = (
/obj/structure/table/optable,
/obj/item/surgical_drapes,
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"ao" = (
/obj/machinery/light{
dir = 4
},
/turf/open/floor/mineral/titanium,
/area/shuttle/supply)
"q" = (
/obj/machinery/door/airlock/titanium{
name = "Supply Shuttle Airlock";
req_access_txt = "31"
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"ap" = (
/obj/structure/shuttle/engine/propulsion{
dir = 4
},
/obj/docking_port/mobile/supply{
dwidth = 3;
width = 10;
timid = 1
},
/turf/open/floor/plating,
/area/shuttle/supply)
"r" = (
/obj/machinery/door/poddoor{
id = "QMLoaddoor";
name = "supply dock loading door"
},
/obj/machinery/conveyor{
dir = 4;
id = "cargoshuttle";
name = "cargo shuttle conveyor belt"
},
/turf/open/floor/plating,
/area/shuttle/supply)
"s" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/shuttle/supply)
"t" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/supply)
"u" = (
/obj/structure/window/reinforced{
dir = 1
},
/obj/structure/shuttle/engine/heater,
/turf/open/floor/plating/airless,
/area/shuttle/supply)
"v" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/supply)
"w" = (
/turf/open/space,
/area/space)
"x" = (
/obj/structure/shuttle/engine/propulsion/burst/left,
/turf/open/floor/plating/airless,
/area/shuttle/supply)
"y" = (
/obj/structure/shuttle/engine/propulsion,
/turf/open/floor/plating/airless,
/area/shuttle/supply)
"z" = (
/obj/structure/shuttle/engine/propulsion/burst/right,
/turf/open/floor/plating/airless,
/area/shuttle/supply)
"A" = (
/obj/machinery/conveyor{
dir = 8;
id = "cargoshuttle";
name = "cargo shuttle conveyor belt"
},
/obj/machinery/light{
dir = 1
},
/area/shuttle/escape)
"aq" = (
/obj/machinery/computer/communications,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/supply)
"B" = (
/obj/machinery/light{
/area/shuttle/escape)
"ar" = (
/obj/structure/chair{
dir = 8
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/supply)
/area/shuttle/escape)
"as" = (
/obj/machinery/door/airlock/glass_command{
name = "bridge door";
req_access_txt = "19"
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"at" = (
/turf/open/floor/mineral/plastitanium/brig,
/area/shuttle/escape)
"au" = (
/obj/structure/shuttle/engine/propulsion/left{
dir = 4
},
/turf/open/floor/plating/airless,
/area/shuttle/escape)
"av" = (
/obj/machinery/light,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"aw" = (
/obj/structure/extinguisher_cabinet{
pixel_y = -32
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"ax" = (
/obj/structure/table,
/obj/machinery/recharger{
active_power_usage = 0;
idle_power_usage = 0;
pixel_y = 4;
use_power = 0
},
/turf/open/floor/mineral/plastitanium/brig,
/area/shuttle/escape)
"ay" = (
/obj/structure/table,
/obj/item/storage/box/handcuffs,
/turf/open/floor/mineral/plastitanium/brig,
/area/shuttle/escape)
"az" = (
/obj/machinery/door/airlock/glass_security{
name = "security airlock";
req_access_txt = "63"
},
/turf/open/floor/mineral/plastitanium/brig,
/area/shuttle/escape)
"aA" = (
/obj/machinery/door/airlock/glass,
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"aB" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
layer = 4.1
},
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"aC" = (
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"aD" = (
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aE" = (
/obj/structure/chair{
dir = 4
},
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aF" = (
/obj/structure/table,
/obj/machinery/light{
dir = 1
},
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aG" = (
/obj/machinery/door/airlock/titanium,
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"aH" = (
/obj/structure/chair{
dir = 8
},
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aI" = (
/obj/structure/table,
/obj/item/reagent_containers/food/snacks/boiledspaghetti{
name = "pasghetti";
pixel_x = 4;
pixel_y = 7
},
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aJ" = (
/obj/machinery/light/small,
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"aK" = (
/obj/machinery/door/airlock/titanium,
/obj/docking_port/mobile/emergency{
dheight = 0;
dir = 8;
dwidth = 6;
height = 18;
port_direction = 4;
width = 14;
timid = 1;
name = "Birdboat emergency escape shuttle"
},
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"aL" = (
/obj/structure/table,
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aM" = (
/obj/structure/table,
/obj/item/reagent_containers/food/snacks/chocolatebar,
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aN" = (
/obj/structure/chair{
dir = 1
},
/obj/structure/window/reinforced,
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aO" = (
/obj/structure/chair{
dir = 1
},
/obj/structure/window/reinforced,
/obj/machinery/light{
dir = 4
},
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aP" = (
/obj/structure/chair,
/obj/structure/window/reinforced{
dir = 1;
pixel_y = 2
},
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aQ" = (
/obj/structure/extinguisher_cabinet{
pixel_x = -27
},
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"aR" = (
/obj/structure/table/glass,
/obj/item/storage/firstaid/fire{
pixel_x = 5;
pixel_y = 5
},
/obj/item/storage/firstaid/toxin,
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"aS" = (
/obj/structure/chair{
dir = 1
},
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aT" = (
/obj/structure/chair{
dir = 1
},
/obj/machinery/light,
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aU" = (
/obj/structure/table/glass,
/obj/item/storage/firstaid/brute{
pixel_x = 5;
pixel_y = 5
},
/obj/item/storage/firstaid/brute,
/obj/machinery/light{
dir = 4
},
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"aV" = (
/obj/structure/extinguisher_cabinet{
pixel_y = -32
},
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"aW" = (
/obj/structure/chair,
/turf/open/floor/plasteel/black,
/area/shuttle/escape)
"aX" = (
/obj/machinery/sleeper{
dir = 1
},
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"aY" = (
/obj/structure/table/glass,
/obj/item/defibrillator/loaded,
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
(1,1,1) = {"
b
b
b
b
b
b
b
b
b
w
aa
aa
ab
ab
ac
ab
ac
ac
ac
ac
ac
ab
aa
aa
"}
(2,1,1) = {"
b
e
g
e
m
B
m
g
b
x
aa
ab
ah
aq
ak
ac
aB
aH
aH
aH
aB
ah
ab
aa
"}
(3,1,1) = {"
b
f
g
f
m
m
m
g
u
y
aa
ab
ai
ar
aj
as
aC
aC
aC
aC
aC
aS
ab
aa
"}
(4,1,1) = {"
b
A
g
f
m
m
m
g
u
y
aa
ac
aj
aj
av
ab
aD
aD
aL
aC
aC
aS
ab
aa
"}
(5,1,1) = {"
b
f
h
j
m
m
m
g
u
y
aa
ac
aj
aj
aw
ab
aE
aE
aM
aC
aC
aS
ab
aa
"}
(6,1,1) = {"
b
f
i
k
n
p
n
g
b
z
aa
ab
ak
aj
ak
ab
aF
aI
aL
aC
aC
aT
ah
ab
"}
(7,1,1) = {"
b
b
b
l
o
b
q
r
b
w
aa
ab
ab
as
ac
ab
aC
aC
aC
aC
aC
aC
aB
ab
"}
(8,1,1) = {"
aa
ab
al
at
at
ac
aB
aC
aC
aC
aC
aC
aV
ab
"}
(9,1,1) = {"
aa
ab
al
at
at
az
aC
aC
aN
aP
aC
aC
aW
ac
"}
(10,1,1) = {"
aa
ab
am
at
at
ac
aC
aC
aN
aP
aC
aC
aW
ac
"}
(11,1,1) = {"
aa
ab
al
at
ax
ab
aC
aC
aN
aP
aC
aC
aW
ac
"}
(12,1,1) = {"
aa
ab
al
at
ay
ab
aC
aC
aO
aP
aC
aC
aB
ab
"}
(13,1,1) = {"
ab
ab
ab
ab
ab
ah
aC
aC
ah
ab
aA
ac
ab
ab
"}
(14,1,1) = {"
ab
ad
an
af
af
aA
aC
aC
aA
aQ
af
af
aX
ab
"}
(15,1,1) = {"
ab
ae
af
af
af
aA
aC
aC
aA
af
af
af
af
ab
"}
(16,1,1) = {"
ab
af
ao
af
ab
ab
aG
aG
ab
ab
aR
aU
aY
ab
"}
(17,1,1) = {"
ab
ab
ab
ab
ab
ab
aC
aJ
ab
ab
ab
ab
ab
ab
"}
(18,1,1) = {"
ab
ag
ap
au
ab
ab
aG
aK
ab
ab
ag
ap
au
ab
"}
+2 -2
View File
@@ -198,7 +198,7 @@
dir = 8;
dwidth = 6;
height = 18;
port_angle = 90;
port_direction = 4;
width = 14;
timid = 1;
name = "Birdboat emergency escape shuttle"
@@ -588,4 +588,4 @@ ag
ap
au
ab
"}
"}
+2 -2
View File
@@ -540,7 +540,7 @@
dwidth = 15;
height = 20;
name = "Cere emergency shuttle";
port_angle = 90;
port_direction = 4;
preferred_direction = 2;
width = 42
},
@@ -2075,4 +2075,4 @@ aa
aa
aa
aa
"}
"}
+2 -2
View File
@@ -444,7 +444,7 @@
name = "Delta emergency shuttle";
width = 30;
preferred_direction = 2;
port_angle = 90
port_direction = 4
},
/turf/open/floor/plating,
/area/shuttle/escape)
@@ -1669,4 +1669,4 @@ aa
aa
aa
aa
"}
"}
+2 -2
View File
@@ -279,7 +279,7 @@
dwidth = 4;
height = 15;
name = "Pubby emergency shuttle";
port_angle = 90;
port_direction = 4;
width = 18
},
/turf/open/floor/plating,
@@ -638,4 +638,4 @@ ab
ab
ab
aa
"}
"}
+2 -2
View File
@@ -57,7 +57,7 @@
id = "ferry";
name = "ferry shuttle";
roundstart_move = "ferry_away";
port_angle = 180;
port_direction = 2;
width = 5;
timid = 1
},
@@ -170,4 +170,4 @@ d
m
d
c
"}
"}
+1 -1
View File
@@ -184,7 +184,7 @@
name = "The Lighthouse";
roundstart_move = "ferry_away";
timid = 1;
port_angle = 180;
port_direction = 2;
width = 16
},
/turf/open/floor/mineral/titanium/blue,
+1 -1
View File
@@ -113,7 +113,7 @@
id = "ferry";
name = "ferry shuttle";
roundstart_move = "ferry_away";
port_angle = 180;
port_direction = 2;
width = 5;
timid = 1
},
+1 -1
View File
@@ -18,7 +18,7 @@
id = "whiteship";
launch_status = 0;
name = "NT Medical Ship";
port_angle = -90;
port_direction = 8;
preferred_direction = 4;
roundstart_move = "whiteship_away";
timid = null;
+1 -1
View File
@@ -21,7 +21,7 @@
id = "whiteship";
launch_status = 0;
name = "NT Recovery White-Ship";
port_angle = -90;
port_direction = 8;
preferred_direction = 1;
roundstart_move = "whiteship_away";
width = 16
+1 -1
View File
@@ -27,7 +27,7 @@
id = "whiteship";
launch_status = 0;
name = "NT Recovery White-Ship";
port_angle = -90;
port_direction = 8;
preferred_direction = 4;
roundstart_move = "whiteship_away";
width = 27
+1 -1
View File
@@ -92,7 +92,7 @@
id = "whiteship";
launch_status = 0;
name = "White Ship";
port_angle = 90;
port_direction = 4;
preferred_direction = 1;
roundstart_move = "whiteship_away";
timid = 1;
+1 -1
View File
@@ -35,7 +35,7 @@ Last space-z level = empty
//zlevel defines, can be overridden for different maps in the appropriate _maps file.
#define ZLEVEL_CENTCOM 1
#define ZLEVEL_STATION 2
#define ZLEVEL_STATION_PRIMARY 2
#define ZLEVEL_MINING 5
#define ZLEVEL_LAVALAND 5
#define ZLEVEL_EMPTY_SPACE 12
+1 -1
View File
@@ -39,7 +39,7 @@
priority_announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/ai/commandreport.ogg')
for(var/obj/machinery/computer/communications/C in GLOB.machines)
if(!(C.stat & (BROKEN|NOPOWER)) && C.z == ZLEVEL_STATION)
if(!(C.stat & (BROKEN|NOPOWER)) && (C.z in GLOB.station_z_levels))
var/obj/item/paper/P = new /obj/item/paper(C.loc)
P.name = "paper - '[title]'"
P.info = text
+56 -54
View File
@@ -1,55 +1,57 @@
#define Z_NORTH 1
#define Z_EAST 2
#define Z_SOUTH 3
#define Z_WEST 4
#define Z_NORTH 1
#define Z_EAST 2
#define Z_SOUTH 3
#define Z_WEST 4
GLOBAL_LIST_INIT(cardinals, list(NORTH, SOUTH, EAST, WEST))
GLOBAL_LIST_INIT(alldirs, list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST))
GLOBAL_LIST_INIT(diagonals, list(NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST))
//This list contains the z-level numbers which can be accessed via space travel and the percentile chances to get there.
//(Exceptions: extended, sandbox and nuke) -Errorage
//Was list("3" = 30, "4" = 70).
//Spacing should be a reliable method of getting rid of a body -- Urist.
//Go away Urist, I'm restoring this to the longer list. ~Errorage
GLOBAL_LIST_INIT(accessable_z_levels, list(1,3,4,5,6,7)) //Keep this to six maps, repeating z-levels is ok if needed
GLOBAL_LIST(global_map)
//list/global_map = list(list(1,5),list(4,3))//an array of map Z levels.
//Resulting sector map looks like
//|_1_|_4_|
//|_5_|_3_|
//
//1 - SS13
//4 - Derelict
//3 - AI satellite
//5 - empty space
GLOBAL_LIST_EMPTY(landmarks_list) //list of all landmarks created
GLOBAL_LIST_EMPTY(start_landmarks_list) //list of all spawn points created
GLOBAL_LIST_EMPTY(department_security_spawns) //list of all department security spawns
GLOBAL_LIST_EMPTY(generic_event_spawns) //list of all spawns for events
GLOBAL_LIST_EMPTY(wizardstart)
GLOBAL_LIST_EMPTY(newplayer_start)
GLOBAL_LIST_EMPTY(prisonwarp) //prisoners go to these
GLOBAL_LIST_EMPTY(holdingfacility) //captured people go here
GLOBAL_LIST_EMPTY(xeno_spawn)//Aliens spawn at these.
GLOBAL_LIST_EMPTY(tdome1)
GLOBAL_LIST_EMPTY(tdome2)
GLOBAL_LIST_EMPTY(tdomeobserve)
GLOBAL_LIST_EMPTY(tdomeadmin)
GLOBAL_LIST_EMPTY(prisonwarped) //list of players already warped
GLOBAL_LIST_EMPTY(blobstart)
GLOBAL_LIST_EMPTY(secequipment)
GLOBAL_LIST_EMPTY(deathsquadspawn)
GLOBAL_LIST_EMPTY(emergencyresponseteamspawn)
GLOBAL_LIST_EMPTY(ruin_landmarks)
//away missions
GLOBAL_LIST_EMPTY(awaydestinations) //a list of landmarks that the warpgate can take you to
//used by jump-to-area etc. Updated by area/updateName()
GLOBAL_LIST_EMPTY(sortedAreas)
GLOBAL_LIST_EMPTY(all_abstract_markers)
GLOBAL_LIST_INIT(alldirs, list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST))
GLOBAL_LIST_INIT(diagonals, list(NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST))
//This list contains the z-level numbers which can be accessed via space travel and the percentile chances to get there.
//(Exceptions: extended, sandbox and nuke) -Errorage
//Was list("3" = 30, "4" = 70).
//Spacing should be a reliable method of getting rid of a body -- Urist.
//Go away Urist, I'm restoring this to the longer list. ~Errorage
GLOBAL_LIST_INIT(accessable_z_levels, list(1,3,4,5,6,7)) //Keep this to six maps, repeating z-levels is ok if needed
GLOBAL_LIST_INIT(station_z_levels, list(ZLEVEL_STATION_PRIMARY))
GLOBAL_LIST(global_map)
//list/global_map = list(list(1,5),list(4,3))//an array of map Z levels.
//Resulting sector map looks like
//|_1_|_4_|
//|_5_|_3_|
//
//1 - SS13
//4 - Derelict
//3 - AI satellite
//5 - empty space
GLOBAL_LIST_EMPTY(landmarks_list) //list of all landmarks created
GLOBAL_LIST_EMPTY(start_landmarks_list) //list of all spawn points created
GLOBAL_LIST_EMPTY(department_security_spawns) //list of all department security spawns
GLOBAL_LIST_EMPTY(generic_event_spawns) //list of all spawns for events
GLOBAL_LIST_EMPTY(wizardstart)
GLOBAL_LIST_EMPTY(newplayer_start)
GLOBAL_LIST_EMPTY(prisonwarp) //prisoners go to these
GLOBAL_LIST_EMPTY(holdingfacility) //captured people go here
GLOBAL_LIST_EMPTY(xeno_spawn)//Aliens spawn at these.
GLOBAL_LIST_EMPTY(tdome1)
GLOBAL_LIST_EMPTY(tdome2)
GLOBAL_LIST_EMPTY(tdomeobserve)
GLOBAL_LIST_EMPTY(tdomeadmin)
GLOBAL_LIST_EMPTY(prisonwarped) //list of players already warped
GLOBAL_LIST_EMPTY(blobstart)
GLOBAL_LIST_EMPTY(secequipment)
GLOBAL_LIST_EMPTY(deathsquadspawn)
GLOBAL_LIST_EMPTY(emergencyresponseteamspawn)
GLOBAL_LIST_EMPTY(ruin_landmarks)
//away missions
GLOBAL_LIST_EMPTY(awaydestinations) //a list of landmarks that the warpgate can take you to
//used by jump-to-area etc. Updated by area/updateName()
GLOBAL_LIST_EMPTY(sortedAreas)
GLOBAL_LIST_EMPTY(all_abstract_markers)
+1 -1
View File
@@ -21,7 +21,7 @@
/obj/attackby(obj/item/I, mob/living/user, params)
return I.attack_obj(src, user)
/mob/living/attackby(obj/item/I, mob/user, params)
/mob/living/attackby(obj/item/I, mob/living/user, params)
user.changeNext_move(CLICK_CD_MELEE)
if(user.a_intent == INTENT_HARM && stat == DEAD && butcher_results) //can we butcher it?
var/sharpness = I.is_sharp()
+1 -1
View File
@@ -117,7 +117,7 @@ SUBSYSTEM_DEF(mapping)
var/start_time = REALTIMEOFDAY
INIT_ANNOUNCE("Loading [config.map_name]...")
TryLoadZ(config.GetFullMapPath(), FailedZs, ZLEVEL_STATION)
TryLoadZ(config.GetFullMapPath(), FailedZs, ZLEVEL_STATION_PRIMARY)
INIT_ANNOUNCE("Loaded station in [(REALTIMEOFDAY - start_time)/10]s!")
if(SSdbcore.Connect())
var/datum/DBQuery/query_round_map_name = SSdbcore.NewQuery("UPDATE [format_table_name("round")] SET map_name = '[config.map_name]' WHERE id = [GLOB.round_id]")
+1 -1
View File
@@ -5,7 +5,7 @@ SUBSYSTEM_DEF(minimap)
var/const/MINIMAP_SIZE = 2048
var/const/TILE_SIZE = 8
var/list/z_levels = list(ZLEVEL_STATION)
var/list/z_levels = list(ZLEVEL_STATION_PRIMARY)
/datum/controller/subsystem/minimap/Initialize(timeofday)
var/hash = md5(SSmapping.config.GetFullMapPath())
+84 -53
View File
@@ -2,15 +2,13 @@ SUBSYSTEM_DEF(persistence)
name = "Persistence"
init_order = INIT_ORDER_PERSISTENCE
flags = SS_NO_FIRE
var/secret_satchels
var/list/satchel_blacklist = list() //this is a typecache
var/list/new_secret_satchels = list() //these are objects
var/list/old_secret_satchels = ""
var/list/old_secret_satchels = list()
var/list/obj/structure/chisel_message/chisel_messages = list()
var/list/saved_messages = list()
var/trophy_sav
var/list/saved_trophies = list()
/datum/controller/subsystem/persistence/Initialize()
@@ -21,32 +19,47 @@ SUBSYSTEM_DEF(persistence)
..()
/datum/controller/subsystem/persistence/proc/LoadSatchels()
secret_satchels = file("data/npc_saves/SecretSatchels[SSmapping.config.map_name].json")
if(!fexists(secret_satchels))
return
satchel_blacklist = typecacheof(list(/obj/item/stack/tile/plasteel, /obj/item/crowbar))
var/list/json = list()
json = json_decode(file2text(secret_satchels))
old_secret_satchels = json["data"]
var/placed_satchel = 0
if(old_secret_satchels.len)
if(old_secret_satchels.len >= 20) //guards against low drop pools assuring that one player cannot reliably find his own gear.
var/pos = rand(1, old_secret_satchels.len)
old_secret_satchels.Cut(pos, pos+1)
var/obj/item/storage/backpack/satchel/flat/F = new()
F.x = old_secret_satchels[pos]["x"]
F.y = old_secret_satchels[pos]["y"]
F.z = ZLEVEL_STATION
var/path = text2path(old_secret_satchels[pos]["saved_obj"])
if(!ispath(path))
return
if(isfloorturf(F.loc) && !istype(F.loc, /turf/open/floor/plating/))
F.hide(1)
new path(F)
placed_satchel++
var/path
var/obj/item/storage/backpack/satchel/flat/F = new()
if(fexists("data/npc_saves/SecretSatchels.sav")) //legacy compatability to convert old format to new
var/savefile/secret_satchels = new /savefile("data/npc_saves/SecretSatchels.sav")
var/sav_text
secret_satchels[SSmapping.config.map_name] >> sav_text
fdel("data/npc_saves/SecretSatchels.sav")
if(sav_text)
old_secret_satchels = splittext(sav_text,"#")
if(old_secret_satchels.len >= 20)
var/satchel_string = pick_n_take(old_secret_satchels)
var/list/chosen_satchel = splittext(satchel_string,"|")
if(chosen_satchel.len == 3)
F.x = text2num(chosen_satchel[1])
F.y = text2num(chosen_satchel[2])
F.z = ZLEVEL_STATION_PRIMARY
path = text2path(chosen_satchel[3])
else
var/json_file = file("data/npc_saves/SecretSatchels[SSmapping.config.map_name].json")
if(!fexists(json_file))
return
var/list/json = list()
json = json_decode(file2text(json_file))
old_secret_satchels = json["data"]
if(old_secret_satchels.len)
if(old_secret_satchels.len >= 20) //guards against low drop pools assuring that one player cannot reliably find his own gear.
var/pos = rand(1, old_secret_satchels.len)
old_secret_satchels.Cut(pos, pos+1)
F.x = old_secret_satchels[pos]["x"]
F.y = old_secret_satchels[pos]["y"]
F.z = ZLEVEL_STATION_PRIMARY
path = text2path(old_secret_satchels[pos]["saved_obj"])
if(!ispath(path))
return
if(isfloorturf(F.loc) && !istype(F.loc, /turf/open/floor/plating/))
F.hide(1)
new path(F)
placed_satchel++
var/list/free_satchels = list()
for(var/turf/T in shuffle(block(locate(TRANSITIONEDGE,TRANSITIONEDGE,ZLEVEL_STATION), locate(world.maxx-TRANSITIONEDGE,world.maxy-TRANSITIONEDGE,ZLEVEL_STATION)))) //Nontrivially expensive but it's roundstart only
for(var/turf/T in shuffle(block(locate(TRANSITIONEDGE,TRANSITIONEDGE,ZLEVEL_STATION_PRIMARY), locate(world.maxx-TRANSITIONEDGE,world.maxy-TRANSITIONEDGE,ZLEVEL_STATION_PRIMARY)))) //Nontrivially expensive but it's roundstart only
if(isfloorturf(T) && !istype(T, /turf/open/floor/plating/))
free_satchels += new /obj/item/storage/backpack/satchel/flat/secret(T)
if(!isemptylist(free_satchels) && ((free_satchels.len + placed_satchel) >= (50 - old_secret_satchels.len) * 0.1)) //up to six tiles, more than enough to kill anything that moves
@@ -58,16 +71,25 @@ SUBSYSTEM_DEF(persistence)
break //Who's been duping the bird?!
/datum/controller/subsystem/persistence/proc/LoadChiselMessages()
var/json_file = file("data/npc_saves/ChiselMessages[SSmapping.config.map_name].json")
if(!fexists(json_file))
return
var/list/json
json = json_decode(file2text(json_file))
var/list/saved_messages = list()
if(fexists("data/npc_saves/ChiselMessages.sav")) //legacy compatability to convert old format to new
var/savefile/chisel_messages_sav = new /savefile("data/npc_saves/ChiselMessages.sav")
var/saved_json
chisel_messages_sav[SSmapping.config.map_name] >> saved_json
if(!saved_json)
return
saved_messages = json_decode(saved_json)
fdel("data/npc_saves/ChiselMessages.sav")
else
var/json_file = file("data/npc_saves/ChiselMessages[SSmapping.config.map_name].json")
if(!fexists(json_file))
return
var/list/json
json = json_decode(file2text(json_file))
if(!json)
return
var/list/saved_messages = json["data"]
if(!json)
return
saved_messages = json["data"]
for(var/item in saved_messages)
if(!islist(item))
@@ -95,17 +117,23 @@ SUBSYSTEM_DEF(persistence)
log_world("Loaded [saved_messages.len] engraved messages on map [SSmapping.config.map_name]")
/datum/controller/subsystem/persistence/proc/LoadTrophies()
trophy_sav = file("data/npc_saves/TrophyItems.json")
if(!fexists(trophy_sav))
return
var/list/json = list()
json = json_decode(file2text(trophy_sav))
if(!json)
return
saved_trophies = json["data"]
if(fexists("data/npc_saves/TrophyItems.sav")) //legacy compatability to convert old format to new
var/savefile/S = new /savefile("data/npc_saves/TrophyItems.sav")
var/saved_json
S >> saved_json
if(!saved_json)
return
saved_trophies = json_decode(saved_json)
fdel("data/npc_saves/TrophyItems.sav")
else
var/json_file = file("data/npc_saves/TrophyItems.json")
if(!fexists(json_file))
return
var/list/json = list()
json = json_decode(file2text(json_file))
if(!json)
return
saved_trophies = json["data"]
SetUpTrophies(saved_trophies.Copy())
/datum/controller/subsystem/persistence/proc/SetUpTrophies(list/trophy_items)
@@ -140,9 +168,10 @@ SUBSYSTEM_DEF(persistence)
/datum/controller/subsystem/persistence/proc/CollectSecretSatchels()
var/list/satchels = list()
satchel_blacklist = typecacheof(list(/obj/item/stack/tile/plasteel, /obj/item/crowbar))
for(var/A in new_secret_satchels)
var/obj/item/storage/backpack/satchel/flat/F = A
if(QDELETED(F) || F.z != ZLEVEL_STATION || F.invisibility != INVISIBILITY_MAXIMUM)
if(QDELETED(F) || F.z != ZLEVEL_STATION_PRIMARY || F.invisibility != INVISIBILITY_MAXIMUM)
continue
var/list/savable_obj = list()
for(var/obj/O in F)
@@ -159,10 +188,11 @@ SUBSYSTEM_DEF(persistence)
data["y"] = F.y
data["saved_obj"] = pick(savable_obj)
satchels += list(data)
var/json_file = file("data/npc_saves/SecretSatchels[SSmapping.config.map_name].json")
var/list/file_data = list()
file_data["data"] = satchels
fdel(secret_satchels)
WRITE_FILE(secret_satchels, json_encode(file_data))
fdel(json_file)
WRITE_FILE(json_file, json_encode(file_data))
/datum/controller/subsystem/persistence/proc/CollectChiselMessages()
var/json_file = file("data/npc_saves/ChiselMessages[SSmapping.config.map_name].json")
@@ -181,10 +211,11 @@ SUBSYSTEM_DEF(persistence)
/datum/controller/subsystem/persistence/proc/CollectTrophies()
var/json_file = file("data/npc_saves/TrophyItems.json")
var/list/file_data = list()
file_data["data"] = saved_trophies
fdel(trophy_sav)
WRITE_FILE(trophy_sav, json_encode(file_data))
fdel(json_file)
WRITE_FILE(json_file, json_encode(file_data))
/datum/controller/subsystem/persistence/proc/SaveTrophy(obj/structure/displaycase/trophy/T)
if(!T.added_roundstart && T.showpiece)
@@ -192,4 +223,4 @@ SUBSYSTEM_DEF(persistence)
data["path"] = T.showpiece.type
data["message"] = T.trophy_message
data["placer_key"] = T.placer_key
saved_trophies += list(data)
saved_trophies += list(data)
+2 -2
View File
@@ -290,7 +290,7 @@ SUBSYSTEM_DEF(shuttle)
continue
var/turf/T = get_turf(thing)
if(T && T.z == ZLEVEL_STATION)
if(T && (T.z in GLOB.station_z_levels))
callShuttle = 0
break
@@ -384,7 +384,7 @@ SUBSYSTEM_DEF(shuttle)
var/travel_dir = M.preferred_direction
// Remember, the direction is the direction we appear to be
// coming from
var/dock_angle = dir2angle(M.preferred_direction) + M.port_angle + 180
var/dock_angle = dir2angle(M.preferred_direction) + dir2angle(M.port_direction) + 180
var/dock_dir = angle2dir(dock_angle)
var/transit_width = SHUTTLE_TRANSIT_BORDER * 2
+1 -1
View File
@@ -387,7 +387,7 @@ SUBSYSTEM_DEF(ticker)
if(bomb && bomb.loc)
bombloc = bomb.z
else if(!station_missed)
bombloc = ZLEVEL_STATION
bombloc = ZLEVEL_STATION_PRIMARY
if(mode)
mode.explosion_in_progress = 0
+1 -1
View File
@@ -40,7 +40,7 @@
if(!GLOB.summon_spots.len)
while(GLOB.summon_spots.len < SUMMON_POSSIBILITIES)
var/area/summon = pick(GLOB.sortedAreas - GLOB.summon_spots)
if(summon && (summon.z == ZLEVEL_STATION) && summon.valid_territory)
if(summon && (summon.z in GLOB.station_z_levels) && summon.valid_territory)
GLOB.summon_spots += summon
SSticker.mode.cult_objectives += "eldergod"
+2 -2
View File
@@ -17,7 +17,7 @@
for(var/I in other_archdrops)
_archdrops[I] += other_archdrops[I]
/datum/component/archaeology/proc/Dig(mob/user, obj/item/W)
/datum/component/archaeology/proc/Dig(obj/item/W, mob/living/user)
if(dug)
to_chat(user, "<span class='notice'>Looks like someone has dug here already.</span>")
return FALSE
@@ -63,7 +63,7 @@
if(isplatingturf(OT))
var/turf/open/floor/plating/POT = parent
POT.icon_plating = "[POT.postdig_icon]"
OT.icon_state = "[OT.postdig_icon]"
POT.icon_state = "[OT.postdig_icon]"
if(OT.slowdown) //Things like snow slow you down until you dig them.
OT.slowdown = 0
+1 -1
View File
@@ -413,7 +413,7 @@
AD.Refresh()
for(var/mob/living/carbon/human/H in shuffle(GLOB.living_mob_list))
if(H.z != ZLEVEL_STATION)
if(!(H.z in GLOB.station_z_levels))
continue
if(!H.HasDisease(D))
H.ForceContractDisease(D)
+228 -228
View File
@@ -1,230 +1,230 @@
//wrapper
/proc/do_teleport(ateleatom, adestination, aprecision=0, afteleport=1, aeffectin=null, aeffectout=null, asoundin=null, asoundout=null)
var/datum/teleport/instant/science/D = new
if(D.start(arglist(args)))
return 1
return 0
/datum/teleport
var/atom/movable/teleatom //atom to teleport
var/atom/destination //destination to teleport to
var/precision = 0 //teleport precision
var/datum/effect_system/effectin //effect to show right before teleportation
var/datum/effect_system/effectout //effect to show right after teleportation
var/soundin //soundfile to play before teleportation
var/soundout //soundfile to play after teleportation
var/force_teleport = 1 //if false, teleport will use Move() proc (dense objects will prevent teleportation)
/datum/teleport/proc/start(ateleatom, adestination, aprecision=0, afteleport=1, aeffectin=null, aeffectout=null, asoundin=null, asoundout=null)
if(!initTeleport(arglist(args)))
return 0
return 1
/datum/teleport/proc/initTeleport(ateleatom,adestination,aprecision,afteleport,aeffectin,aeffectout,asoundin,asoundout)
if(!setTeleatom(ateleatom))
return 0
if(!setDestination(adestination))
return 0
if(!setPrecision(aprecision))
return 0
setEffects(aeffectin,aeffectout)
setForceTeleport(afteleport)
setSounds(asoundin,asoundout)
return 1
//must succeed
/datum/teleport/proc/setPrecision(aprecision)
if(isnum(aprecision))
precision = aprecision
return 1
return 0
//must succeed
/datum/teleport/proc/setDestination(atom/adestination)
if(istype(adestination))
destination = adestination
return 1
return 0
//must succeed in most cases
/datum/teleport/proc/setTeleatom(atom/movable/ateleatom)
if(istype(ateleatom, /obj/effect) && !istype(ateleatom, /obj/effect/dummy/chameleon))
qdel(ateleatom)
return 0
if(istype(ateleatom))
teleatom = ateleatom
return 1
return 0
//custom effects must be properly set up first for instant-type teleports
//optional
/datum/teleport/proc/setEffects(datum/effect_system/aeffectin=null,datum/effect_system/aeffectout=null)
effectin = istype(aeffectin) ? aeffectin : null
effectout = istype(aeffectout) ? aeffectout : null
return 1
//optional
/datum/teleport/proc/setForceTeleport(afteleport)
force_teleport = afteleport
return 1
//optional
/datum/teleport/proc/setSounds(asoundin=null,asoundout=null)
soundin = isfile(asoundin) ? asoundin : null
soundout = isfile(asoundout) ? asoundout : null
return 1
//placeholder
/datum/teleport/proc/teleportChecks()
return 1
/datum/teleport/proc/playSpecials(atom/location,datum/effect_system/effect,sound)
if(location)
if(effect)
INVOKE_ASYNC(src, .proc/do_effect, location, effect)
if(sound)
INVOKE_ASYNC(src, .proc/do_sound, location, sound)
/datum/teleport/proc/do_effect(atom/location, datum/effect_system/effect)
src = null
effect.attach(location)
effect.start()
/datum/teleport/proc/do_sound(atom/location, sound)
src = null
playsound(location, sound, 60, 1)
//do the monkey dance
/datum/teleport/proc/doTeleport()
var/turf/destturf
var/turf/curturf = get_turf(teleatom)
destturf = get_teleport_turf(get_turf(destination), precision)
if(!destturf || !curturf || destturf.is_transition_turf())
return 0
var/area/A = get_area(curturf)
if(A.noteleport)
return 0
playSpecials(curturf,effectin,soundin)
if(force_teleport)
teleatom.forceMove(destturf)
if(ismegafauna(teleatom))
message_admins("[teleatom] [ADMIN_FLW(teleatom)] has teleported from [ADMIN_COORDJMP(curturf)] to [ADMIN_COORDJMP(destturf)].")
playSpecials(destturf,effectout,soundout)
else
if(teleatom.Move(destturf))
playSpecials(destturf,effectout,soundout)
if(ismegafauna(teleatom))
message_admins("[teleatom] [ADMIN_FLW(teleatom)] has teleported from [ADMIN_COORDJMP(curturf)] to [ADMIN_COORDJMP(destturf)].")
return 1
/datum/teleport/proc/teleport()
if(teleportChecks())
return doTeleport()
return 0
/datum/teleport/instant //teleports when datum is created
start(ateleatom, adestination, aprecision=0, afteleport=1, aeffectin=null, aeffectout=null, asoundin=null, asoundout=null)
if(..())
if(teleport())
return 1
return 0
/datum/teleport/instant/science
/datum/teleport/instant/science/setEffects(datum/effect_system/aeffectin,datum/effect_system/aeffectout)
if(aeffectin==null || aeffectout==null)
var/datum/effect_system/spark_spread/aeffect = new
aeffect.set_up(5, 1, teleatom)
effectin = effectin || aeffect
effectout = effectout || aeffect
return 1
else
return ..()
/datum/teleport/instant/science/setPrecision(aprecision)
..()
if(istype(teleatom, /obj/item/storage/backpack/holding))
precision = rand(1,100)
var/list/bagholding = teleatom.search_contents_for(/obj/item/storage/backpack/holding)
if(bagholding.len)
precision = max(rand(1,100)*bagholding.len,100)
if(isliving(teleatom))
var/mob/living/MM = teleatom
to_chat(MM, "<span class='warning'>The bluespace interface on your bag of holding interferes with the teleport!</span>")
return 1
// Safe location finder
/proc/find_safe_turf(zlevel = ZLEVEL_STATION, list/zlevels, extended_safety_checks = FALSE)
if(!zlevels)
zlevels = list(zlevel)
var/cycles = 1000
for(var/cycle in 1 to cycles)
// DRUNK DIALLING WOOOOOOOOO
var/x = rand(1, world.maxx)
var/y = rand(1, world.maxy)
var/z = pick(zlevels)
var/random_location = locate(x,y,z)
if(!isfloorturf(random_location))
continue
var/turf/open/floor/F = random_location
if(!F.air)
continue
var/datum/gas_mixture/A = F.air
var/list/A_gases = A.gases
var/trace_gases
for(var/id in A_gases)
if(id in GLOB.hardcoded_gases)
continue
trace_gases = TRUE
break
// Can most things breathe?
if(trace_gases)
continue
if(!(A_gases["o2"] && A_gases["o2"][MOLES] >= 16))
continue
if(A_gases["plasma"])
continue
if(A_gases["co2"] && A_gases["co2"][MOLES] >= 10)
continue
// Aim for goldilocks temperatures and pressure
if((A.temperature <= 270) || (A.temperature >= 360))
continue
var/pressure = A.return_pressure()
if((pressure <= 20) || (pressure >= 550))
continue
if(extended_safety_checks)
//wrapper
/proc/do_teleport(ateleatom, adestination, aprecision=0, afteleport=1, aeffectin=null, aeffectout=null, asoundin=null, asoundout=null)
var/datum/teleport/instant/science/D = new
if(D.start(arglist(args)))
return 1
return 0
/datum/teleport
var/atom/movable/teleatom //atom to teleport
var/atom/destination //destination to teleport to
var/precision = 0 //teleport precision
var/datum/effect_system/effectin //effect to show right before teleportation
var/datum/effect_system/effectout //effect to show right after teleportation
var/soundin //soundfile to play before teleportation
var/soundout //soundfile to play after teleportation
var/force_teleport = 1 //if false, teleport will use Move() proc (dense objects will prevent teleportation)
/datum/teleport/proc/start(ateleatom, adestination, aprecision=0, afteleport=1, aeffectin=null, aeffectout=null, asoundin=null, asoundout=null)
if(!initTeleport(arglist(args)))
return 0
return 1
/datum/teleport/proc/initTeleport(ateleatom,adestination,aprecision,afteleport,aeffectin,aeffectout,asoundin,asoundout)
if(!setTeleatom(ateleatom))
return 0
if(!setDestination(adestination))
return 0
if(!setPrecision(aprecision))
return 0
setEffects(aeffectin,aeffectout)
setForceTeleport(afteleport)
setSounds(asoundin,asoundout)
return 1
//must succeed
/datum/teleport/proc/setPrecision(aprecision)
if(isnum(aprecision))
precision = aprecision
return 1
return 0
//must succeed
/datum/teleport/proc/setDestination(atom/adestination)
if(istype(adestination))
destination = adestination
return 1
return 0
//must succeed in most cases
/datum/teleport/proc/setTeleatom(atom/movable/ateleatom)
if(istype(ateleatom, /obj/effect) && !istype(ateleatom, /obj/effect/dummy/chameleon))
qdel(ateleatom)
return 0
if(istype(ateleatom))
teleatom = ateleatom
return 1
return 0
//custom effects must be properly set up first for instant-type teleports
//optional
/datum/teleport/proc/setEffects(datum/effect_system/aeffectin=null,datum/effect_system/aeffectout=null)
effectin = istype(aeffectin) ? aeffectin : null
effectout = istype(aeffectout) ? aeffectout : null
return 1
//optional
/datum/teleport/proc/setForceTeleport(afteleport)
force_teleport = afteleport
return 1
//optional
/datum/teleport/proc/setSounds(asoundin=null,asoundout=null)
soundin = isfile(asoundin) ? asoundin : null
soundout = isfile(asoundout) ? asoundout : null
return 1
//placeholder
/datum/teleport/proc/teleportChecks()
return 1
/datum/teleport/proc/playSpecials(atom/location,datum/effect_system/effect,sound)
if(location)
if(effect)
INVOKE_ASYNC(src, .proc/do_effect, location, effect)
if(sound)
INVOKE_ASYNC(src, .proc/do_sound, location, sound)
/datum/teleport/proc/do_effect(atom/location, datum/effect_system/effect)
src = null
effect.attach(location)
effect.start()
/datum/teleport/proc/do_sound(atom/location, sound)
src = null
playsound(location, sound, 60, 1)
//do the monkey dance
/datum/teleport/proc/doTeleport()
var/turf/destturf
var/turf/curturf = get_turf(teleatom)
destturf = get_teleport_turf(get_turf(destination), precision)
if(!destturf || !curturf || destturf.is_transition_turf())
return 0
var/area/A = get_area(curturf)
if(A.noteleport)
return 0
playSpecials(curturf,effectin,soundin)
if(force_teleport)
teleatom.forceMove(destturf)
if(ismegafauna(teleatom))
message_admins("[teleatom] [ADMIN_FLW(teleatom)] has teleported from [ADMIN_COORDJMP(curturf)] to [ADMIN_COORDJMP(destturf)].")
playSpecials(destturf,effectout,soundout)
else
if(teleatom.Move(destturf))
playSpecials(destturf,effectout,soundout)
if(ismegafauna(teleatom))
message_admins("[teleatom] [ADMIN_FLW(teleatom)] has teleported from [ADMIN_COORDJMP(curturf)] to [ADMIN_COORDJMP(destturf)].")
return 1
/datum/teleport/proc/teleport()
if(teleportChecks())
return doTeleport()
return 0
/datum/teleport/instant //teleports when datum is created
start(ateleatom, adestination, aprecision=0, afteleport=1, aeffectin=null, aeffectout=null, asoundin=null, asoundout=null)
if(..())
if(teleport())
return 1
return 0
/datum/teleport/instant/science
/datum/teleport/instant/science/setEffects(datum/effect_system/aeffectin,datum/effect_system/aeffectout)
if(aeffectin==null || aeffectout==null)
var/datum/effect_system/spark_spread/aeffect = new
aeffect.set_up(5, 1, teleatom)
effectin = effectin || aeffect
effectout = effectout || aeffect
return 1
else
return ..()
/datum/teleport/instant/science/setPrecision(aprecision)
..()
if(istype(teleatom, /obj/item/storage/backpack/holding))
precision = rand(1,100)
var/list/bagholding = teleatom.search_contents_for(/obj/item/storage/backpack/holding)
if(bagholding.len)
precision = max(rand(1,100)*bagholding.len,100)
if(isliving(teleatom))
var/mob/living/MM = teleatom
to_chat(MM, "<span class='warning'>The bluespace interface on your bag of holding interferes with the teleport!</span>")
return 1
// Safe location finder
/proc/find_safe_turf(zlevel = ZLEVEL_STATION_PRIMARY, list/zlevels, extended_safety_checks = FALSE)
if(!zlevels)
zlevels = list(zlevel)
var/cycles = 1000
for(var/cycle in 1 to cycles)
// DRUNK DIALLING WOOOOOOOOO
var/x = rand(1, world.maxx)
var/y = rand(1, world.maxy)
var/z = pick(zlevels)
var/random_location = locate(x,y,z)
if(!isfloorturf(random_location))
continue
var/turf/open/floor/F = random_location
if(!F.air)
continue
var/datum/gas_mixture/A = F.air
var/list/A_gases = A.gases
var/trace_gases
for(var/id in A_gases)
if(id in GLOB.hardcoded_gases)
continue
trace_gases = TRUE
break
// Can most things breathe?
if(trace_gases)
continue
if(!(A_gases["o2"] && A_gases["o2"][MOLES] >= 16))
continue
if(A_gases["plasma"])
continue
if(A_gases["co2"] && A_gases["co2"][MOLES] >= 10)
continue
// Aim for goldilocks temperatures and pressure
if((A.temperature <= 270) || (A.temperature >= 360))
continue
var/pressure = A.return_pressure()
if((pressure <= 20) || (pressure >= 550))
continue
if(extended_safety_checks)
if(istype(F, /turf/open/lava)) //chasms aren't /floor, and so are pre-filtered
var/turf/open/lava/L = F
if(!L.is_safe())
continue
// DING! You have passed the gauntlet, and are "probably" safe.
return F
/proc/get_teleport_turfs(turf/center, precision = 0)
if(!precision)
return list(center)
var/list/posturfs = list()
for(var/turf/T in range(precision,center))
if(T.is_transition_turf())
continue // Avoid picking these.
var/area/A = T.loc
if(!A.noteleport)
posturfs.Add(T)
return posturfs
/proc/get_teleport_turf(turf/center, precision = 0)
return safepick(get_teleport_turfs(center, precision))
if(!L.is_safe())
continue
// DING! You have passed the gauntlet, and are "probably" safe.
return F
/proc/get_teleport_turfs(turf/center, precision = 0)
if(!precision)
return list(center)
var/list/posturfs = list()
for(var/turf/T in range(precision,center))
if(T.is_transition_turf())
continue // Avoid picking these.
var/area/A = T.loc
if(!A.noteleport)
posturfs.Add(T)
return posturfs
/proc/get_teleport_turf(turf/center, precision = 0)
return safepick(get_teleport_turfs(center, precision))
+1 -1
View File
@@ -522,7 +522,7 @@
if(I == src)
continue
var/mob/M = I
if(M.z == ZLEVEL_STATION && !M.stat)
if((M.z in GLOB.station_z_levels) && !M.stat)
last_healthy_headrev = FALSE
break
text += "head | not mindshielded | <a href='?src=\ref[src];revolution=clear'>employee</a> | <b>[last_healthy_headrev ? "<font color='red'>LAST </font> " : ""]HEADREV</b> | <a href='?src=\ref[src];revolution=rev'>rev</a>"
+1 -1
View File
@@ -30,7 +30,7 @@
var/area_type = /area/space //Types of area to affect
var/list/impacted_areas = list() //Areas to be affected by the weather, calculated when the weather begins
var/list/protected_areas = list()//Areas that are protected and excluded from the affected areas.
var/target_z = ZLEVEL_STATION //The z-level to affect
var/target_z = ZLEVEL_STATION_PRIMARY //The z-level to affect
var/overlay_layer = AREA_LAYER //Since it's above everything else, this is the layer used by default. TURF_LAYER is below mobs and walls if you need to use that.
var/aesthetic = FALSE //If the weather has no purpose other than looks
+3 -3
View File
@@ -17,7 +17,7 @@
area_type = /area
protected_areas = list(/area/space)
target_z = ZLEVEL_STATION
target_z = ZLEVEL_STATION_PRIMARY
overlay_layer = ABOVE_OPEN_TURF_LAYER //Covers floors only
immunity_type = "lava"
@@ -48,7 +48,7 @@
end_duration = 0
area_type = /area
target_z = ZLEVEL_STATION
target_z = ZLEVEL_STATION_PRIMARY
/datum/weather/advanced_darkness/update_areas()
for(var/V in impacted_areas)
@@ -142,7 +142,7 @@
area_type = /area
protected_areas = list(/area/maintenance, /area/ai_monitored/turret_protected/ai_upload, /area/ai_monitored/turret_protected/ai_upload_foyer,
/area/ai_monitored/turret_protected/ai, /area/storage/emergency/starboard, /area/storage/emergency/port, /area/shuttle)
target_z = ZLEVEL_STATION
target_z = ZLEVEL_STATION_PRIMARY
immunity_type = "rad"
+1 -1
View File
@@ -75,7 +75,7 @@ GLOBAL_LIST_EMPTY(teleportlocs)
if(GLOB.teleportlocs[AR.name])
continue
var/turf/picked = safepick(get_area_turfs(AR.type))
if (picked && (picked.z == ZLEVEL_STATION))
if (picked && (picked.z in GLOB.station_z_levels))
GLOB.teleportlocs[AR.name] = AR
sortTim(GLOB.teleportlocs, /proc/cmp_text_dsc)
+3 -3
View File
@@ -84,8 +84,8 @@
/area/holodeck/rec_center/firingrange
name = "Holodeck - Firing Range"
/area/holodeck/rec_center/rollercoaster
name = "Holodeck - Roller Coaster"
/area/holodeck/rec_center/school
name = "Holodeck - Anime School"
/area/holodeck/rec_center/chapelcourt
name = "Holodeck - Chapel Courtroom"
@@ -123,4 +123,4 @@
/area/holodeck/rec_center/thunderdome1218
name = "Holodeck - 1218 AD"
restricted = 1
restricted = 1
+2 -2
View File
@@ -560,7 +560,7 @@
flags_2 |= STATIONLOVING_2
/atom/movable/proc/relocate()
var/targetturf = find_safe_turf(ZLEVEL_STATION)
var/targetturf = find_safe_turf(ZLEVEL_STATION_PRIMARY)
if(!targetturf)
if(GLOB.blobstart.len > 0)
targetturf = get_turf(pick(GLOB.blobstart))
@@ -592,7 +592,7 @@
/atom/movable/proc/in_bounds()
. = FALSE
var/turf/currentturf = get_turf(src)
if(currentturf && (currentturf.z == ZLEVEL_CENTCOM || currentturf.z == ZLEVEL_STATION || currentturf.z == ZLEVEL_TRANSIT))
if(currentturf && (currentturf.z == ZLEVEL_CENTCOM || (currentturf.z in GLOB.station_z_levels) || currentturf.z == ZLEVEL_TRANSIT))
. = TRUE
+1 -1
View File
@@ -238,7 +238,7 @@
/obj/item/antag_spawner/slaughter_demon/attack_self(mob/user)
if(user.z != ZLEVEL_STATION)
if(!(user.z in GLOB.station_z_levels))
to_chat(user, "<span class='notice'>You should probably wait until you reach the station.</span>")
return
if(used)
+2 -2
View File
@@ -19,7 +19,7 @@
var/nukecode = random_nukecode()
for(var/obj/machinery/nuclearbomb/bomb in GLOB.machines)
if(bomb && bomb.r_code)
if(bomb.z == ZLEVEL_STATION)
if(bomb.z in GLOB.station_z_levels)
bomb.r_code = nukecode
intercepttext += "<FONT size = 3><b>NanoTrasen Update</b>: Biohazard Alert.</FONT><HR>"
@@ -91,7 +91,7 @@
if(count_territories)
var/list/valid_territories = list()
for(var/area/A in world) //First, collect all area types on the station zlevel
if(A.z == ZLEVEL_STATION)
if(A.z in GLOB.station_z_levels)
if(!(A.type in valid_territories) && A.valid_territory)
valid_territories |= A.type
if(valid_territories.len)
@@ -193,13 +193,13 @@
var/structure_number = 0
for(var/obj/structure/destructible/clockwork/powered/P in range(SIGIL_ACCESS_RANGE, src))
structure_number++
to_chat(user, "<span class='[power_charge ? "brass":"alloy"]'>It is storing <b>[GLOB.ratvar_awakens ? "INFINITY":"[power_charge]"]W</b> of power, \
to_chat(user, "<span class='[power_charge ? "brass":"alloy"]'>It is storing <b>[GLOB.ratvar_awakens ? "INFINITE</b>":"[DisplayPower(power_charge)]</b> of"] power, \
and <b>[structure_number]</b> Clockwork Structure[structure_number == 1 ? " is":"s are"] in range.</span>")
to_chat(user, "<span class='brass'>While active, it will gradually drain power from nearby electronics. It is currently [isprocessing ? "active":"disabled"].</span>")
if(iscyborg(user))
to_chat(user, "<span class='brass'>You can recharge from the [sigil_name] by crossing it.</span>")
else if(!GLOB.ratvar_awakens)
to_chat(user, "<span class='brass'>Hitting the [sigil_name] with brass sheets will convert them to power at a rate of <b>1</b> brass sheet to <b>[POWER_FLOOR]W</b> power.</span>")
to_chat(user, "<span class='brass'>Hitting the [sigil_name] with brass sheets will convert them to power at a rate of <b>1</b> brass sheet to <b>[DisplayPower(POWER_FLOOR)]</b> power.</span>")
if(!GLOB.ratvar_awakens)
to_chat(user, "<span class='brass'>You can recharge Replica Fabricators from the [sigil_name].</span>")
@@ -207,7 +207,7 @@
if(is_servant_of_ratvar(user) && istype(I, /obj/item/stack/tile/brass) && !GLOB.ratvar_awakens)
var/obj/item/stack/tile/brass/B = I
user.visible_message("<span class='warning'>[user] places [B] on [src], causing it to disintegrate into glowing orange energy!</span>", \
"<span class='brass'>You charge the [sigil_name] with [B], providing it with <b>[B.amount * POWER_FLOOR]W</b> of power.</span>")
"<span class='brass'>You charge the [sigil_name] with [B], providing it with <b>[DisplayPower(B.amount * POWER_FLOOR)]</b> of power.</span>")
modify_charge(-(B.amount * POWER_FLOOR))
playsound(src, 'sound/effects/light_flicker.ogg', (B.amount * POWER_FLOOR) * 0.01, 1)
qdel(B)
@@ -269,7 +269,7 @@
fabricator.recharging = null
if(user)
user.visible_message("<span class='notice'>[user]'s [fabricator.name] stops draining glowing orange energy from [src].</span>", \
"<span class='alloy'>You finish recharging your [fabricator.name]. It now contains <b>[fabricator.get_power()]W/[fabricator.get_max_power()]W</b> power.</span>")
"<span class='alloy'>You finish recharging your [fabricator.name]. It now contains <b>[DisplayPower(fabricator.get_power())]/[DisplayPower(fabricator.get_max_power())]</b> power.</span>")
//Fabricator mob heal proc, to avoid as much copypaste as possible.
/mob/living/proc/fabricator_heal(mob/living/user, obj/item/clockwork/replica_fabricator/fabricator)
@@ -31,7 +31,7 @@
var/mob/living/silicon/ai/AI = ai
if(AI.deployed_shell && is_servant_of_ratvar(AI.deployed_shell))
continue
if(is_servant_of_ratvar(AI) || !isturf(AI.loc) || AI.z != ZLEVEL_STATION || AI.stat == DEAD)
if(is_servant_of_ratvar(AI) || !isturf(AI.loc) || !(AI.z in GLOB.station_z_levels) || AI.stat == DEAD)
continue
.++
@@ -500,7 +500,7 @@
anything but a last resort. Instead, it is recommended that a <b>Sigil of Transmission</b> is created. This sigil serves as both battery and power generator for nearby clockwork \
structures, and those structures will happily draw power from the sigil before they resort to APCs.<br><br>"
dat += "Generating power is less easy. The most reliable and efficient way is using brass sheets; attacking a sigil of transmission with brass sheets will convert them \
to power, at a rate of <b>[POWER_FLOOR]W</b> per sheet. (Brass sheets are created from replica fabricators, which are explained more in detail in the <b>Conversion</b> section.) \
to power, at a rate of <b>[DisplayPower(POWER_FLOOR)]</b> per sheet. (Brass sheets are created from replica fabricators, which are explained more in detail in the <b>Conversion</b> section.) \
Activating a sigil of transmission will also cause it to drain power from the nearby area, which, while effective, serves as an obvious tell that there is something wrong.<br><br>"
dat += "Without power, many structures will not function, making a base vulnerable to attack. For this reason, it is critical that you keep an eye on your power reserves and \
ensure that they remain comfortably high.<br><br>"
@@ -126,22 +126,22 @@
to_chat(user, "<span class='brass'>Can be used to replace walls, floors, tables, windows, windoors, and airlocks with Clockwork variants.</span>")
to_chat(user, "<span class='brass'>Can construct Clockwork Walls on Clockwork Floors and deconstruct Clockwork Walls to Clockwork Floors.</span>")
if(uses_power)
to_chat(user, "<span class='alloy'>It can consume floor tiles, rods, metal, and plasteel for power at rates of <b>2:[POWER_ROD]W</b>, <b>1:[POWER_ROD]W</b>, <b>1:[POWER_METAL]W</b>, \
and <b>1:[POWER_PLASTEEL]W</b>, respectively.</span>")
to_chat(user, "<span class='alloy'>It can also consume brass sheets for power at a rate of <b>1:[POWER_FLOOR]W</b>.</span>")
to_chat(user, "<span class='alloy'>It is storing <b>[get_power()]W/[get_max_power()]W</b> of power[charge_rate ? ", and is gaining <b>[charge_rate*0.5]W</b> of power per second":""].</span>")
to_chat(user, "<span class='alloy'>Use it in-hand to produce <b>5</b> brass sheets at a cost of <b>[POWER_WALL_TOTAL]W</b> power.</span>")
to_chat(user, "<span class='alloy'>It can consume floor tiles, rods, metal, and plasteel for power at rates of <b>2:[DisplayPower(POWER_ROD)]</b>, <b>1:[DisplayPower(POWER_ROD)]</b>, <b>1:[DisplayPower(POWER_METAL)]</b>, \
and <b>1:[DisplayPower(POWER_PLASTEEL)]</b>, respectively.</span>")
to_chat(user, "<span class='alloy'>It can also consume brass sheets for power at a rate of <b>1:[DisplayPower(POWER_FLOOR)]</b>.</span>")
to_chat(user, "<span class='alloy'>It is storing <b>[DisplayPower(get_power())]/[DisplayPower(get_max_power())]</b> of power[charge_rate ? ", and is gaining <b>[DisplayPower(charge_rate*0.5)]</b> of power per second":""].</span>")
to_chat(user, "<span class='alloy'>Use it in-hand to produce <b>5</b> brass sheets at a cost of <b>[DisplayPower(POWER_WALL_TOTAL)]</b> power.</span>")
/obj/item/clockwork/replica_fabricator/attack_self(mob/living/user)
if(is_servant_of_ratvar(user))
if(uses_power)
if(!can_use_power(POWER_WALL_TOTAL))
to_chat(user, "<span class='warning'>[src] requires <b>[POWER_WALL_TOTAL]W</b> of power to produce brass sheets!</span>")
to_chat(user, "<span class='warning'>[src] requires <b>[DisplayPower(POWER_WALL_TOTAL)]</b> of power to produce brass sheets!</span>")
return
modify_stored_power(-POWER_WALL_TOTAL)
playsound(src, 'sound/items/deconstruct.ogg', 50, 1)
new/obj/item/stack/tile/brass(user.loc, 5)
to_chat(user, "<span class='brass'>You use [stored_power ? "some":"all"] of [src]'s power to produce <b>5</b> brass sheets. It now stores <b>[get_power()]W/[get_max_power()]W</b> of power.</span>")
to_chat(user, "<span class='brass'>You use [stored_power ? "some":"all"] of [src]'s power to produce <b>5</b> brass sheets. It now stores <b>[DisplayPower(get_power())]/[DisplayPower(get_max_power())]</b> of power.</span>")
/obj/item/clockwork/replica_fabricator/pre_attackby(atom/target, mob/living/user, params)
if(!target || !user || !is_servant_of_ratvar(user) || istype(target, /obj/item/storage))
@@ -196,7 +196,7 @@
fabrication_values["power_cost"] = 0
var/turf/Y = get_turf(user)
if(!Y || (Y.z != ZLEVEL_STATION && Y.z != ZLEVEL_CENTCOM && Y.z != ZLEVEL_MINING && Y.z != ZLEVEL_LAVALAND))
if(!Y || (!(Y.z in GLOB.station_z_levels) && Y.z != ZLEVEL_CENTCOM && Y.z != ZLEVEL_MINING && Y.z != ZLEVEL_LAVALAND))
fabrication_values["operation_time"] *= 2
if(fabrication_values["power_cost"] > 0)
fabrication_values["power_cost"] *= 2
@@ -276,7 +276,7 @@
if(!silent)
var/atom/A = fabrication_values["new_obj_type"]
if(A)
to_chat(user, "<span class='warning'>You need <b>[fabrication_values["power_cost"]]W</b> power to fabricate \a [initial(A.name)] from [target]!</span>")
to_chat(user, "<span class='warning'>You need <b>[DisplayPower(fabrication_values["power_cost"])]</b> power to fabricate \a [initial(A.name)] from [target]!</span>")
else if(stored_power - fabrication_values["power_cost"] > max_power)
if(!silent)
var/atom/A = fabrication_values["new_obj_type"]
@@ -323,8 +323,8 @@
repair_values["power_required"] = round(repair_values["healing_for_cycle"]*MIN_CLOCKCULT_POWER, MIN_CLOCKCULT_POWER) //and get the power cost from that
if(!can_use_power(RATVAR_POWER_CHECK) && !can_use_power(repair_values["power_required"]))
if(!silent)
to_chat(user, "<span class='warning'>You need at least <b>[repair_values["power_required"]]W</b> power to start repairin[target == user ? "g yourself" : "g [target]"], and at least \
<b>[round(repair_values["amount_to_heal"]*MIN_CLOCKCULT_POWER, MIN_CLOCKCULT_POWER)]W</b> to fully repair [target == user ? "yourself" : "[target.p_them()]"]!</span>")
to_chat(user, "<span class='warning'>You need at least <b>[DisplayPower(repair_values["power_required"])]</b> power to start repairin[target == user ? "g yourself" : "g [target]"], and at least \
<b>[DisplayPower(repair_values["amount_to_heal"]*MIN_CLOCKCULT_POWER, MIN_CLOCKCULT_POWER)]</b> to fully repair [target == user ? "yourself" : "[target.p_them()]"]!</span>")
return FALSE
return TRUE
@@ -158,7 +158,7 @@ Judgement: 12 servants, 5 caches, 300 CV, and any existing AIs are converted or
/datum/clockwork_scripture/proc/check_offstation_penalty()
var/turf/T = get_turf(invoker)
if(!T || (T.z != ZLEVEL_STATION && T.z != ZLEVEL_CENTCOM && T.z != ZLEVEL_MINING && T.z != ZLEVEL_LAVALAND))
if(!T || (!(T.z in GLOB.station_z_levels) && T.z != ZLEVEL_CENTCOM && T.z != ZLEVEL_MINING && T.z != ZLEVEL_LAVALAND))
channel_time *= 2
for(var/i in consumed_components)
if(consumed_components[i])
@@ -175,7 +175,7 @@
to_chat(invoker, "<span class='inathneq'>\"It is too late to construct one of these, champion.\"</span>")
return FALSE
var/turf/T = get_turf(invoker)
if(!T || T.z != ZLEVEL_STATION)
if(!T || !(T.z in GLOB.station_z_levels))
to_chat(invoker, "<span class='inathneq'>\"You must be on the station to construct one of these, champion.\"</span>")
return FALSE
return ..()
@@ -33,7 +33,7 @@
return FALSE
var/area/A = get_area(invoker)
var/turf/T = get_turf(invoker)
if(!T || T.z != ZLEVEL_STATION || istype(A, /area/shuttle) || !A.blob_allowed)
if(!T || !(T.z in GLOB.station_z_levels) || istype(A, /area/shuttle) || !A.blob_allowed)
to_chat(invoker, "<span class='warning'>You must be on the station to activate the Ark!</span>")
return FALSE
if(GLOB.clockwork_gateway_activated)
@@ -160,7 +160,7 @@
if(is_servant_of_ratvar(user) || isobserver(user))
var/powered = total_accessable_power()
var/sigil_number = LAZYLEN(check_apc_and_sigils())
to_chat(user, "<span class='[powered ? "brass":"alloy"]'>It has access to <b>[powered == INFINITY ? "INFINITY":"[powered]"]W</b> of power, \
to_chat(user, "<span class='[powered ? "brass":"alloy"]'>It has access to <b>[powered == INFINITY ? "INFINITE</b>":"[DisplayPower(powered)]</b> of"] power, \
and <b>[sigil_number]</b> Sigil[sigil_number == 1 ? "":"s"] of Transmission [sigil_number == 1 ? "is":"are"] in range.</span>")
/obj/structure/destructible/clockwork/powered/Destroy()
@@ -23,7 +23,7 @@
/obj/structure/destructible/clockwork/powered/clockwork_obelisk/examine(mob/user)
..()
if(is_servant_of_ratvar(user) || isobserver(user))
to_chat(user, "<span class='nzcrentr_small'>It requires <b>[hierophant_cost]W</b> to broadcast over the Hierophant Network, and <b>[gateway_cost]W</b> to open a Spatial Gateway.</span>")
to_chat(user, "<span class='nzcrentr_small'>It requires <b>[DisplayPower(hierophant_cost)]</b> to broadcast over the Hierophant Network, and <b>[DisplayPower(gateway_cost)]</b> to open a Spatial Gateway.</span>")
/obj/structure/destructible/clockwork/powered/clockwork_obelisk/can_be_unfasten_wrench(mob/user, silent)
if(active)
@@ -19,7 +19,7 @@
/obj/structure/destructible/clockwork/powered/mania_motor/examine(mob/user)
..()
if(is_servant_of_ratvar(user) || isobserver(user))
to_chat(user, "<span class='sevtug_small'>It requires <b>[mania_cost]W</b> to run.</span>")
to_chat(user, "<span class='sevtug_small'>It requires <b>[DisplayPower(mania_cost)]</b> to run.</span>")
/obj/structure/destructible/clockwork/powered/mania_motor/forced_disable(bad_effects)
if(active)
@@ -48,7 +48,7 @@
if(active)
return 0
var/turf/T = get_turf(src)
if(!T || T.z != ZLEVEL_STATION)
if(!T || !(T.z in GLOB.station_z_levels))
to_chat(user, "<span class='warning'>[src] must be on the station to function!</span>")
return 0
if(SSshuttle.emergency.mode != SHUTTLE_CALL)
@@ -63,7 +63,7 @@
/obj/structure/destructible/clockwork/powered/prolonging_prism/process()
var/turf/own_turf = get_turf(src)
if(SSshuttle.emergency.mode != SHUTTLE_CALL || delay_remaining <= 0 || !own_turf || own_turf.z != ZLEVEL_STATION)
if(SSshuttle.emergency.mode != SHUTTLE_CALL || delay_remaining <= 0 || !own_turf || !(own_turf.z in GLOB.station_z_levels))
forced_disable(FALSE)
return
. = ..()
@@ -97,7 +97,7 @@
mean_x = Ceiling(mean_x)
else
mean_x = Floor(mean_x)
var/turf/semi_random_center_turf = locate(mean_x, mean_y, ZLEVEL_STATION)
var/turf/semi_random_center_turf = locate(mean_x, mean_y, ZLEVEL_STATION_PRIMARY)
for(var/t in getline(src, semi_random_center_turf))
prism_turfs[t] = TRUE
var/placement_style = prob(50)
@@ -33,7 +33,7 @@
to_chat(user, "<span class='brass'>It is currently producing random components.</span>")
to_chat(user, "<span class='nezbere_small'>It will produce a component every <b>[round((production_cooldown*0.1) * get_efficiency_mod(TRUE), 0.1)]</b> seconds and requires at least the following power for each component type:</span>")
for(var/i in GLOB.clockwork_component_cache)
to_chat(user, "[get_component_icon(i)] <span class='[get_component_span(i)]_small'><i>[get_component_name(i)]:</i> <b>[get_component_cost(i)]W</b> <i>([GLOB.clockwork_component_cache[i]] exist[GLOB.clockwork_component_cache[i] == 1 ? "s" : ""])</i></span>")
to_chat(user, "[get_component_icon(i)] <span class='[get_component_span(i)]_small'><i>[get_component_name(i)]:</i> <b>[DisplayPower(get_component_cost(i))]</b> <i>([GLOB.clockwork_component_cache[i]] exist[GLOB.clockwork_component_cache[i] == 1 ? "s" : ""])</i></span>")
/obj/structure/destructible/clockwork/powered/tinkerers_daemon/forced_disable(bad_effects)
if(active)
@@ -80,7 +80,7 @@
if("Specific Component")
var/list/components = list()
for(var/i in GLOB.clockwork_component_cache)
components["[get_component_name(i)] ([get_component_cost(i)]W)"] = i
components["[get_component_name(i)] ([DisplayPower(get_component_cost(i))])"] = i
var/input_component = input(user, "Choose a component type.", name) as null|anything in components
component_id_to_produce = components[input_component]
servants = 0
+1 -1
View File
@@ -104,7 +104,7 @@
if(!GLOB.summon_spots.len)
while(GLOB.summon_spots.len < SUMMON_POSSIBILITIES)
var/area/summon = pick(GLOB.sortedAreas - GLOB.summon_spots)
if((summon.z == ZLEVEL_STATION) && summon.valid_territory)
if((summon.z in GLOB.station_z_levels) && summon.valid_territory)
GLOB.summon_spots += summon
cult_objectives += "eldergod"
+1 -1
View File
@@ -257,7 +257,7 @@ This file contains the arcane tome files.
to_chat(user, "<span class='cult'>There is already a rune here.</span>")
return FALSE
if(T.z != ZLEVEL_STATION && T.z != ZLEVEL_MINING)
if(!(T.z in GLOB.station_z_levels) && T.z != ZLEVEL_MINING)
to_chat(user, "<span class='warning'>The veil is not weak enough here.</span>")
return FALSE
+1 -1
View File
@@ -465,7 +465,7 @@ structure_check() searches for nearby cultist structures required for the invoca
/obj/effect/rune/narsie/invoke(var/list/invokers)
if(used)
return
if(z != ZLEVEL_STATION)
if(!(z in GLOB.station_z_levels))
return
if(locate(/obj/singularity/narsie) in GLOB.poi_list)
+72 -72
View File
@@ -1,80 +1,80 @@
/proc/power_failure()
priority_announce("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Critical Power Failure", 'sound/ai/poweroff.ogg')
for(var/obj/machinery/power/smes/S in GLOB.machines)
if(istype(get_area(S), /area/ai_monitored/turret_protected) || S.z != ZLEVEL_STATION)
continue
S.charge = 0
S.output_level = 0
S.output_attempt = 0
S.update_icon()
S.power_change()
var/list/skipped_areas = list(/area/engine/engineering, /area/engine/supermatter, /area/engine/atmospherics_engine, /area/ai_monitored/turret_protected/ai)
for(var/area/A in world)
if( !A.requires_power || A.always_unpowered )
continue
var/skip = 0
for(var/area_type in skipped_areas)
if(istype(A,area_type))
skip = 1
break
if(A.contents)
for(var/atom/AT in A.contents)
if(AT.z != ZLEVEL_STATION) //Only check one, it's enough.
skip = 1
break
if(skip) continue
/proc/power_failure()
priority_announce("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Critical Power Failure", 'sound/ai/poweroff.ogg')
for(var/obj/machinery/power/smes/S in GLOB.machines)
if(istype(get_area(S), /area/ai_monitored/turret_protected) || !(S.z in GLOB.station_z_levels))
continue
S.charge = 0
S.output_level = 0
S.output_attempt = 0
S.update_icon()
S.power_change()
var/list/skipped_areas = list(/area/engine/engineering, /area/engine/supermatter, /area/engine/atmospherics_engine, /area/ai_monitored/turret_protected/ai)
for(var/area/A in world)
if( !A.requires_power || A.always_unpowered )
continue
var/skip = 0
for(var/area_type in skipped_areas)
if(istype(A,area_type))
skip = 1
break
if(A.contents)
for(var/atom/AT in A.contents)
if(!(AT.z in GLOB.station_z_levels)) //Only check one, it's enough.
skip = 1
break
if(skip) continue
A.power_light = FALSE
A.power_equip = FALSE
A.power_environ = FALSE
A.power_change()
for(var/obj/machinery/power/apc/C in GLOB.apcs_list)
if(C.cell && C.z == ZLEVEL_STATION)
A.power_change()
for(var/obj/machinery/power/apc/C in GLOB.apcs_list)
if(C.cell && (C.z in GLOB.station_z_levels))
var/area/A = C.area
var/skip = 0
for(var/area_type in skipped_areas)
if(istype(A,area_type))
skip = 1
break
if(skip) continue
C.cell.charge = 0
/proc/power_restore()
priority_announce("Power has been restored to [station_name()]. We apologize for the inconvenience.", "Power Systems Nominal", 'sound/ai/poweron.ogg')
for(var/obj/machinery/power/apc/C in GLOB.machines)
if(C.cell && C.z == ZLEVEL_STATION)
C.cell.charge = C.cell.maxcharge
C.failure_timer = 0
for(var/obj/machinery/power/smes/S in GLOB.machines)
if(S.z != ZLEVEL_STATION)
continue
S.charge = S.capacity
S.output_level = S.output_level_max
S.output_attempt = 1
S.update_icon()
S.power_change()
for(var/area/A in world)
var/skip = 0
for(var/area_type in skipped_areas)
if(istype(A,area_type))
skip = 1
break
if(skip) continue
C.cell.charge = 0
/proc/power_restore()
priority_announce("Power has been restored to [station_name()]. We apologize for the inconvenience.", "Power Systems Nominal", 'sound/ai/poweron.ogg')
for(var/obj/machinery/power/apc/C in GLOB.machines)
if(C.cell && (C.z in GLOB.station_z_levels))
C.cell.charge = C.cell.maxcharge
C.failure_timer = 0
for(var/obj/machinery/power/smes/S in GLOB.machines)
if(!(S.z in GLOB.station_z_levels))
continue
S.charge = S.capacity
S.output_level = S.output_level_max
S.output_attempt = 1
S.update_icon()
S.power_change()
for(var/area/A in world)
if(!istype(A, /area/space) && !istype(A, /area/shuttle) && !istype(A, /area/arrival))
A.power_light = TRUE
A.power_equip = TRUE
A.power_environ = TRUE
A.power_change()
/proc/power_restore_quick()
priority_announce("All SMESs on [station_name()] have been recharged. We apologize for the inconvenience.", "Power Systems Nominal", 'sound/ai/poweron.ogg')
for(var/obj/machinery/power/smes/S in GLOB.machines)
if(S.z != ZLEVEL_STATION)
continue
S.charge = S.capacity
S.output_level = S.output_level_max
S.output_attempt = 1
S.update_icon()
S.power_change()
A.power_change()
/proc/power_restore_quick()
priority_announce("All SMESs on [station_name()] have been recharged. We apologize for the inconvenience.", "Power Systems Nominal", 'sound/ai/poweron.ogg')
for(var/obj/machinery/power/smes/S in GLOB.machines)
if(!(S.z in GLOB.station_z_levels))
continue
S.charge = S.capacity
S.output_level = S.output_level_max
S.output_attempt = 1
S.update_icon()
S.power_change()
File diff suppressed because it is too large Load Diff
@@ -232,7 +232,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
/datum/action/innate/ai/nuke_station/Activate()
var/turf/T = get_turf(owner)
if(!istype(T) || T.z != ZLEVEL_STATION)
if(!istype(T) || !(T.z in GLOB.station_z_levels))
to_chat(owner, "<span class='warning'>You cannot activate the doomsday device while off-station!</span>")
return
if(alert(owner, "Send arming signal? (true = arm, false = cancel)", "purge_all_life()", "confirm = TRUE;", "confirm = FALSE;") != "confirm = TRUE;")
@@ -355,7 +355,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
/obj/machinery/doomsday_device/process()
var/turf/T = get_turf(src)
if(!T || T.z != ZLEVEL_STATION)
if(!T || !(T.z in GLOB.station_z_levels))
minor_announce("DOOMSDAY DEVICE OUT OF STATION RANGE, ABORTING", "ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4", TRUE)
SSshuttle.clearHostileEnvironment(src)
qdel(src)
@@ -373,7 +373,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
milestones[key] = TRUE
minor_announce("[key] SECONDS UNTIL DOOMSDAY DEVICE ACTIVATION!", "ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4", TRUE)
/obj/machinery/doomsday_device/proc/detonate(z_level = ZLEVEL_STATION)
/obj/machinery/doomsday_device/proc/detonate(z_level = ZLEVEL_STATION_PRIMARY)
sound_to_playing_players('sound/machines/alarm.ogg')
sleep(100)
for(var/mob/living/L in GLOB.mob_list)
@@ -425,7 +425,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
/datum/action/innate/ai/lockdown/Activate()
for(var/obj/machinery/door/D in GLOB.airlocks)
if(D.z != ZLEVEL_STATION)
if(!(D.z in GLOB.station_z_levels))
continue
INVOKE_ASYNC(D, /obj/machinery/door.proc/hostile_lockdown, src)
addtimer(CALLBACK(D, /obj/machinery/door.proc/disable_lockdown), 900)
@@ -503,7 +503,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
/datum/action/innate/ai/break_fire_alarms/Activate()
for(var/obj/machinery/firealarm/F in GLOB.machines)
if(F.z != ZLEVEL_STATION)
if(!(F.z in GLOB.station_z_levels))
continue
F.emagged = TRUE
to_chat(owner, "<span class='notice'>All thermal sensors on the station have been disabled. Fire alerts will no longer be recognized.</span>")
@@ -530,7 +530,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
/datum/action/innate/ai/break_air_alarms/Activate()
for(var/obj/machinery/airalarm/AA in GLOB.machines)
if(AA.z != ZLEVEL_STATION)
if(!(AA.z in GLOB.station_z_levels))
continue
AA.emagged = TRUE
to_chat(owner, "<span class='notice'>All air alarm safeties on the station have been overriden. Air alarms may now use the Flood environmental mode.</span>")
+4 -4
View File
@@ -31,15 +31,15 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event
var/max_i = 10//number of tries to spawn meteor.
while(!isspaceturf(pickedstart))
var/startSide = pick(GLOB.cardinals)
pickedstart = spaceDebrisStartLoc(startSide, ZLEVEL_STATION)
pickedgoal = spaceDebrisFinishLoc(startSide, ZLEVEL_STATION)
pickedstart = spaceDebrisStartLoc(startSide, ZLEVEL_STATION_PRIMARY)
pickedgoal = spaceDebrisFinishLoc(startSide, ZLEVEL_STATION_PRIMARY)
max_i--
if(max_i<=0)
return
var/Me = pickweight(meteortypes)
var/obj/effect/meteor/M = new Me(pickedstart)
M.dest = pickedgoal
M.z_original = ZLEVEL_STATION
M.z_original = ZLEVEL_STATION_PRIMARY
spawn(0)
walk_towards(M, M.dest, 1)
@@ -96,7 +96,7 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event
pass_flags = PASSTABLE
var/heavy = 0
var/meteorsound = 'sound/effects/meteorimpact.ogg'
var/z_original = ZLEVEL_STATION
var/z_original = ZLEVEL_STATION_PRIMARY
var/threat = 0 // used for determining which meteors are most interesting
var/lifetime = DEFAULT_METEOR_LIFETIME
@@ -9,7 +9,7 @@
var/datum/action/innate/vest_disguise_swap/vest_disguise_action = new
var/datum/action/innate/set_droppoint/set_droppoint_action = new
var/obj/machinery/abductor/console/console
z_lock = ZLEVEL_STATION
z_lock = ZLEVEL_STATION_PRIMARY
icon = 'icons/obj/abductor.dmi'
icon_state = "camera"
@@ -26,7 +26,7 @@
for(var/obj/machinery/atmospherics/components/unary/vent_pump/temp_vent in GLOB.machines)
if(QDELETED(temp_vent))
continue
if(temp_vent.loc.z == ZLEVEL_STATION && !temp_vent.welded)
if(temp_vent.loc.z == ZLEVEL_STATION_PRIMARY && !temp_vent.welded)
var/datum/pipeline/temp_vent_parent = temp_vent.PARENT1
if(temp_vent_parent.other_atmosmch.len > 20)
vents += temp_vent
@@ -458,7 +458,7 @@
if(target == src)
return
if(z != ZLEVEL_STATION && z != ZLEVEL_LAVALAND)
if(!(z in GLOB.station_z_levels) && z != ZLEVEL_LAVALAND)
to_chat(src, "<span class='warning'>Our bluespace transceiver cannot locate a viable bluespace link, our teleportation abilities are useless in this area.</span>")
return
@@ -469,8 +469,8 @@
var/turf/open/floor/F
switch(z) //Only the station/lavaland
if(ZLEVEL_STATION)
F =find_safe_turf(zlevels = ZLEVEL_STATION, extended_safety_checks = TRUE)
if(ZLEVEL_STATION_PRIMARY)
F =find_safe_turf(zlevels = ZLEVEL_STATION_PRIMARY, extended_safety_checks = TRUE)
if(ZLEVEL_LAVALAND)
F = find_safe_turf(zlevels = ZLEVEL_LAVALAND, extended_safety_checks = TRUE)
if(!F)
+1 -1
View File
@@ -435,7 +435,7 @@
var/off_station = 0
var/turf/bomb_location = get_turf(src)
var/area/A = get_area(bomb_location)
if(bomb_location && (bomb_location.z == ZLEVEL_STATION))
if(bomb_location && (bomb_location.z in GLOB.station_z_levels))
if(istype(A, /area/space))
off_station = NUKE_MISS_STATION
if((bomb_location.x < (128-NUKERANGE)) || (bomb_location.x > (128+NUKERANGE)) || (bomb_location.y < (128-NUKERANGE)) || (bomb_location.y > (128+NUKERANGE)))
+1 -1
View File
@@ -126,7 +126,7 @@
if(target.current.stat == DEAD || !ishuman(target.current) || !target.current.ckey)
return 1
var/turf/T = get_turf(target.current)
if(T && (T.z > ZLEVEL_STATION) || (target.current.client && target.current.client.is_afk())) //If they leave the station or go afk they count as dead for this
if(T && (!(T.z in GLOB.station_z_levels)) || (target.current.client && target.current.client.is_afk())) //If they leave the station or go afk they count as dead for this
return 2
return 0
return 1
+1 -1
View File
@@ -335,7 +335,7 @@
/datum/game_mode/revolution/proc/check_heads_victory()
for(var/datum/mind/rev_mind in head_revolutionaries)
var/turf/T = get_turf(rev_mind.current)
if((rev_mind) && (rev_mind.current) && (rev_mind.current.stat != DEAD) && T && (T.z == ZLEVEL_STATION))
if((rev_mind) && (rev_mind.current) && (rev_mind.current.stat != DEAD) && T && (T.z in GLOB.station_z_levels))
if(ishuman(rev_mind.current))
return 0
return 1
+1 -1
View File
@@ -47,7 +47,7 @@
GLOB.cameranet.addCamera(src)
proximity_monitor = new(src, 1)
if(mapload && z == ZLEVEL_STATION && prob(3) && !start_active)
if(mapload && (z in GLOB.station_z_levels) && prob(3) && !start_active)
toggle_cam()
/obj/machinery/camera/Destroy()
+1 -1
View File
@@ -66,7 +66,7 @@
if(filters["Responsive"] && !APC.aidisabled)
continue
dat += "<a href='?src=\ref[src];access_apc=\ref[APC]'>[A]</a><br>\
<b>Charge:</b> [APC.cell.charge] / [APC.cell.maxcharge] W ([round((APC.cell.charge / APC.cell.maxcharge) * 100)]%)<br>\
<b>Charge:</b> [DisplayPower(APC.cell.charge)] / [DisplayPower(APC.cell.maxcharge)] ([round((APC.cell.charge / APC.cell.maxcharge) * 100)]%)<br>\
<b>Area:</b> [APC.area]<br>\
[APC.aidisabled || APC.panel_open ? "<font color='#FF0000'>APC does not respond to interface query.</font>" : "<font color='#00FF00'>APC responds to interface query.</font>"]<br><br>"
dat += "<a href='?src=\ref[src];check_logs=1'>Check Logs</a><br>"
+42 -38
View File
@@ -414,8 +414,8 @@
if(gameStatus == ORION_STATUS_GAMEOVER)
dat = "<center><h1>Game Over</h1></center>"
dat += "Like many before you, your crew never made it to Orion, lost to space... <br><b>Forever</b>."
if(settlers.len == 0)
dat += "<br>Your entire crew died, your ship joins the fleet of ghost-ships littering the galaxy."
if(!settlers.len)
dat += "<br>Your entire crew died, and your ship joins the fleet of ghost-ships littering the galaxy."
else
if(food <= 0)
dat += "<br>You ran out of food and starved."
@@ -429,7 +429,6 @@
M.adjust_fire_stacks(5)
M.IgniteMob() //flew into a star, so you're on fire
to_chat(user, "<span class='userdanger'><font size=3>You feel an immense wave of heat emanate from the arcade machine. Your skin bursts into flames.</span>")
dat += "<br><P ALIGN=Right><a href='byond://?src=\ref[src];menu=1'>OK...</a></P>"
if(emagged)
to_chat(user, "<span class='userdanger'><font size=3>You're never going to make it to Orion...</span></font>")
@@ -439,6 +438,7 @@
name = "The Orion Trail"
desc = "Learn how our ancestors got to Orion, and have fun in the process!"
dat += "<P ALIGN=Right><a href='byond://?src=\ref[src];menu=1'>May They Rest In Peace</a></P>"
else if(event)
dat = eventdat
else if(gameStatus == ORION_STATUS_NORMAL)
@@ -454,7 +454,7 @@
dat += "<P ALIGN=Right><a href='byond://?src=\ref[src];pastblack=1'>Go Around</a> <a href='byond://?src=\ref[src];blackhole=1'>Continue</a></P>"
else
dat += "<P ALIGN=Right><a href='byond://?src=\ref[src];continue=1'>Continue</a></P>"
dat += "<P ALIGN=Right><a href='byond://?src=\ref[src];killcrew=1'>Kill a crewmember</a></P>"
dat += "<P ALIGN=Right><a href='byond://?src=\ref[src];killcrew=1'>Kill a Crewmember</a></P>"
dat += "<P ALIGN=Right><a href='byond://?src=\ref[src];close=1'>Close</a></P>"
else
dat = "<center><h2>The Orion Trail</h2></center>"
@@ -609,17 +609,15 @@
if(prob(75))
event = ORION_TRAIL_BLACKHOLE
event()
if(emagged) //has to be here because otherwise it doesn't work
if(emagged)
playsound(loc, 'sound/effects/supermatter.ogg', 100, 1)
say("A miniature black hole suddenly appears in front of [src], devouring [usr] alive!")
if(isliving(usr))
var/mob/living/L = usr
L.Stun(200, ignore_canstun = TRUE) //you can't run :^)
var/S = new /obj/singularity/academy(usr.loc)
emagged = FALSE //immediately removes emagged status so people can't kill themselves by sprinting up and interacting
sleep(50)
say("[S] winks out, just as suddenly as it appeared.")
qdel(S)
addtimer(CALLBACK(src, /atom/movable/proc/say, "[S] winks out, just as suddenly as it appeared."), 50)
QDEL_IN(src, 50)
else
event = null
turns += 1
@@ -691,19 +689,20 @@
if(prob(success))
FU = rand(5,15)
FO = rand(5,15)
last_spaceport_action = "You successfully raided the spaceport! you gained [FU] Fuel and [FO] Food! (+[FU]FU,+[FO]FO)"
last_spaceport_action = "You successfully raided the spaceport! You gained [FU] Fuel and [FO] Food! (+[FU]FU,+[FO]FO)"
else
FU = rand(-5,-15)
FO = rand(-5,-15)
last_spaceport_action = "You failed to raid the spaceport! you lost [FU*-1] Fuel and [FO*-1] Food in your scramble to escape! ([FU]FU,[FO]FO)"
last_spaceport_action = "You failed to raid the spaceport! You lost [FU*-1] Fuel and [FO*-1] Food in your scramble to escape! ([FU]FU,[FO]FO)"
//your chance of lose a crewmember is 1/2 your chance of success
//this makes higher % failures hurt more, don't get cocky space cowboy!
if(prob(success*5))
var/lost_crew = remove_crewmember()
last_spaceport_action = "You failed to raid the spaceport! you lost [FU*-1] Fuel and [FO*-1] Food, AND [lost_crew] in your scramble to escape! ([FU]FI,[FO]FO,-Crew)"
last_spaceport_action = "You failed to raid the spaceport! You lost [FU*-1] Fuel and [FO*-1] Food, AND [lost_crew] in your scramble to escape! ([FU]FI,[FO]FO,-Crew)"
if(emagged)
say("WEEWOO WEEWOO, Spaceport Security en route!")
say("WEEWOO! WEEWOO! Spaceport security en route!")
playsound(src, 'sound/items/weeoo1.ogg', 100, FALSE)
for(var/i, i<=3, i++)
var/mob/living/simple_animal/hostile/syndicate/ranged/orion/O = new/mob/living/simple_animal/hostile/syndicate/ranged/orion(get_turf(src))
O.target = usr
@@ -766,9 +765,9 @@
eventdat += "<br>They have stolen [sfood] <b>Food</b> and [sfuel] <b>Fuel</b>."
else if(prob(10))
var/deadname = remove_crewmember()
eventdat += "<br>[deadname] tried to fight back but was killed."
eventdat += "<br>[deadname] tried to fight back, but was killed."
else
eventdat += "<br>Fortunately you fended them off without any trouble."
eventdat += "<br>Fortunately, you fended them off without any trouble."
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];eventclose=1'>Continue</a></P>"
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];close=1'>Close</a></P>"
canContinueEvent = 1
@@ -844,7 +843,7 @@
else if(prob(70))
lings_aboard = min(++lings_aboard,2)
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];killcrew=1'>Kill a crewmember</a></P>"
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];killcrew=1'>Kill a Crewmember</a></P>"
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];eventclose=1'>Risk it</a></P>"
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];close=1'>Close</a></P>"
canContinueEvent = 1
@@ -859,7 +858,7 @@
if(lings_aboard >= 2)
ling2 = remove_crewmember()
eventdat += "Oh no, some of your crew are Changelings!"
eventdat += "Changelings among your crew suddenly burst from hiding and attack!"
if(ling2)
eventdat += "<br>[ling1] and [ling2]'s arms twist and contort into grotesque blades!"
else
@@ -870,18 +869,23 @@
var/chancetokill = 30*lings_aboard-(5*alive) //eg: 30*2-(10) = 50%, 2 lings, 2 crew is 50% chance
if(prob(chancetokill))
var/deadguy = remove_crewmember()
eventdat += "<br>The Changeling[ling2 ? "s":""] run[ling2 ? "":"s"] up to [deadguy] and capitulates them!"
var/murder_text = pick("The changeling[ling2 ? "s" : ""] bring[ling2 ? "" : "s"] down [deadguy] and disembowel[ling2 ? "" : "s"] them in a spray of gore!", \
"[ling2 ? pick(ling1, ling2) : ling1] corners [deadguy] and impales them through the stomach!", \
"[ling2 ? pick(ling1, ling2) : ling1] decapitates [deadguy] in a single cleaving arc!")
eventdat += "<br>[murder_text]"
else
eventdat += "<br>You valiantly fight off the Changeling[ling2 ? "s":""]!"
eventdat += "<br>You cut the Changeling[ling2 ? "s":""] up into meat... Eww"
eventdat += "<br><br><b>You valiantly fight off the changeling[ling2 ? "s":""]!</b>"
if(ling2)
food += 30
lings_aboard = max(0,lings_aboard-2)
else
food += 15
lings_aboard = max(0,--lings_aboard)
eventdat += "<br><i>Well, it's perfectly good food...</i>\
<br>You cut the changeling[ling2 ? "s" : ""] into meat, gaining <b>[ling2 ? "30" : "15"]</b> Food!"
else
eventdat += "<br>The Changeling[ling2 ? "s":""] run[ling2 ? "":"s"] away, What wimps!"
eventdat += "<br><br>[pick("Sensing unfavorable odds", "After a failed attack", "Suddenly breaking nerve")], \
the changeling[ling2 ? "s":""] vanish[ling2 ? "" : "es"] into space through the airlocks! You're safe... for now."
if(ling2)
lings_aboard = max(0,lings_aboard-2)
else
@@ -895,17 +899,17 @@
if(ORION_TRAIL_SPACEPORT)
gameStatus = ORION_STATUS_MARKET
if(spaceport_raided)
eventdat += "The Spaceport is on high alert! They won't let you dock since you tried to attack them!"
eventdat += "The spaceport is on high alert! You've been barred from docking by the local authorities after your failed raid."
if(last_spaceport_action)
eventdat += "<br>Last Spaceport Action: [last_spaceport_action]"
eventdat += "<br><b>Last Spaceport Action:</b> [last_spaceport_action]"
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];leave_spaceport=1'>Depart Spaceport</a></P>"
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];close=1'>Close</a></P>"
else
eventdat += "You pull the ship up to dock at a nearby Spaceport, lucky find!"
eventdat += "<br>This Spaceport is home to travellers who failed to reach Orion, but managed to find a different home..."
eventdat += "Your jump into the sector yields a spaceport - a lucky find!"
eventdat += "<br>This spaceport is home to travellers who failed to reach Orion, but managed to find a different home..."
eventdat += "<br>Trading terms: FU = Fuel, FO = Food"
if(last_spaceport_action)
eventdat += "<br>Last Spaceport Action: [last_spaceport_action]"
eventdat += "<br><b>Last action:</b> [last_spaceport_action]"
eventdat += "<h3><b>Crew:</b></h3>"
eventdat += english_list(settlers)
eventdat += "<br><b>Food: </b>[food] | <b>Fuel: </b>[fuel]"
@@ -926,7 +930,7 @@
add_crewmember()
freecrew++
eventdat += "<br>The traders of the spaceport take pitty on you, and give you some food and fuel (+[FU]FU,+[FO]FO)"
eventdat += "<br>The traders of the spaceport take pity on you, and generously give you some free supplies! (+[FU]FU, +[FO]FO)"
if(freecrew)
eventdat += "<br>You also gain a new crewmember!"
@@ -938,15 +942,15 @@
//Buy crew
if(food >= 10 && fuel >= 10)
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];buycrew=1'>Hire a new Crewmember (-10FU,-10FO)</a></P>"
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];buycrew=1'>Hire a New Crewmember (-10FU, -10FO)</a></P>"
else
eventdat += "<P ALIGN=Right>Cant afford a new Crewmember</P>"
eventdat += "<P ALIGN=Right>You cannot afford a new crewmember.</P>"
//Sell crew
if(settlers.len > 1)
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];sellcrew=1'>Sell crew for Fuel and Food (+7FU,+7FO)</a></P>"
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];sellcrew=1'>Sell Crew for Fuel and Food (+7FU, +7FO)</a></P>"
else
eventdat += "<P ALIGN=Right>Cant afford to sell a Crewmember</P>"
eventdat += "<P ALIGN=Right>You have no other crew to sell.</P>"
//BUY/SELL STUFF
eventdat += "<P ALIGN=Right>Spare Parts:</P>"
@@ -955,30 +959,30 @@
if(fuel > 5)
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];buyparts=1'>Buy Engine Parts (-5FU)</a></P>"
else
eventdat += "<P ALIGN=Right>Cant afford to buy Engine Parts</a>"
eventdat += "<P ALIGN=Right>You cannot afford engine parts.</a>"
//Hull plates
if(fuel > 5)
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];buyparts=2'>Buy Hull Plates (-5FU)</a></P>"
else
eventdat += "<P ALIGN=Right>Cant afford to buy Hull Plates</a>"
eventdat += "<P ALIGN=Right>You cannot afford hull plates.</a>"
//Electronics
if(fuel > 5)
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];buyparts=3'>Buy Spare Electronics (-5FU)</a></P>"
else
eventdat += "<P ALIGN=Right>Cant afford to buy Spare Electronics</a>"
eventdat += "<P ALIGN=Right>You cannot afford spare electronics.</a>"
//Trade
if(fuel > 5)
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];trade=1'>Trade Fuel for Food (-5FU,+5FO)</a></P>"
else
eventdat += "<P ALIGN=Right>Cant afford to Trade Fuel for Food</P"
eventdat += "<P ALIGN=Right>You don't have 5FU to trade.</P"
if(food > 5)
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];trade=2'>Trade Food for Fuel (+5FU,-5FO)</a></P>"
else
eventdat += "<P ALIGN=Right>Cant afford to Trade Food for Fuel</P"
eventdat += "<P ALIGN=Right>You don't have 5FO to trade.</P"
//Raid the spaceport
eventdat += "<P ALIGN=Right><a href='byond://?src=\ref[src];raid_spaceport=1'>!! Raid Spaceport !!</a></P>"
@@ -1044,8 +1048,8 @@
emagged = TRUE
/mob/living/simple_animal/hostile/syndicate/ranged/orion
name = "Spaceport Security"
desc = "The Premier security forces for all spaceports found along the Orion Trail."
name = "spaceport security"
desc = "Premier corporate security forces for all spaceports found along the Orion Trail."
faction = list("orion")
loot = list()
del_on_death = TRUE
@@ -54,7 +54,7 @@
/obj/machinery/computer/communications/Topic(href, href_list)
if(..())
return
if (z != ZLEVEL_STATION && z != ZLEVEL_CENTCOM) //Can only use on centcom and SS13
if(!(z in GLOB.station_z_levels) && z != ZLEVEL_CENTCOM) //Can only use on centcom and SS13
to_chat(usr, "<span class='boldannounce'>Unable to establish a connection</span>: \black You're too far away from the station!")
return
usr.set_machine(src)
@@ -1,7 +1,7 @@
/obj/machinery/computer/shuttle/monastery_shuttle
name = "monastery shuttle console"
desc = "Used to control the monastery shuttle."
circuit = /obj/item/circuitboard/computer/shuttle/monastery_shuttle
circuit = /obj/item/circuitboard/computer/monastery_shuttle
shuttleId = "pod1"
possible_destinations = "monastery_shuttle_asteroid;monastery_shuttle_station"
no_destination_swap = TRUE
+1 -1
View File
@@ -56,7 +56,7 @@
var/loc_display = "Unknown"
var/mob/living/M = T.imp_in
if(Tr.z == ZLEVEL_STATION && !isspaceturf(M.loc))
if((Tr.z in GLOB.station_z_levels) && !isspaceturf(M.loc))
var/turf/mob_loc = get_turf(M)
loc_display = mob_loc.loc
+2 -2
View File
@@ -61,7 +61,7 @@
if(stat & NOPOWER)
return
if(src.z == ZLEVEL_STATION)
if(src.z in GLOB.station_z_levels)
add_overlay("overlay_[GLOB.security_level]")
else
//var/green = SEC_LEVEL_GREEN
@@ -121,7 +121,7 @@
var/list/data = list()
data["emagged"] = emagged
if(src.z == ZLEVEL_STATION)
if(src.z in GLOB.station_z_levels)
data["seclevel"] = get_security_level()
else
data["seclevel"] = "green"
+1 -1
View File
@@ -107,7 +107,7 @@
var/line1
var/line2
if(SSshuttle.supply.mode == SHUTTLE_IDLE)
if(SSshuttle.supply.z == ZLEVEL_STATION)
if(SSshuttle.supply.z in GLOB.station_z_levels)
line1 = "CARGO"
line2 = "Docked"
else
@@ -106,7 +106,7 @@
// Off-Site Relays
//
// You are able to send/receive signals from the station's z level (changeable in the ZLEVEL_STATION #define) if
// You are able to send/receive signals from the station's z level (changeable in the ZLEVEL_STATION_PRIMARY #define) if
/obj/machinery/telecomms/relay/proc/toggle_level()
@@ -114,7 +114,7 @@
var/turf/position = get_turf(src)
// Toggle on/off getting signals from the station or the current Z level
if(listening_level == ZLEVEL_STATION) // equals the station
if(listening_level in GLOB.station_z_levels) // equals the station
listening_level = position.z
return TRUE
return FALSE
+2 -2
View File
@@ -1158,8 +1158,8 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
/obj/item/clothing/suit/syndicatefake = 5,
/obj/item/clothing/head/syndicatefake = 5) //OPS IN DORMS oh wait it's just a assistant
contraband = list(/obj/item/gun/ballistic/shotgun/toy/crossbow = 10, //Congrats, you unlocked the +18 setting!
/obj/item/gun/ballistic/automatic/c20r/toy/riot/unrestricted = 10,
/obj/item/gun/ballistic/automatic/l6_saw/toy/riot/unrestricted = 10,
/obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot = 10,
/obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted/riot = 10,
/obj/item/ammo_box/foambox/riot = 20,
/obj/item/toy/katana = 10,
/obj/item/twohanded/dualsaber/toy = 5,
@@ -257,22 +257,6 @@
build_path = /obj/machinery/computer/telecomms/server
origin_tech = "programming=3;magnets=3;bluespace=2"
/obj/item/circuitboard/computer/shuttle
name = "Shuttle (Computer Board)"
build_path = /obj/machinery/computer/shuttle
var/shuttleId
var/possible_destinations = ""
/obj/item/circuitboard/computer/shuttle/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/device/multitool))
var/chosen_id = round(input(usr, "Choose an ID number (-1 for reset):", "Input an Integer", null) as num|null)
if(chosen_id >= 0)
shuttleId = chosen_id
else
shuttleId = initial(shuttleId)
else
return ..()
/obj/item/circuitboard/computer/labor_shuttle
name = "Labor Shuttle (Computer Board)"
build_path = /obj/machinery/computer/shuttle/labor
@@ -339,7 +323,7 @@
build_path = /obj/machinery/computer/apc_control
origin_tech = "programming=3;engineering=3;powerstorage=2"
/obj/item/circuitboard/computer/shuttle/monastery_shuttle
/obj/item/circuitboard/computer/monastery_shuttle
name = "Monastery Shuttle (Computer Board)"
build_path = /obj/machinery/computer/shuttle/monastery_shuttle
+4 -4
View File
@@ -302,7 +302,7 @@ Code:
var/obj/machinery/power/apc/A = term.master
L += A
menu += "<PRE>Total power: [powmonitor.attached.powernet.viewavail] W<BR>Total load: [num2text(powmonitor.attached.powernet.viewload,10)] W<BR>"
menu += "<PRE>Total power: [DisplayPower(powmonitor.attached.powernet.viewavail)]<BR>Total load: [DisplayPower(powmonitor.attached.powernet.viewload)]<BR>"
menu += "<FONT SIZE=-1>"
@@ -314,7 +314,7 @@ Code:
for(var/obj/machinery/power/apc/A in L)
menu += copytext(add_tspace(A.area.name, 30), 1, 30)
menu += " [S[A.equipment+1]] [S[A.lighting+1]] [S[A.environ+1]] [add_lspace(A.lastused_total, 6)] [A.cell ? "[add_lspace(round(A.cell.percent()), 3)]% [chg[A.charging+1]]" : " N/C"]<BR>"
menu += " [S[A.equipment+1]] [S[A.lighting+1]] [S[A.environ+1]] [add_lspace(DisplayPower(A.lastused_total), 6)] [A.cell ? "[add_lspace(round(A.cell.percent()), 3)]% [chg[A.charging+1]]" : " N/C"]<BR>"
menu += "</FONT></PRE>"
@@ -437,14 +437,14 @@ Code:
switch(SSshuttle.supply.mode)
if(SHUTTLE_CALL)
menu += "Moving to "
if(SSshuttle.supply.z != ZLEVEL_STATION)
if(!(SSshuttle.supply.z in GLOB.station_z_levels))
menu += "station"
else
menu += "centcom"
menu += " ([SSshuttle.supply.timeLeft(600)] Mins)"
else
menu += "At "
if(SSshuttle.supply.z != ZLEVEL_STATION)
if(!(SSshuttle.supply.z in GLOB.station_z_levels))
menu += "centcom"
else
menu += "station"
+1 -1
View File
@@ -157,7 +157,7 @@
/obj/item/inducer/examine(mob/living/M)
..()
if(cell)
to_chat(M, "<span class='notice'>It's display shows: [cell.charge]W</span>")
to_chat(M, "<span class='notice'>It's display shows: [DisplayPower(cell.charge)]</span>")
else
to_chat(M,"<span class='notice'>It's display is dark.</span>")
if(opened)
@@ -147,8 +147,11 @@
sleep(OPEN_DURATION + 2)
pod_moving = 0
if(!QDELETED(pod))
var/datum/gas_mixture/floor_mixture = loc.return_air()
floor_mixture.archive()
pod.air_contents.archive()
pod.air_contents.share(loc.return_air(), 1) //mix the pod's gas mixture with the tile it's on
pod.air_contents.share(floor_mixture, 1) //mix the pod's gas mixture with the tile it's on
air_update_turf()
/obj/structure/transit_tube/station/init_tube_dirs()
switch(dir)
@@ -9,9 +9,9 @@
var/datum/gas_mixture/air_contents = new()
/obj/structure/transit_tube_pod/New(loc)
..()
air_contents.assert_gases("o2", "n2")
/obj/structure/transit_tube_pod/Initialize()
. = ..()
air_contents.add_gases("o2", "n2")
air_contents.gases["o2"][MOLES] = MOLES_O2STANDARD
air_contents.gases["n2"][MOLES] = MOLES_N2STANDARD
air_contents.temperature = T20C
+1 -3
View File
@@ -6,13 +6,11 @@
* Engine floor
* Foam plating
*/
// note that plating and engine floor do not call their parent attackby, unlike other flooring
// this is done in order to avoid inheriting the crowbar attackby
/turf/open/floor/plating
name = "plating"
icon_state = "plating"
intact = 0
intact = FALSE
/turf/open/floor/plating/Initialize()
if (!broken_states)
@@ -35,6 +35,8 @@
return
/turf/open/floor/plating/asteroid/attackby(obj/item/W, mob/user, params)
if(..())
return TRUE
if(istype(W, /obj/item/storage/bag/ore))
var/obj/item/storage/bag/ore/S = W
if(S.collection_mode == 1)
@@ -62,6 +64,10 @@
return ..()
ChangeTurf(/turf/open/space)
/turf/open/floor/plating/asteroid/ex_act(severity, target)
. = SendSignal(COMSIG_ATOM_EX_ACT, severity, target)
contents_explosion(severity, target)
/turf/open/floor/plating/asteroid/basalt
name = "volcanic floor"
+1 -1
View File
@@ -622,7 +622,7 @@
if(3)
var/count = 0
for(var/mob/living/carbon/monkey/Monkey in world)
if(Monkey.z == ZLEVEL_STATION)
if(Monkey.z in GLOB.station_z_levels)
count++
return "Kill all [count] of the monkeys on the station"
if(4)
+1 -1
View File
@@ -456,7 +456,7 @@
return
SSblackbox.add_details("admin_secrets_fun_used","Egalitarian Station")
for(var/obj/machinery/door/airlock/W in GLOB.machines)
if(W.z == ZLEVEL_STATION && !istype(get_area(W), /area/bridge) && !istype(get_area(W), /area/crew_quarters) && !istype(get_area(W), /area/security/prison))
if((W.z in GLOB.station_z_levels) && !istype(get_area(W), /area/bridge) && !istype(get_area(W), /area/crew_quarters) && !istype(get_area(W), /area/security/prison))
W.req_access = list()
message_admins("[key_name_admin(usr)] activated Egalitarian Station mode")
priority_announce("CentCom airlock control override activated. Please take this time to get acquainted with your coworkers.", null, 'sound/ai/commandreport.ogg')
+1 -1
View File
@@ -509,7 +509,7 @@ GLOBAL_PROTECT(AdminProcCallCount)
for(var/area/A in world)
if(on_station)
var/turf/picked = safepick(get_area_turfs(A.type))
if(picked && (picked.z == ZLEVEL_STATION))
if(picked && (picked.z in GLOB.station_z_levels))
if(!(A.type in areas_all) && !is_type_in_typecache(A, station_areas_blacklist))
areas_all.Add(A.type)
else if(!(A.type in areas_all))
+5 -5
View File
@@ -79,7 +79,7 @@
for(var/mob/living/carbon/human/applicant in GLOB.player_list)
if(ROLE_CHANGELING in applicant.client.prefs.be_special)
var/turf/T = get_turf(applicant)
if(applicant.stat == CONSCIOUS && applicant.mind && !applicant.mind.special_role && T.z == ZLEVEL_STATION)
if(applicant.stat == CONSCIOUS && applicant.mind && !applicant.mind.special_role && (T.z in GLOB.station_z_levels))
if(!jobban_isbanned(applicant, ROLE_CHANGELING) && !jobban_isbanned(applicant, "Syndicate"))
if(temp.age_check(applicant.client))
if(!(applicant.job in temp.restricted_jobs))
@@ -112,7 +112,7 @@
for(var/mob/living/carbon/human/applicant in GLOB.player_list)
if(ROLE_REV in applicant.client.prefs.be_special)
var/turf/T = get_turf(applicant)
if(applicant.stat == CONSCIOUS && applicant.mind && !applicant.mind.special_role && T.z == ZLEVEL_STATION)
if(applicant.stat == CONSCIOUS && applicant.mind && !applicant.mind.special_role && (T.z in GLOB.station_z_levels))
if(!jobban_isbanned(applicant, ROLE_REV) && !jobban_isbanned(applicant, "Syndicate"))
if(temp.age_check(applicant.client))
if(!(applicant.job in temp.restricted_jobs))
@@ -154,7 +154,7 @@
for(var/mob/living/carbon/human/applicant in GLOB.player_list)
if(ROLE_CULTIST in applicant.client.prefs.be_special)
var/turf/T = get_turf(applicant)
if(applicant.stat == CONSCIOUS && applicant.mind && !applicant.mind.special_role && T.z == ZLEVEL_STATION)
if(applicant.stat == CONSCIOUS && applicant.mind && !applicant.mind.special_role && (T.z in GLOB.station_z_levels))
if(!jobban_isbanned(applicant, ROLE_CULTIST) && !jobban_isbanned(applicant, "Syndicate"))
if(temp.age_check(applicant.client))
if(!(applicant.job in temp.restricted_jobs))
@@ -187,7 +187,7 @@
for(var/mob/living/carbon/human/applicant in GLOB.player_list)
if(ROLE_SERVANT_OF_RATVAR in applicant.client.prefs.be_special)
var/turf/T = get_turf(applicant)
if(applicant.stat == CONSCIOUS && applicant.mind && !applicant.mind.special_role && T.z == ZLEVEL_STATION)
if(applicant.stat == CONSCIOUS && applicant.mind && !applicant.mind.special_role && (T.z in GLOB.station_z_levels))
if(!jobban_isbanned(applicant, ROLE_SERVANT_OF_RATVAR) && !jobban_isbanned(applicant, "Syndicate"))
if(temp.age_check(applicant.client))
if(!(applicant.job in temp.restricted_jobs))
@@ -356,7 +356,7 @@
return 0
return
/datum/admins/proc/makeOfficial()
var/mission = input("Assign a task for the official", "Assign Task", "Conduct a routine preformance review of [station_name()] and its Captain.")
var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered to be a CentCom Official?", "deathsquad")
+2 -1
View File
@@ -5,11 +5,12 @@
anchored = TRUE
density = TRUE
var/question = "Travel back?"
var/zlevels = list(ZLEVEL_STATION)
var/list/zlevels = list()
/obj/structure/signpost/New()
. = ..()
set_light(2)
zlevels = GLOB.station_z_levels
/obj/structure/signpost/attackby(obj/item/W, mob/user, params)
return attack_hand(user)
+1 -1
View File
@@ -40,7 +40,7 @@
for(var/obj/machinery/atmospherics/components/unary/vent_pump/temp_vent in GLOB.machines)
if(QDELETED(temp_vent))
continue
if(temp_vent.loc.z == ZLEVEL_STATION && !temp_vent.welded)
if((temp_vent.loc.z in GLOB.station_z_levels) && !temp_vent.welded)
var/datum/pipeline/temp_vent_parent = temp_vent.PARENT1
//Stops Aliens getting stuck in small networks.
//See: Security, Virology

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