From 77330ccd1f9687fda2ad74b7bc947f00796a2540 Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Wed, 27 Jan 2016 23:17:55 -0600 Subject: [PATCH 1/4] Shuttle Launch --- .../MetaStation/MetaStation.v41I.dmm | 8 +++---- _maps/map_files/TgStation/tgstation.2.1.3.dmm | 2 +- code/__DEFINES/misc.dm | 6 ++++++ .../subsystem/shuttles/emergency.dm | 21 ++++++++++--------- code/modules/shuttle/shuttle.dm | 7 ++++++- 5 files changed, 28 insertions(+), 16 deletions(-) diff --git a/_maps/map_files/MetaStation/MetaStation.v41I.dmm b/_maps/map_files/MetaStation/MetaStation.v41I.dmm index 608d532d754..4e761307eae 100644 --- a/_maps/map_files/MetaStation/MetaStation.v41I.dmm +++ b/_maps/map_files/MetaStation/MetaStation.v41I.dmm @@ -5586,7 +5586,7 @@ "cdv" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "O2 to Airmix"; on = 1},/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bluefull"},/area/atmos) "cdw" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/machinery/door/window/northleft{dir = 1; icon_state = "left"; name = "Inner Pipe Access"; req_access_txt = "24"},/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "O2 to Pure"},/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/atmos) "cdx" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/atmos) -"cdy" = (/obj/structure/window/reinforced,/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "air_in"; name = "Mixed Air Supply Control"; output_tag = "air_out"; sensors = list("air_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/atmos) +"cdy" = (/obj/docking_port/mobile{dheight = 0; dir = 2; dwidth = 11; height = 15; id = "whiteship"; launch_status = 0; name = "NT Recovery White-Ship"; roundstart_move = "whiteship_away"; travelDir = 180; width = 27},/obj/machinery/door/airlock/shuttle{name = "recovery shuttle external airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/docking_port/stationary{dir = 2; dwidth = 11; height = 15; id = "whiteship_home"; name = "SS13: Auxiliary Dock, Station-Port"; width = 27},/turf/simulated/floor/plasteel/shuttle,/area/shuttle/abandoned) "cdz" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Air to Pure"},/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/atmos) "cdA" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 9},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/atmos) "cdB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) @@ -8087,7 +8087,7 @@ "cZA" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/floor/plating,/area/shuttle/abandoned) "cZB" = (/turf/simulated/wall/shuttle{icon_state = "swallc1"; dir = 2},/area/shuttle/abandoned) "cZC" = (/obj/machinery/door/airlock/shuttle{name = "recovery shuttle external airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/floor/plasteel/shuttle,/area/shuttle/abandoned) -"cZD" = (/obj/docking_port/mobile{dheight = 0; dir = 2; dwidth = 11; height = 15; id = "whiteship"; name = "NT Recovery White-Ship"; roundstart_move = "whiteship_away"; travelDir = 180; width = 27},/obj/machinery/door/airlock/shuttle{name = "recovery shuttle external airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/docking_port/stationary{dir = 2; dwidth = 11; height = 15; id = "whiteship_home"; name = "SS13: Auxiliary Dock, Station-Port"; width = 27},/turf/simulated/floor/plasteel/shuttle,/area/shuttle/abandoned) +"cZD" = (/obj/structure/window/reinforced,/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "air_in"; name = "Mixed Air Supply Control"; output_tag = "air_out"; sensors = list("air_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/atmos) "cZE" = (/turf/simulated/wall/shuttle{icon_state = "swallc2"; dir = 2},/area/shuttle/abandoned) "cZF" = (/turf/simulated/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/abandoned) "cZG" = (/turf/simulated/wall/shuttle{icon_state = "swall13"; dir = 2},/area/shuttle/abandoned) @@ -8537,13 +8537,13 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaYoaYobQpbQpaYoaYoaYoaSJaYoaSJaYoaSJaSJalQbQqalQalQalQbdpaqWapIbBBbOPbZibQsbDkbQsbQtbBBbQuapFaojapHbQvanaalQbBGalIbwhbwhbwibQwbQxbwibwhbwhbwhbwhbQybwhbwhbAcbfvbQzbIFbQAbQBdfqbQDbQEbKlbQFbQGbPkcaCbQIbQJbQKbQLbQMbQNbQLbQObQLbQPbQQbQRbPxbQSbNLbQTbQUbQVbQWbQXbQYbITbQZbdKbRaaXBbKAbRbbRcbRdbRebRfbRgbRhbRdbPNbRibMobRjdfrbRlbRmbPSbMobRnbRobRpbRqbRrbRsbMBbRtbRubRvbMBbRwbRxbRybRzbzfbRAbRBbRCbRDbQdbREbRFbEnbOsbRGbRHbRIbLhbLibLjbEFbRJbRKbRLbCVaafaaabBnaaabBmaaabBnaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaobbLtbOFaQaaaaaaaaSHaSHaSHaSHaSIaSHaSHaSHaSHaaaaaaaOrbOFaQaaobaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaYobRMbbyaYoaaaaafaaaaaaaaaaafaaaaaaalQbRObRPbRQbRRbRSbRRbRTbBBbBBbBBbBBbRUbBBbBBbBBbRVaqSalIaojbRWbRXalQbRYbRZbwhbSabSbbScbSdbSebSfbSgbwhbShbSibSjbwhbwmbcfbSkbIFbLNbPfbSlbSmbLNbKlbSnbSobSpbSqbQIbSrbSsbStbSubSvbSwbSxbSsbSybSzbSAbPxbSBbSCbSDbSEbSFbSGbSHbSIbSJbSKbdKbSLaXBbKAbRbbSMbSNbSNbSObSPbSQbSRbSSbSTbMobSUbRkbSVbSWcbJbMoccRcgFceAchqbARbJsbMBbMBbMBbMBbMBbTcapkapkbTdbzfbRAbRBbRCbTebTfbREbTgbMNbThbRGbMObTibMQbBeaafbBebTjbTkbTlbCVaafaaabBnaaabBmaaabBnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaobaOrbOFaQaaaaaaaaaaaaabxwbxwbTmbxwbxwaaaaaaaaaaaaaOrbOFaQaaobaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaYobQpbQpaYoaafaafaafaafaafaafaafaafalQbToasjasjasjbzXapFapIalIanfauRaoibTpbTqaqWalQalQalQalQalQbTralQalQbBGapHbwhbTsbTtbTubTubSdbTvbTwbwhbTxbTybTzbwhbykbcfbTAbIFbLNbTBbTCbTDbLNbKlbTEbTFbTGbTHbQIbTIbTJbTKbTLbTMbTNbTObTPbTQbTRbTSbPxbTTbTUbTVbTWbNObTXbTXbTYbITbTZbdKbUaaXBbKAbMobUbbUcbUdbNWbUebUfbPLbUgbUhbUibUjbUkbUlbUmciRbMobARbARbARbARbARbUoalwbUpbQaaqzapkbUqaqybUrapkbzfbzfbUsbJBbRDbQdbUtbUubEnbOsbRGbMObUvbOxbIebIfbIgbUwbRKbUxbCVaafaaabBnaaabBmaaabBnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaobaOraPVaQaaaaaaaaaaaaaaaaaaaaPYaaaaaaaaaaaaaaaaaaaOrbOFaQaaobaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZxcZzcZycZAcZzcZAcZycZzcZycZAcZAcZycZBcZDcZCcZEcZycZAcZAcZycZFaaaaaaaaaalQalQalQalQbRXbUzasjbUAciTbUCbUDbUDbUDbUEbUFbUDciTciWbUGbUDbUHbQralIbBGbVFbwhbUJbUKbULbUMbDwbUNbUObwhbwhbwhbwhbwhbUPbcfbKfbIFbIFbUQbUQbURbIFbIHbIJbUSbUTbIJbIJbUUcjIbUWbNIbUUbUUbUUbNIbUYcjIbUUbITbITbITbITbITbITbVabVabVabIUbVbbdKbVcaXBbVdbVebVfbVfbVfbVgbVfbVfbVhbVibVfbVfbVfbVfbMobVjbVkbVlbVmbVnbVoapkclDbVqalwbRybVrbVsapkbVtapkapkanUbzfbVubFXbVvbzgbQdbzgbVwbEnbOsbVxbMObQhbMQbBeaafbCVbCVbCVbCVbCVaafaafbMUaafbLnaafaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaobaOraPVbeuaNiaNiaNiaNiaNiaNibVyaNiaNiaNiaNiaNiaNibnobOFaQaaobaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZxcZzcZycZAcZzcZAcZycZzcZycZAcZAcZycZBcdycZCcZEcZycZAcZAcZycZFaaaaaaaaaalQalQalQalQbRXbUzasjbUAciTbUCbUDbUDbUDbUEbUFbUDciTciWbUGbUDbUHbQralIbBGbVFbwhbUJbUKbULbUMbDwbUNbUObwhbwhbwhbwhbwhbUPbcfbKfbIFbIFbUQbUQbURbIFbIHbIJbUSbUTbIJbIJbUUcjIbUWbNIbUUbUUbUUbNIbUYcjIbUUbITbITbITbITbITbITbVabVabVabIUbVbbdKbVcaXBbVdbVebVfbVfbVfbVgbVfbVfbVhbVibVfbVfbVfbVfbMobVjbVkbVlbVmbVnbVoapkclDbVqalwbRybVrbVsapkbVtapkapkanUbzfbVubFXbVvbzgbQdbzgbVwbEnbOsbVxbMObQhbMQbBeaafbCVbCVbCVbCVbCVaafaafbMUaafbLnaafaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaobaOraPVbeuaNiaNiaNiaNiaNiaNibVyaNiaNiaNiaNiaNiaNibnobOFaQaaobaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZHcZGcZJcZIcZLcZKcZNcZMcZKcZOcZPcZPcZRcZQcZTcZScZQcZUcZWcZVcZXcZKaaaaaaaaaaaaaafaaabVzbVzbVAbVBbVCalQbVDalQalQalQaUdbVEbVEbVEbVEbVEbVEbVEbQHbUEbUBbVHbwhbVIbVJbVKbVLbDwbSdbVMbVNbVOauRalQbVPbwmbVQbVRbVSbVTbVUbVUbVUbVVbVWbVXbVUbVUbVYbVZbVSbVSbWabWbbWbbWbbWcbWbbWdbWebWebWfbWgbWhbWibWjbWkbVUbVUbVUbVVbWmbWebWnaXBbWobWpbWqbWrbWsbWtbWubWvbWwbWtbWxbWybWzbWAbMobWBbWCbWDbWEbWFbWGbWHbVqbWIalwalwalwalwalwbWJbWKbzfbzfbzfbWLbFXbJBbWMbWNbWObGbbWPbWQbWRbWSbWTbLhbLibLjbEFbWUbWVbWVbCVaafaaabBnaaabBmaaabBnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaobaVfbWWaOtaOtaOtbggbggcjLcjLcjYcjLcjLbggbggbggbggbggbWYaOxaobaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZZcZYdabdaadaccZKdaedadcZKdafdagcZSdaidahdaidajdaldakdamdamdancZAaaaaaaaaaaaaaafaaabVCbWZbXabXbbVCaojbXcbLAbXdalQbXebVEbXfbXgbXhbXibXjbVEalIbVGalIalIbwhbwhbwhbwhbwhbwhbwhbwhbwhatGalIalQbXkbwmbXlbXmbawbawbawbawbawbawbazbawbXnbXobXpbaybawbawbXqbXrbXsbXtbXubXvbXwbawbawbawbXxbXybawbawbazbawbawbawbawbXzbawbXnbXAbXBbXCbXDbXEbXFbXEbXGbXGbXHbXIbXJbXGbXFbXKbMobMobMobMobXLbXMapjanUbXNbXOapjbXOclGbXQalwauFalwbzfbXRbXSbXTbXUbXVbXWbHVbXWbHXbEnbXXbMNbMObXYbMQbBeaafbBebXZbYabYbbCVaafaaabBnaaabBmaaabBnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaobaaabDfbhYbhYbhYbDfbCXbrkcoWcnfcoWbrnaWEbDfbhYbhYbhYbDfaaaaobaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZZcZYcZKdaodapcZKdardaqcZKdasdatdaidavdaucZSdaidaudawdamdaxdaycZKaaaaaaaaaaaaaafaafbVCbYcbYdbYebVCaojbYfbYgalQalQbYhbVEbYibYjcvCbYlbYmbVEavZbYnbUDbUDciTbUDbUGbUDbYobYpcnYbYpbYpbYqaYQbYrbYsbYtbYubYvbYwbYxbYybYvbYvbYvbYzbYvbYAaZobYBbYCaZoaZobYDbYEbYFbYGbYHbYIbYJaZoaZobYKbYLbYMbYMbYNbYObYNbYNbYNbYPbYQbYRbYSbYTbYUbYVbYWbYXbYYbYZbZabZbbZcbZdbZebZfbZcbZgbVfbZhcovbVfbZjbXMapjapjapjapjapjbZkbZlbZmbZnbZobZpbZqbZrbZsbZtbZubZvbZwbZxbZybZybZybZzbZAbZBbZCbOxbIebIfbIgbZDbWVbZEbCVaafaaabBnaaabBmaaabBnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaobaobaobaobaobaobaobaOrcsabrocpjbrobBzaQaaobaobaobaobaobaobaobaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZZcZEcZGdaadaAdazdaCdaBcZGcZycZBdahdaEdaDdaFdaFdaGdaadaHcZEcZycZGcZAcZAcZFaaaaafaaabVCbZFbZGbZHbVCbZIaojbZJalQbZKbZLbVEbZMbZNbZObZPbZQbVEbVEbVEbVEbVEbVEbZRbVEbVEbZSbZTbZUalIaqSbZVaqWbZWbZWbZWbZWbZWbZWbZWbZXbZXbZXbZXbZXbZYbZZbZZcaacabbZZcacbZZcadcaeaXBcafcagcahcaicahcajcakcahcahcalbVeaXqaXsaXscambVecanbVecaocapcaobVfcaqcarbZdcascatbZcbZdcaucavcawcaxbVfcaycazbVfcaAcaBcqIbZmbZmbZmbZmcaDcaEcaFcaGapkapnbzfcaHbCSbEncaIcaJcaKbLabLacaLbLacaMbOvbMObQhcaNbzfaafbCVbCVbCVbCVbCVaafaaabBnaaabBmaaabBnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaobaaabhYbhYbhYbhYbhYaaaaobaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZxcZAcZJdaIdaidaKdaJdaLdaidaidaMcZKcZSdaidaidaicZSdaidaidaicZKdaOdaNdaQdaPcZAaaaaaiaaabVCcaOcaPcaObVCalQalQalQalQbVEcaQbVEcaRcaScaTcaUcaVbVEcaWcaXcaYbVEcaZcbacbbbVEcbcbVEbVEbVEbVEbVEbVEbZWcbdcbecbfcbgcbhcbibZXcbjcbkcblbZXcbmcbncbmcbocbpcbmcbncbmcbqcbrcbscbtcbucbvcbwcbvcbxcbycbvcbwcbvcbzcbAcbAcbAcbAcbAcbBbVecbCcbDcbEbWqcbFbXFbZdbZfbZfbZccbGbZfbZfbZccbHbVfcbIcrubVfbXLcbKcbLcbLcbLcbMcbLcbLcbNcbOcbPcbQcbQbzfcbRcbSbEncaIbOscbTcbUcbUcbVcbWcbVcbUcbXcbYbMQbzfaafaafaafaafaafaafaafaafbLmaafbLnaafbMUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaobaobaobaobaobaobaobaobaobaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZQdaRcZQdaSdaidaUdaTdaTdaTdaVdaicZQdaidaXdaWdaLdaidaXdaXdaicZQdaYcZSdaidaZcZAaaaaobaaaaaacaOcbZcaOaaaaafaaaaaaaaabVEcaQbVEbVEbVEbVEccabVEbVEccbcccccbbVEbVEbVEbVEbVEccdccebVEccfccgcchcciccjcckcclccmcclccnccoccpccqccrccscctccuccvccwccxccycczccAccBcbnccCccDccEcbwccFccGccHccIccJccKccLccMccNcbAccOccPccQcbActubVeccSccTccUccVccWccXccYccZcdaccXccYccZccZccXcdbcdccddcdecdfcdgbXMapjcdhcdicbQcbQcbQcbQcdjcdkcdlcdmbzfcdncdocdpcdqcdrcdscdtcducdvcdwcdxcdycdzcdAbMQbzfbzfbzfaNjaNiaNjaNiaNjaaabBnaaaaafaaabBnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZQdaRcZQdaSdaidaUdaTdaTdaTdaVdaicZQdaidaXdaWdaLdaidaXdaXdaicZQdaYcZSdaidaZcZAaaaaobaaaaaacaOcbZcaOaaaaafaaaaaaaaabVEcaQbVEbVEbVEbVEccabVEbVEccbcccccbbVEbVEbVEbVEbVEccdccebVEccfccgcchcciccjcckcclccmcclccnccoccpccqccrccscctccuccvccwccxccycczccAccBcbnccCccDccEcbwccFccGccHccIccJccKccLccMccNcbAccOccPccQcbActubVeccSccTccUccVccWccXccYccZcdaccXccYccZccZccXcdbcdccddcdecdfcdgbXMapjcdhcdicbQcbQcbQcbQcdjcdkcdlcdmbzfcdncdocdpcdqcdrcdscdtcducdvcdwcdxcZDcdzcdAbMQbzfbzfbzfaNjaNiaNjaNiaNjaaabBnaaaaafaaabBnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZCcZSdbacZSdaidbcdbbdbedbddbfcZSdbgdaidbidbhdbkdbjdbmdblcZSdbndaidaidbpdbocZAaaaaaiaafaafcaOcaPcaOaafaafaafaafaafbVEcdBcdCcdDbVEcdEcdFcdGbVEcdHcdIcdJcdKcdLbZQcdMbVEcdNcdOcdPcdQcdRcdScdTcdUcdVcdWcdXcdYcdZceacebbZXceccedceecefcegcehceicejcekcelcemcenccCccDccEceocepceqcercescetceuceucevcevcewcexceycezcbActVbVeceBceCceDbWqceEceFceGceHceIceHceJceHceKceHceLbVfceMceNceOcePcbNalwalwalwcbQceQceRceSceTceUceVceWceXceYceYceZcfacfbcfccfdcfecfbcfbbMQcfccffcfgcfhcficfjcficfkcfkcfkcfkcflaafaaiaaaaafaaabBnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaudbqdaudbrdaidaVdbsdbsdbsdaUdaidaudaidbudbtdaicZSdbudbtdaidaudbvdaLdbxdbwcZAaaaaafaaaaaaaaacfmaaaaaaaafaaaaafaaabVEbVEbVEcaQbVEcfncfocfpcfqcfrcfscftbZQbZQcdGcfubVEcfvcfwbVEcfxcfycfzcfAbZWcfBcfCcfDcfEcfFcfGcfHcfIcfIcfJcfIcfKcfLcfMcfNcfOcemcfPcfQcfRcfScfTcfUceocepcepcepcfVcfWcfXcfYcfZcgacgbcgccgdcgecbAcgfbVebVebVebVebVfbVfcggbVfbVfbVfbVfbVfbVfbVfbVfbVfbVfbVfbVfbVfcghcgialwcgjcgkcbQcglcgmcgncgocgpcgqcgrbzfbzfbzfcgsbBecgtbBecgsbBecgtcgtcgubBecgubzfbzfbzfbzfbzfbDfbhZcfkaWEbDfaaabBnaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbycZAcZJdbzdaidaidaidaidaidaidaicZKdaidaidbAdaidaidaidaidaicZKdbCdbBdbEdbDcZAaaaaafaafaafaaacgvaaaaaaaafaaaacnacncgwcgxbVEcgycgzcgAbVEbVEbVEcgBcgCbZQcgDcgEbVEbVEbVEcuqcgGbVEcgHcgHcgHcgHcgHcgHcgHcgIcfEcgJcgKcgLcfIcgMcgNcBQcgPcgQcgRcgScgTcgUcgVcgWcbmccCcgXccEcbvcgYcgZchachbchcchdchechfchgcbAchhchichjcbAchkchlchlchlchmchlchnchochpchlchlcuschlchlchlcuSchrchschtchubZmchvchwchxchybRxcbQchzcgmchAchBchCchDchEchFaafaafchGaafchHaafchGaafchIchJchKaafchKaafaafaafaafaafaafaVfcfkaOxaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm index fdb4d591514..6d0134872f5 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm @@ -6657,7 +6657,7 @@ "cya" = (/turf/simulated/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/abandoned) "cyb" = (/turf/simulated/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/abandoned) "cyc" = (/turf/simulated/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/abandoned) -"cyd" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dheight = 0; dir = 2; dwidth = 11; height = 22; id = "whiteship"; name = "NT Medical Ship"; roundstart_move = "whiteship_away"; travelDir = 180; width = 35},/obj/docking_port/stationary{dir = 2; dwidth = 11; height = 22; id = "whiteship_home"; name = "SS13 Arrival Docking"; width = 35},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cyd" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dheight = 0; dir = 2; dwidth = 11; height = 22; id = "whiteship"; launch_status = 0; name = "NT Medical Ship"; roundstart_move = "whiteship_away"; travelDir = 180; width = 35},/obj/docking_port/stationary{dir = 2; dwidth = 11; height = 22; id = "whiteship_home"; name = "SS13 Arrival Docking"; width = 35},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) "cye" = (/obj/machinery/door/airlock/shuttle,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) "cyf" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 4},/turf/simulated/floor/plating/airless,/area/shuttle/abandoned) "cyg" = (/turf/simulated/wall/shuttle{icon_state = "swall13"; dir = 2},/area/shuttle/abandoned) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index fcd2be43b5b..f876e460b28 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -350,3 +350,9 @@ var/list/bloody_footprints_cache = list() // Consider these images/atoms as part of the UI/HUD #define APPEARANCE_UI_IGNORE_ALPHA RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|RESET_ALPHA #define APPEARANCE_UI RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR + +//Launching Shuttles to Centcomm +#define NOLAUNCH -1 +#define UNLAUNCHED 0 +#define ENDGAME_LAUNCHED 1 +#define EARLY_LAUNCHED 2 diff --git a/code/controllers/subsystem/shuttles/emergency.dm b/code/controllers/subsystem/shuttles/emergency.dm index 7cf45c0e8ac..438370269e4 100644 --- a/code/controllers/subsystem/shuttles/emergency.dm +++ b/code/controllers/subsystem/shuttles/emergency.dm @@ -1,7 +1,3 @@ -#define UNLAUNCHED 0 -#define ENDGAME_LAUNCHED 1 -#define EARLY_LAUNCHED 2 - /obj/docking_port/mobile/emergency name = "emergency shuttle" id = "emergency" @@ -118,11 +114,12 @@ mode = SHUTTLE_STRANDED if(time_left <= 0 && !SSshuttle.emergencyNoEscape) - //move each escape pod to its corresponding transit dock - for(var/obj/docking_port/mobile/pod/M in SSshuttle.mobile) - if(M.launch_status == UNLAUNCHED) //Will not launch from the mine/planet + //move each escape pod (or applicable spaceship) to its corresponding transit dock + for(var/obj/docking_port/mobile/M in SSshuttle.mobile) + if(M.launch_status == UNLAUNCHED) //Pods will not launch from the mine/planet, and other ships won't launch unless we tell them to. M.launch_status = ENDGAME_LAUNCHED M.enterTransit() + //now move the actual emergency shuttle to its transit dock for(var/area/shuttle/escape/E in world) E << 'sound/effects/hyperspace_progress.ogg' @@ -133,9 +130,13 @@ if(SHUTTLE_ESCAPE) if(time_left <= 0) //move each escape pod to its corresponding escape dock - for(var/obj/docking_port/mobile/pod/M in SSshuttle.mobile) + for(var/obj/docking_port/mobile/M in SSshuttle.mobile) if(M.launch_status == ENDGAME_LAUNCHED) - M.dock(SSshuttle.getDock("[M.id]_away")) + if(istype(M, /obj/docking_port/mobile/pod)) + M.dock(SSshuttle.getDock("[M.id]_away")) //Escape pods dock at centcomm + else + continue //Mapping a new docking point for each ship mappers could potentially want docking with centcomm would take up lots of space, just let them keep flying off into the sunset for their greentext + //now move the actual emergency shuttle to centcomm for(var/area/shuttle/escape/E in world) E << 'sound/effects/hyperspace_end.ogg' @@ -157,7 +158,7 @@ dwidth = 1 width = 3 height = 4 - var/launch_status = UNLAUNCHED + launch_status = UNLAUNCHED /obj/docking_port/mobile/pod/request() if((security_level == SEC_LEVEL_RED || security_level == SEC_LEVEL_DELTA) && launch_status == UNLAUNCHED) diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 852437a948e..2dce5a1b755 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -176,6 +176,8 @@ var/obj/docking_port/stationary/destination var/obj/docking_port/stationary/previous + var/launch_status = NOLAUNCH + /obj/docking_port/mobile/New() ..() SSshuttle.mobile += src @@ -584,8 +586,11 @@ return if(href_list["move"]) + var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId) + if(M.launch_status == ENDGAME_LAUNCHED) + usr << "You've already escaped. Never going back to that place again!" + return if(no_destination_swap) - var/obj/docking_port/mobile/M = SSshuttle.getShuttle(shuttleId) if(M.mode != SHUTTLE_IDLE) usr << "Shuttle already in transit." return From 1dcb6fec2ab3de82f46bf15adf3dd799e794cd16 Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Wed, 27 Jan 2016 23:43:20 -0600 Subject: [PATCH 2/4] Dream Station --- _maps/map_files/DreamStation/dreamstation04.dmm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_maps/map_files/DreamStation/dreamstation04.dmm b/_maps/map_files/DreamStation/dreamstation04.dmm index 8b09fa8f0f0..737327d1b0c 100644 --- a/_maps/map_files/DreamStation/dreamstation04.dmm +++ b/_maps/map_files/DreamStation/dreamstation04.dmm @@ -382,7 +382,7 @@ "ahr" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/plasteel/shuttle,/area/shuttle/arrival) "ahs" = (/obj/structure/table,/obj/item/weapon/screwdriver,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) "aht" = (/turf/simulated/wall/r_wall,/area/hallway/secondary/entry) -"ahu" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dheight = 0; dir = 1; dwidth = 11; height = 22; id = "whiteship"; name = "NT Medical Ship"; roundstart_move = "whiteship_away"; travelDir = 180; width = 35},/obj/docking_port/stationary{dir = 1; dwidth = 11; height = 22; id = "whiteship_home"; name = "SS13 Arrival Docking"; width = 35},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"ahu" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dheight = 0; dir = 1; dwidth = 11; height = 22; id = "whiteship"; launch_status = 0; name = "NT Medical Ship"; roundstart_move = "whiteship_away"; travelDir = 180; width = 35},/obj/docking_port/stationary{dir = 1; dwidth = 11; height = 22; id = "whiteship_home"; name = "SS13 Arrival Docking"; width = 35},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) "ahv" = (/turf/simulated/wall,/area/hallway/secondary/entry) "ahw" = (/obj/effect/spawner/structure/window/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry) "ahx" = (/turf/simulated/wall/shuttle{icon_state = "swall13"; dir = 2},/area/shuttle/arrival) @@ -2234,7 +2234,7 @@ "aQX" = (/obj/machinery/atmospherics/pipe/simple/green/visible{tag = "icon-intact (SOUTHWEST)"; icon_state = "intact"; dir = 10; initialize_directions = 12},/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "o2_in"; name = "Oxygen Supply Control"; output_tag = "o2_out"; sensors = list("o2_sensor" = "Tank")},/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/atmos) "aQY" = (/obj/machinery/atmospherics/pipe/manifold/cyan/visible{dir = 8; initialize_directions = 11},/turf/simulated/floor/plasteel{dir = 5; icon_state = "blue"},/area/atmos) "aQZ" = (/obj/machinery/atmospherics/components/trinary/mixer{node1_concentration = 0.8; node2_concentration = 0.2},/turf/simulated/floor/plasteel/barber,/area/atmos) -"aRa" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "air_in"; name = "Mixed Air Supply Control"; output_tag = "air_out"; sensors = list("air_sensor" = "Tank")},/obj/machinery/light,/turf/simulated/floor/plasteel/barber,/area/atmos) +"aRa" = (/obj/machinery/computer/atmos_control/tank{frequency = 1441; input_tag = "air_in"; name = "Mixed Air Supply Control"; output_tag = "air_out"; sensors = list("air_sensor" = "Tank")},/obj/machinery/light,/turf/simulated/floor/plasteel/barber,/area/atmos) "aRb" = (/obj/machinery/atmospherics/components/binary/pump{dir = 1; name = "Air Outlet Pump"; on = 1},/turf/simulated/floor/plasteel/barber,/area/atmos) "aRc" = (/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/simulated/floor/plasteel,/area/atmos) "aRd" = (/obj/structure/cable/green{tag = "icon-1-2"; icon_state = "1-2"},/turf/simulated/floor/plating{burnt = 1; icon_state = "panelscorched"},/area/maintenance/atmos_control) From cfa3ff2a244459f23f043f111b130a6fe3197d90 Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Wed, 27 Jan 2016 23:59:14 -0600 Subject: [PATCH 3/4] Makes objectives function properly --- code/controllers/subsystem/shuttles/emergency.dm | 1 + code/game/atoms.dm | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/controllers/subsystem/shuttles/emergency.dm b/code/controllers/subsystem/shuttles/emergency.dm index 438370269e4..d7bb9f258ba 100644 --- a/code/controllers/subsystem/shuttles/emergency.dm +++ b/code/controllers/subsystem/shuttles/emergency.dm @@ -125,6 +125,7 @@ E << 'sound/effects/hyperspace_progress.ogg' enterTransit() mode = SHUTTLE_ESCAPE + launch_status = ENDGAME_LAUNCHED timer = world.time priority_announce("The Emergency Shuttle has left the station. Estimate [timeLeft(600)] minutes until the shuttle docks at Central Command.", null, null, "Priority") if(SHUTTLE_ESCAPE) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index efe8e4883fd..0cf78685bd7 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -27,9 +27,8 @@ return 0 //check for centcomm shuttles - for(var/centcom_shuttle in list("emergency", "pod1", "pod2", "pod3", "pod4", "ferry")) - var/obj/docking_port/mobile/M = SSshuttle.getShuttle(centcom_shuttle) - if(T in M.areaInstance) + for(var/obj/docking_port/mobile/M in SSshuttle.mobile) + if(M.launch_status == ENDGAME_LAUNCHED && T in M.areaInstance) return 1 //finally check for centcom itself From 4edf2a3d083b52d3ed658c9edc922c55761c525a Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Thu, 28 Jan 2016 04:27:10 -0600 Subject: [PATCH 4/4] Typeless Loops --- code/controllers/subsystem/shuttles/emergency.dm | 6 ++++-- code/game/atoms.dm | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/code/controllers/subsystem/shuttles/emergency.dm b/code/controllers/subsystem/shuttles/emergency.dm index d7bb9f258ba..5fc093324b1 100644 --- a/code/controllers/subsystem/shuttles/emergency.dm +++ b/code/controllers/subsystem/shuttles/emergency.dm @@ -115,7 +115,8 @@ if(time_left <= 0 && !SSshuttle.emergencyNoEscape) //move each escape pod (or applicable spaceship) to its corresponding transit dock - for(var/obj/docking_port/mobile/M in SSshuttle.mobile) + for(var/A in SSshuttle.mobile) + var/obj/docking_port/mobile/M = A if(M.launch_status == UNLAUNCHED) //Pods will not launch from the mine/planet, and other ships won't launch unless we tell them to. M.launch_status = ENDGAME_LAUNCHED M.enterTransit() @@ -131,7 +132,8 @@ if(SHUTTLE_ESCAPE) if(time_left <= 0) //move each escape pod to its corresponding escape dock - for(var/obj/docking_port/mobile/M in SSshuttle.mobile) + for(var/A in SSshuttle.mobile) + var/obj/docking_port/mobile/M = A if(M.launch_status == ENDGAME_LAUNCHED) if(istype(M, /obj/docking_port/mobile/pod)) M.dock(SSshuttle.getDock("[M.id]_away")) //Escape pods dock at centcomm diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 0cf78685bd7..5481e79f1cb 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -27,7 +27,8 @@ return 0 //check for centcomm shuttles - for(var/obj/docking_port/mobile/M in SSshuttle.mobile) + for(var/A in SSshuttle.mobile) + var/obj/docking_port/mobile/M = A if(M.launch_status == ENDGAME_LAUNCHED && T in M.areaInstance) return 1