var/obj/list/shuttles = list(("escape" = new /datum/shuttle_manager(/area/shuttle/escape/centcom, 0)), ("pod1" = new /datum/shuttle_manager(/area/shuttle/escape_pod1/station, 0)), ("pod2" = new /datum/shuttle_manager(/area/shuttle/escape_pod2/station, 0)), ("pod3" = new /datum/shuttle_manager(/area/shuttle/escape_pod3/station, 0)), ("pod4" = new /datum/shuttle_manager(/area/shuttle/escape_pod4/station, 0)), ("mining" = new /datum/shuttle_manager(/area/shuttle/mining/station, 10)), ("laborcamp" = new /datum/shuttle_manager(/area/shuttle/laborcamp/station, 10)), ("ferry" = new /datum/shuttle_manager(/area/shuttle/transport1/centcom, 0))) //Pre-made shuttles should have non-number keys, so that buildable shuttles can use numbered keys without allowing 'I build a shuttle console with the escape number as its ID.' datum/shuttle_manager var/tickstomove = 10 //How long does it take to move the shuttle? var/moving = 0 //Is it moving? var/area/shuttle/location //The current location of the actual shuttle datum/shuttle_manager/New(var/area, var/delay) //Create a new shuttle manager for the shuttle starting area, "area" and with a movement delay of tickstomove location = area tickstomove = delay var/area/A = locate(location) A.has_gravity = 1 datum/shuttle_manager/proc/move_shuttle(var/override_delay) if(moving) return 0 moving = 1 spawn(override_delay == null ? tickstomove*10 : override_delay) var/area/shuttle/fromArea var/area/shuttle/toArea fromArea = locate(location) //the location of the shuttle toArea = locate(fromArea.destination) toArea.clear_docking_area() fromArea.move_contents_to(toArea) location = toArea.type fromArea.has_gravity = 0 toArea.has_gravity = 1 for(var/obj/machinery/door/D in toArea) //Close any doors on the shuttle spawn(0) D.close() for(var/mob/M in toArea) if(M.client) spawn(0) if(M.buckled) shake_camera(M, 2, 1) // turn it down a bit come on else shake_camera(M, 7, 1) if(istype(M, /mob/living/carbon)) if(!M.buckled) M.Weaken(3) moving = 0 return 1 /obj/machinery/computer/shuttle name = "Shuttle Console" icon = 'icons/obj/computer.dmi' icon_state = "shuttle" req_access = list( ) circuit = /obj/item/weapon/circuitboard/shuttle var/id /obj/machinery/computer/shuttle/attack_hand(user as mob) if(..(user)) return src.add_fingerprint(usr) var/dat dat = text("