diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 54a3da3f75..48fdf1bb1d 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -321,3 +321,9 @@ var/list/mob/living/forced_ambiance_list = new if(A && A.has_gravity()) return 1 return 0 + +/area/proc/shuttle_arrived() + return TRUE + +/area/proc/shuttle_departed() + return TRUE diff --git a/code/modules/shuttles/shuttle.dm b/code/modules/shuttles/shuttle.dm index b956f3528d..618ec3ff05 100644 --- a/code/modules/shuttles/shuttle.dm +++ b/code/modules/shuttles/shuttle.dm @@ -60,11 +60,13 @@ return TRUE // If you need an event to occur when the shuttle jumps in short or long jump, override this. -/datum/shuttle/proc/on_shuttle_departure() +/datum/shuttle/proc/on_shuttle_departure(var/area/origin) + origin.shuttle_departed() return // Similar to above, but when it finishes moving to the target. Short jump generally makes this occur immediately after the above proc. -/datum/shuttle/proc/on_shuttle_arrival() +/datum/shuttle/proc/on_shuttle_arrival(var/area/destination) + destination.shuttle_arrived() return /datum/shuttle/proc/short_jump(var/area/origin,var/area/destination) @@ -94,7 +96,7 @@ move(origin, destination) moving_status = SHUTTLE_IDLE - on_shuttle_arrival() + on_shuttle_arrival(destination) make_sounds(destination, HYPERSPACE_END) @@ -125,11 +127,12 @@ depart_time = world.time - on_shuttle_departure() + on_shuttle_departure(departing) moving_status = SHUTTLE_INTRANSIT move(departing, interim, direction) + interim.shuttle_arrived() var/last_progress_sound = 0 var/made_warning = FALSE @@ -144,10 +147,11 @@ create_warning_effect(destination) sleep(5) + interim.shuttle_departed() move(interim, destination, direction) moving_status = SHUTTLE_IDLE - on_shuttle_arrival() + on_shuttle_arrival(destination) make_sounds(destination, HYPERSPACE_END)