This commit is contained in:
Jack Edge
2016-06-30 13:24:05 +01:00
parent c2108a9af5
commit 3c022aa0d1
6 changed files with 70 additions and 55 deletions
+1 -1
View File
@@ -28,7 +28,7 @@
for(var/obj/docking_port/stationary/S in SSshuttle.stationary)
if(!options.Find(S.id))
continue
if(M.canDock(S))
if(!M.check_dock(S))
continue
destination_found = 1
dat += "<A href='?src=\ref[src];move=[S.id]'>Send to [S.name]</A><br>"
+16 -13
View File
@@ -168,6 +168,9 @@
for(var/obj/item/weapon/card/id/ID in src)
qdel(ID)
if(authorized && authorized.len)
authorized.Cut()
authorized = null
. = ..()
@@ -290,21 +293,26 @@
if(SHUTTLE_DOCKED)
if(time_left <= ENGINES_START_TIME)
mode = SHUTTLE_IGNITING
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.mode = SHUTTLE_IGNITING
if(time_left <= ENGINES_START_TIME * 10)
if(SSshuttle.emergencyNoEscape)
priority_announce("Hostile environment detected. Departure has been postponed indefinitely pending conflict resolution.", null, 'sound/misc/notice1.ogg', "Priority")
sound_played = 0 //Since we didn't launch, we will need to rev up the engines again next pass.
mode = SHUTTLE_STRANDED
else
mode = SHUTTLE_IGNITING
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.check_transit_zone()
if(SHUTTLE_IGNITING)
var/success = TRUE
success &= (requestTransitZone() == TRANSIT_READY)
success &= (check_transit_zone() == TRANSIT_READY)
for(var/A in SSshuttle.mobile)
var/obj/docking_port/mobile/M = A
if(M.launch_status == UNLAUNCHED)
success &= (M.requestTransitZone() == TRANSIT_READY)
success &= (M.check_transit_zone() == TRANSIT_READY)
if(!success)
setTimer(ENGINES_START_TIME * 10)
@@ -313,11 +321,6 @@
for(var/area/shuttle/escape/E in world)
E << 'sound/effects/hyperspace_begin.ogg'
if(time_left <= 0 && SSshuttle.emergencyNoEscape)
priority_announce("Hostile environment detected. Departure has been postponed indefinitely pending conflict resolution.", null, 'sound/misc/notice1.ogg', "Priority")
sound_played = 0 //Since we didn't launch, we will need to rev up the engines again next pass.
mode = SHUTTLE_STRANDED
if(time_left <= 0 && !SSshuttle.emergencyNoEscape)
//move each escape pod (or applicable spaceship) to its corresponding transit dock
for(var/A in SSshuttle.mobile)
+1 -1
View File
@@ -219,7 +219,7 @@
// truthy value means that it cannot dock for some reason
// but we can ignore the someone else docked error because we'll
// be moving into their place shortly
if(result && (result != SHUTTLE_SOMEONE_ELSE_DOCKED))
if((result != SHUTTLE_CAN_DOCK) && (result != SHUTTLE_SOMEONE_ELSE_DOCKED))
var/m = "Unsuccessful dock of [preview_shuttle] ([result])."
WARNING(m)
return
+4 -1
View File
@@ -16,7 +16,10 @@
. = ..()
if(!.)
return
addtimer(src, "close", 0)
addtimer(src, "close", 0, TRUE)
// Close any attached airlocks as well
for(var/obj/machinery/door/D in orange(1, src))
addtimer(src, "close", 0, TRUE)
/mob/onShuttleMove()
if(!move_on_shuttle)
+16 -16
View File
@@ -19,7 +19,7 @@
var/dwidth = 0 //position relative to covered area, perpendicular to dir
var/dheight = 0 //position relative to covered area, parallel to dir
//these objects are indestructable
//these objects are indestructible
/obj/docking_port/Destroy(force)
// unless you assert that you know what you're doing. Horrible things
// may result.
@@ -212,6 +212,7 @@
destination = null
previous = null
assigned_transit = null
areaInstance = null
. = ..()
/obj/docking_port/mobile/initialize()
@@ -394,15 +395,8 @@
/obj/docking_port/mobile/proc/dock(obj/docking_port/stationary/S1, force=FALSE)
// Crashing this ship with NO SURVIVORS
if(!force)
var/status = canDock(S1)
if(status == SHUTTLE_ALREADY_DOCKED)
return status
else if(status != SHUTTLE_CAN_DOCK)
var/msg = "dock(): shuttle [src] cannot dock at [S1], \
error: [status]"
message_admins(msg)
return status
if(!check_dock(S1))
return -1
if(!canMove())
return -1
@@ -484,7 +478,9 @@
return SSshuttle.getDock(roundstart_move)
/obj/docking_port/mobile/proc/dockRoundstart()
return dock(findRoundstartDock())
var/port = findRoundstartDock()
if(port)
return dock(port)
/obj/effect/landmark/shuttle_import
name = "Shuttle Import"
@@ -550,20 +546,24 @@
if(SHUTTLE_CALL)
if(dock(destination))
setTimer(20)
return
if(SHUTTLE_RECALL)
if(dock(previous))
setTimer(20)
return
if(SHUTTLE_IGNITING)
if(check_transit_zone() != TRANSIT_READY)
setTimer(20)
return
else
mode = SHUTTLE_CALL
setTimer(callTime)
enterTransit()
else
mode = SHUTTLE_IDLE
timer = 0
destination = null
return
mode = SHUTTLE_IDLE
timer = 0
destination = null
/obj/docking_port/mobile/proc/check_ripples()
if(!ripples.len)
@@ -575,7 +575,7 @@
if(assigned_transit)
return TRANSIT_READY
else
SSshuttle.request_transit_dock()
SSshuttle.request_transit_dock(src)
/obj/docking_port/mobile/proc/setTimer(wait)
timer = world.time + wait