Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13
This commit is contained in:
@@ -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" = (
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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
|
||||
"}
|
||||
"}
|
||||
@@ -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
|
||||
"}
|
||||
"}
|
||||
@@ -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
|
||||
"}
|
||||
"}
|
||||
@@ -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
|
||||
"}
|
||||
"}
|
||||
@@ -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
|
||||
"}
|
||||
"}
|
||||
+231
-215
File diff suppressed because it is too large
Load Diff
+561
-243
@@ -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
|
||||
"}
|
||||
@@ -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
|
||||
"}
|
||||
"}
|
||||
@@ -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
|
||||
"}
|
||||
"}
|
||||
@@ -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
|
||||
"}
|
||||
"}
|
||||
@@ -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
|
||||
"}
|
||||
"}
|
||||
@@ -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
|
||||
"}
|
||||
"}
|
||||
@@ -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,
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
id = "ferry";
|
||||
name = "ferry shuttle";
|
||||
roundstart_move = "ferry_away";
|
||||
port_angle = 180;
|
||||
port_direction = 2;
|
||||
width = 5;
|
||||
timid = 1
|
||||
},
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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]")
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
@@ -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>"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
+560
-592
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>")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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>"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user