Files
Aurora.3/code/modules/shuttles/shuttle_arrival.dm
T
LordFowlandskull132 3e59e4c055 Spawning at the Odin (#1762)
Latejoiners will spawn at the Odin, in an elevator shaft in a segregated section of the station away from round-end.
Latejoiners will spawn in civilian clothes equated to their paygrade. (List currently is extremely rudimentary.)
Latejoiners will get their implants activated, their departmental memories inserted, and their equipment delivered by the auto-locker machines. It is at this point that they will be announced to the crew.
Latejoiners will then proceed to the arrivals shuttle. As soon as any living being steps on the shuttle, it will begin counting down to launch in 30 seconds. If there is no living being on it when it is about to launch, it will cancel.
The shuttle will be in transit for one minute. When it arrives it will wait a minute, and then attempt to launch back to the Odin. If there are any living beings on it, it will cancel, announce this to the crew, and then try again in another minute.
Anyone who remains in the spawn area for longer than 15 minutes will be despawned if they're SSD. If they are not SSD they will be teleported to Aurora's cryo. If Aurora's cryo is somehow destroyed they'll be despawned.
Spawning area itself also has its own cryo, if for whatever reason that is needed.
2017-02-14 11:52:48 +02:00

55 lines
1.7 KiB
Plaintext

/datum/shuttle/ferry/arrival
/datum/shuttle/ferry/arrival/long_jump(var/area/departing, var/area/destination, var/area/interim, var/travel_time, var/direction)
if(isnull(location))
return
if(!destination)
destination = get_location_area(!location)
if(!departing)
departing = get_location_area(location)
direction = !location
if(moving_status != SHUTTLE_IDLE) return
//it would be cool to play a sound here
moving_status = SHUTTLE_WARMUP
spawn(warmup_time*10)
if (moving_status == SHUTTLE_IDLE)
return //someone cancelled the launch
if (at_station() && forbidden_atoms_check())
//cancel the launch because of forbidden atoms. announce over supply channel?
moving_status = SHUTTLE_IDLE
global_announcer.autosay("Unacceptable items detected aboard the arrivals shuttle. Launch attempt failed. Restarting launch in one minute.", "Arrivals Shuttle Oversight")
arrival_shuttle.set_launch_countdown(60)
return
if (!forbidden_atoms_check() && !at_station())
//cancel the launch because of there's no one on the shuttle.
moving_status = SHUTTLE_IDLE
return
if(!at_station())
global_announcer.autosay("Central Command Arrivals shuttle inbound to NSS Aurora II. ETA: one minute.", "Arrivals Shuttle Oversight")
arrive_time = world.time + travel_time*10
moving_status = SHUTTLE_INTRANSIT
move(departing, interim, direction)
while (world.time < arrive_time)
sleep(5)
move(interim, destination, direction)
moving_status = SHUTTLE_IDLE
/datum/shuttle/ferry/arrival/arrived()
arrival_shuttle.shuttle_arrived()
/datum/shuttle/ferry/arrival/proc/forbidden_atoms_check()
return arrival_shuttle.forbidden_atoms_check(get_location_area())
/datum/shuttle/ferry/arrival/proc/at_station()
return (!location)