mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 02:34:00 +00:00
Adds direction arg for area/move_contents_to()
Attempts to fix shuttle corner transition effect Fixes bad ETAs appearing on status displays
This commit is contained in:
@@ -1294,6 +1294,7 @@
|
||||
#include "code\modules\shuttles\shuttle.dm"
|
||||
#include "code\modules\shuttles\shuttle_console.dm"
|
||||
#include "code\modules\shuttles\shuttle_emergency.dm"
|
||||
#include "code\modules\shuttles\shuttle_ferry.dm"
|
||||
#include "code\modules\shuttles\shuttle_specops.dm"
|
||||
#include "code\modules\shuttles\shuttle_supply.dm"
|
||||
#include "code\modules\shuttles\shuttles_multi.dm"
|
||||
|
||||
@@ -2,14 +2,6 @@
|
||||
|
||||
// Controls the emergency shuttle
|
||||
|
||||
|
||||
// these define the time taken for the shuttle to get to SS13
|
||||
// and the time before it leaves again
|
||||
#define SHUTTLE_PREPTIME 300 // 5 minutes = 300 seconds - after this time, the shuttle cannot be recalled
|
||||
#define SHUTTLE_LEAVETIME 180 // 3 minutes = 180 seconds - the duration for which the shuttle will wait at the station
|
||||
#define SHUTTLE_TRANSIT_DURATION 300 // 5 minutes = 300 seconds - how long it takes for the shuttle to get to the station
|
||||
#define SHUTTLE_TRANSIT_DURATION_RETURN 120 // 2 minutes = 120 seconds - for some reason it takes less time to come back, go figure.
|
||||
|
||||
var/global/datum/emergency_shuttle_controller/emergency_shuttle
|
||||
|
||||
/datum/emergency_shuttle_controller
|
||||
@@ -37,7 +29,8 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
|
||||
pod.area_station = locate(/area/shuttle/escape_pod1/station)
|
||||
pod.area_offsite = locate(/area/shuttle/escape_pod1/centcom)
|
||||
pod.area_transition = locate(/area/shuttle/escape_pod1/transit)
|
||||
pod.travel_time = SHUTTLE_TRANSIT_DURATION_RETURN
|
||||
pod.transit_direction = NORTH
|
||||
pod.move_time = SHUTTLE_TRANSIT_DURATION_RETURN
|
||||
escape_pods += pod
|
||||
|
||||
pod = new()
|
||||
@@ -46,7 +39,8 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
|
||||
pod.area_station = locate(/area/shuttle/escape_pod2/station)
|
||||
pod.area_offsite = locate(/area/shuttle/escape_pod2/centcom)
|
||||
pod.area_transition = locate(/area/shuttle/escape_pod2/transit)
|
||||
pod.travel_time = SHUTTLE_TRANSIT_DURATION_RETURN
|
||||
pod.transit_direction = NORTH
|
||||
pod.move_time = SHUTTLE_TRANSIT_DURATION_RETURN
|
||||
escape_pods += pod
|
||||
|
||||
pod = new()
|
||||
@@ -55,7 +49,8 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
|
||||
pod.area_station = locate(/area/shuttle/escape_pod3/station)
|
||||
pod.area_offsite = locate(/area/shuttle/escape_pod3/centcom)
|
||||
pod.area_transition = locate(/area/shuttle/escape_pod3/transit)
|
||||
pod.travel_time = SHUTTLE_TRANSIT_DURATION_RETURN
|
||||
pod.transit_direction = EAST
|
||||
pod.move_time = SHUTTLE_TRANSIT_DURATION_RETURN
|
||||
escape_pods += pod
|
||||
|
||||
//There is no pod 4, apparently.
|
||||
@@ -66,7 +61,8 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
|
||||
pod.area_station = locate(/area/shuttle/escape_pod5/station)
|
||||
pod.area_offsite = locate(/area/shuttle/escape_pod5/centcom)
|
||||
pod.area_transition = locate(/area/shuttle/escape_pod5/transit)
|
||||
pod.travel_time = SHUTTLE_TRANSIT_DURATION_RETURN
|
||||
pod.transit_direction = EAST //should this be WEST? I have no idea.
|
||||
pod.move_time = SHUTTLE_TRANSIT_DURATION_RETURN
|
||||
escape_pods += pod
|
||||
|
||||
|
||||
@@ -187,9 +183,9 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle
|
||||
/datum/emergency_shuttle_controller/proc/estimate_arrival_time()
|
||||
var/eta
|
||||
if (isnull(shuttle.last_move_time))
|
||||
eta = launch_time + shuttle.travel_time*10
|
||||
eta = launch_time + shuttle.move_time*10
|
||||
else
|
||||
eta = shuttle.last_move_time + shuttle.travel_time*10
|
||||
eta = shuttle.last_move_time + shuttle.move_time*10
|
||||
return (eta - world.time)/10
|
||||
|
||||
//returns the time left until the shuttle launches, in seconds
|
||||
|
||||
@@ -26,7 +26,8 @@ var/global/datum/shuttle_controller/shuttle_controller
|
||||
shuttle.area_offsite = locate(/area/shuttle/escape/centcom)
|
||||
shuttle.area_station = locate(/area/shuttle/escape/station)
|
||||
shuttle.area_transition = locate(/area/shuttle/escape/transit)
|
||||
shuttle.travel_time = 300
|
||||
shuttle.transit_direction = NORTH
|
||||
shuttle.move_time = 300
|
||||
//shuttle.docking_controller_tag = "supply_shuttle"
|
||||
//shuttle.dock_target_station = "cargo_bay"
|
||||
shuttles["Escape"] = shuttle
|
||||
|
||||
@@ -22,7 +22,8 @@
|
||||
move(origin, destination)
|
||||
moving_status = SHUTTLE_IDLE
|
||||
|
||||
/datum/shuttle/proc/long_jump(var/area/departing,var/area/destination,var/area/interim,var/travel_time)
|
||||
/datum/shuttle/proc/long_jump(var/area/departing, var/area/destination, var/area/interim, var/travel_time, var/direction)
|
||||
//world << "shuttle/long_jump: departing=[departing], destination=[destination], interim=[interim], travel_time=[travel_time]"
|
||||
if(moving_status != SHUTTLE_IDLE) return
|
||||
|
||||
//it would be cool to play a sound here
|
||||
@@ -31,11 +32,11 @@
|
||||
if (moving_status == SHUTTLE_IDLE)
|
||||
return //someone cancelled the launch
|
||||
|
||||
move(departing, interim)
|
||||
move(departing, interim, direction)
|
||||
|
||||
sleep(travel_time*10)
|
||||
|
||||
move(interim, destination)
|
||||
move(interim, destination, direction)
|
||||
|
||||
moving_status = SHUTTLE_IDLE
|
||||
|
||||
@@ -65,7 +66,7 @@
|
||||
return 0
|
||||
|
||||
//just moves the shuttle from A to B, if it can be moved
|
||||
/datum/shuttle/proc/move(var/area/origin,var/area/destination)
|
||||
/datum/shuttle/proc/move(var/area/origin, var/area/destination, var/direction=null)
|
||||
|
||||
//world << "move_shuttle() called for [shuttle_tag] leaving [origin] en route to [destination]."
|
||||
|
||||
@@ -99,7 +100,7 @@
|
||||
for(var/mob/living/simple_animal/pest in destination)
|
||||
pest.gib()
|
||||
|
||||
origin.move_contents_to(destination) //might need to use the "direction" argument here, I dunno.
|
||||
origin.move_contents_to(destination, direction=direction)
|
||||
|
||||
for(var/mob/M in destination)
|
||||
if(M.client)
|
||||
|
||||
@@ -1,162 +1,3 @@
|
||||
#define IDLE_STATE 0
|
||||
#define WAIT_LAUNCH 1
|
||||
#define WAIT_ARRIVE 2
|
||||
#define WAIT_FINISH 3
|
||||
|
||||
|
||||
/datum/shuttle/ferry
|
||||
var/location = 0 //0 = at area_station, 1 = at area_offsite
|
||||
var/direction = 0 //0 = going to station, 1 = going to offsite.
|
||||
var/process_state = IDLE_STATE
|
||||
|
||||
var/in_use = null //tells the controller whether this shuttle needs processing
|
||||
|
||||
var/area_transition
|
||||
var/travel_time = 0
|
||||
|
||||
var/area_station
|
||||
var/area_offsite
|
||||
//TODO: change location to a string and use a mapping for area and dock targets.
|
||||
var/dock_target_station
|
||||
var/dock_target_offsite
|
||||
|
||||
/datum/shuttle/ferry/short_jump(var/area/origin,var/area/destination)
|
||||
if(isnull(location))
|
||||
return
|
||||
|
||||
if(!destination)
|
||||
destination = get_location_area(!location)
|
||||
if(!origin)
|
||||
origin = get_location_area(location)
|
||||
|
||||
direction = !location
|
||||
..(origin, destination)
|
||||
|
||||
/datum/shuttle/ferry/long_jump(var/area/departing,var/area/destination,var/area/interim,var/travel_time)
|
||||
if(isnull(location))
|
||||
return
|
||||
|
||||
if(!destination)
|
||||
destination = get_location_area(!location)
|
||||
if(!departing)
|
||||
departing = get_location_area(location)
|
||||
|
||||
direction = !location
|
||||
..(departing, destination, interim, travel_time)
|
||||
|
||||
/datum/shuttle/ferry/move(var/area/origin,var/area/destination)
|
||||
if(!destination)
|
||||
destination = get_location_area(!location)
|
||||
if(!origin)
|
||||
origin = get_location_area(location)
|
||||
|
||||
if (docking_controller && !docking_controller.undocked())
|
||||
docking_controller.force_undock()
|
||||
..(origin, destination)
|
||||
|
||||
|
||||
if (destination == area_station) location = 0
|
||||
if (destination == area_offsite) location = 1
|
||||
//if this is a long_jump retain the location we were last at until we get to the new one
|
||||
|
||||
/datum/shuttle/ferry/proc/get_location_area(location_id = null)
|
||||
if (isnull(location_id))
|
||||
location_id = location
|
||||
|
||||
if (!location_id)
|
||||
return area_station
|
||||
return area_offsite
|
||||
|
||||
/datum/shuttle/ferry/proc/process()
|
||||
switch(process_state)
|
||||
if (WAIT_LAUNCH)
|
||||
if (skip_docking_checks() || docking_controller.can_launch())
|
||||
|
||||
if (travel_time && area_transition)
|
||||
long_jump(interim=area_transition, travel_time=travel_time)
|
||||
else
|
||||
short_jump()
|
||||
|
||||
process_state = WAIT_ARRIVE
|
||||
if (WAIT_ARRIVE)
|
||||
if (moving_status == SHUTTLE_IDLE)
|
||||
dock()
|
||||
process_state = WAIT_FINISH
|
||||
if (WAIT_FINISH)
|
||||
if (skip_docking_checks() || docking_controller.docked())
|
||||
process_state = IDLE_STATE
|
||||
in_use = null //release lock
|
||||
arrived()
|
||||
|
||||
/datum/shuttle/ferry/current_dock_target()
|
||||
var/dock_target
|
||||
if (!location) //station
|
||||
dock_target = dock_target_station
|
||||
else
|
||||
dock_target = dock_target_offsite
|
||||
return dock_target
|
||||
|
||||
|
||||
/datum/shuttle/ferry/proc/launch(var/user)
|
||||
if (!can_launch()) return
|
||||
|
||||
in_use = user //obtain an exclusive lock on the shuttle
|
||||
|
||||
process_state = WAIT_LAUNCH
|
||||
undock()
|
||||
|
||||
/datum/shuttle/ferry/proc/force_launch(var/user)
|
||||
if (!can_force()) return
|
||||
|
||||
in_use = user //obtain an exclusive lock on the shuttle
|
||||
|
||||
if (travel_time && area_transition)
|
||||
long_jump(null, null, area_transition, travel_time)
|
||||
else
|
||||
short_jump()
|
||||
|
||||
|
||||
process_state = WAIT_ARRIVE
|
||||
|
||||
/datum/shuttle/ferry/proc/cancel_launch(var/user)
|
||||
if (!can_cancel()) return
|
||||
|
||||
moving_status = SHUTTLE_IDLE
|
||||
process_state = WAIT_FINISH
|
||||
|
||||
if (docking_controller && !docking_controller.undocked())
|
||||
docking_controller.force_undock()
|
||||
|
||||
spawn(10)
|
||||
dock()
|
||||
|
||||
return
|
||||
|
||||
/datum/shuttle/ferry/proc/can_launch()
|
||||
if (moving_status != SHUTTLE_IDLE)
|
||||
return 0
|
||||
|
||||
if (in_use)
|
||||
return 0
|
||||
|
||||
return 1
|
||||
|
||||
/datum/shuttle/ferry/proc/can_force()
|
||||
if (moving_status == SHUTTLE_IDLE && process_state == WAIT_LAUNCH)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/datum/shuttle/ferry/proc/can_cancel()
|
||||
if (moving_status == SHUTTLE_WARMUP || process_state == WAIT_LAUNCH)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
//This gets called when the shuttle finishes arriving at it's destination
|
||||
//This can be used by subtypes to do things when the shuttle arrives.
|
||||
/datum/shuttle/ferry/proc/arrived()
|
||||
return //do nothing for now
|
||||
|
||||
|
||||
/obj/machinery/computer/shuttle_control
|
||||
name = "shuttle control console"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
@@ -252,4 +93,3 @@
|
||||
|
||||
/obj/machinery/computer/shuttle_control/bullet_act(var/obj/item/projectile/Proj)
|
||||
visible_message("[Proj] ricochets off [src]!")
|
||||
|
||||
|
||||
@@ -5,34 +5,25 @@
|
||||
/datum/shuttle/ferry/emergency/arrived()
|
||||
emergency_shuttle.shuttle_arrived()
|
||||
|
||||
/datum/shuttle/ferry/emergency/long_jump(var/area/departing,var/area/destination,var/area/interim,var/travel_time)
|
||||
/datum/shuttle/ferry/emergency/long_jump(var/area/departing, var/area/destination, var/area/interim, var/travel_time, var/direction)
|
||||
//world << "shuttle/ferry/emergency/long_jump: departing=[departing], destination=[destination], interim=[interim], travel_time=[travel_time]"
|
||||
if (!location)
|
||||
travel_time = SHUTTLE_TRANSIT_DURATION_RETURN
|
||||
else
|
||||
travel_time = SHUTTLE_TRANSIT_DURATION
|
||||
|
||||
//update move_time so we get correct ETAs
|
||||
move_time = travel_time
|
||||
|
||||
..()
|
||||
|
||||
/*
|
||||
/area/shuttle/escape/centcom/verb/shuttle_long_jump(var/area/A as area, var/area/B as area, var/area/I as area, var/travel_time as num)
|
||||
set category = "Debug"
|
||||
//set src in world
|
||||
var/datum/shuttle/ferry/emergency/E = shuttle_controller.shuttles["Escape"]
|
||||
E.long_jump(A, B, I, travel_time)
|
||||
|
||||
/area/shuttle/escape/centcom/verb/shuttle_move(var/area/A as area, var/area/B as area)
|
||||
set category = "Debug"
|
||||
//set src in world
|
||||
var/datum/shuttle/ferry/emergency/E = shuttle_controller.shuttles["Escape"]
|
||||
E.long_jump(A, B)
|
||||
*/
|
||||
|
||||
/datum/shuttle/ferry/emergency/move(var/area/origin,var/area/destination)
|
||||
if (destination == area_transition)
|
||||
last_move_time = world.time
|
||||
else
|
||||
last_move_time = null
|
||||
|
||||
if (!location) //leaving the station
|
||||
if (origin == area_station) //leaving the station
|
||||
emergency_shuttle.departed = 1
|
||||
captain_announce("The Emergency Shuttle has left the station. Estimate [round(emergency_shuttle.estimate_arrival_time()/60,1)] minutes until the shuttle docks at Central Command.")
|
||||
..(origin, destination)
|
||||
@@ -174,11 +165,11 @@
|
||||
for (var/dna_hash in authorized)
|
||||
auth_list[i++] = list("auth_name"=authorized[dna_hash], "auth_hash"=dna_hash)
|
||||
|
||||
while (i <= req_authorizations) //for some reason dream maker gives warnings if you use for(; i <= req_authorizations; i++) here.
|
||||
auth_list[i++] = list("auth_name"="", "auth_hash"=-1)
|
||||
while (i <= req_authorizations) //fill up the rest of the list with blank entries
|
||||
auth_list[i++] = list("auth_name"="", "auth_hash"=null)
|
||||
else
|
||||
for (var/i = 1; i <= req_authorizations; i++)
|
||||
auth_list[i] = list("auth_name"="<font color=\"red\">ERROR</font>", "auth_hash"=-1)
|
||||
auth_list[i] = list("auth_name"="<font color=\"red\">ERROR</font>", "auth_hash"=null)
|
||||
|
||||
var/has_auth = has_authorization()
|
||||
|
||||
@@ -209,6 +200,8 @@
|
||||
return
|
||||
|
||||
if(href_list["auth"])
|
||||
/*
|
||||
//This doesn't work at all.
|
||||
if (!emagged && href_list["auth"] == -1)
|
||||
//They selected an empty entry. Try to scan their id.
|
||||
if (ishuman(usr))
|
||||
@@ -216,9 +209,10 @@
|
||||
if (!read_authorization(H.get_active_hand())) //try to read what's in their hand first
|
||||
read_authorization(H.wear_id)
|
||||
else
|
||||
//remove the authorization
|
||||
var/dna_hash = href_list["auth"]
|
||||
authorized -= dna_hash
|
||||
*/
|
||||
//remove the authorization
|
||||
var/dna_hash = href_list["auth"]
|
||||
authorized -= dna_hash
|
||||
|
||||
|
||||
|
||||
|
||||
161
code/modules/shuttles/shuttle_ferry.dm
Normal file
161
code/modules/shuttles/shuttle_ferry.dm
Normal file
@@ -0,0 +1,161 @@
|
||||
#define IDLE_STATE 0
|
||||
#define WAIT_LAUNCH 1
|
||||
#define WAIT_ARRIVE 2
|
||||
#define WAIT_FINISH 3
|
||||
|
||||
|
||||
/datum/shuttle/ferry
|
||||
var/location = 0 //0 = at area_station, 1 = at area_offsite
|
||||
var/direction = 0 //0 = going to station, 1 = going to offsite.
|
||||
var/process_state = IDLE_STATE
|
||||
|
||||
var/in_use = null //tells the controller whether this shuttle needs processing
|
||||
|
||||
var/area_transition
|
||||
var/move_time = 0 //the time spent in the transition area
|
||||
var/transit_direction = null //needed for area/move_contents_to() to properly handle shuttle corners - not exactly sure how it works.
|
||||
|
||||
var/area_station
|
||||
var/area_offsite
|
||||
//TODO: change location to a string and use a mapping for area and dock targets.
|
||||
var/dock_target_station
|
||||
var/dock_target_offsite
|
||||
|
||||
/datum/shuttle/ferry/short_jump(var/area/origin,var/area/destination)
|
||||
if(isnull(location))
|
||||
return
|
||||
|
||||
if(!destination)
|
||||
destination = get_location_area(!location)
|
||||
if(!origin)
|
||||
origin = get_location_area(location)
|
||||
|
||||
direction = !location
|
||||
..(origin, destination)
|
||||
|
||||
/datum/shuttle/ferry/long_jump(var/area/departing, var/area/destination, var/area/interim, var/travel_time, var/direction)
|
||||
//world << "shuttle/ferry/long_jump: departing=[departing], destination=[destination], interim=[interim], travel_time=[travel_time]"
|
||||
if(isnull(location))
|
||||
return
|
||||
|
||||
if(!destination)
|
||||
destination = get_location_area(!location)
|
||||
if(!departing)
|
||||
departing = get_location_area(location)
|
||||
|
||||
direction = !location
|
||||
..(departing, destination, interim, travel_time, direction)
|
||||
|
||||
/datum/shuttle/ferry/move(var/area/origin,var/area/destination)
|
||||
if(!destination)
|
||||
destination = get_location_area(!location)
|
||||
if(!origin)
|
||||
origin = get_location_area(location)
|
||||
|
||||
if (docking_controller && !docking_controller.undocked())
|
||||
docking_controller.force_undock()
|
||||
..(origin, destination)
|
||||
|
||||
|
||||
if (destination == area_station) location = 0
|
||||
if (destination == area_offsite) location = 1
|
||||
//if this is a long_jump retain the location we were last at until we get to the new one
|
||||
|
||||
/datum/shuttle/ferry/proc/get_location_area(location_id = null)
|
||||
if (isnull(location_id))
|
||||
location_id = location
|
||||
|
||||
if (!location_id)
|
||||
return area_station
|
||||
return area_offsite
|
||||
|
||||
/datum/shuttle/ferry/proc/process()
|
||||
switch(process_state)
|
||||
if (WAIT_LAUNCH)
|
||||
if (skip_docking_checks() || docking_controller.can_launch())
|
||||
|
||||
//world << "shuttle/ferry/process: area_transition=[area_transition], travel_time=[travel_time]"
|
||||
if (move_time && area_transition)
|
||||
long_jump(interim=area_transition, travel_time=move_time, direction=transit_direction)
|
||||
else
|
||||
short_jump()
|
||||
|
||||
process_state = WAIT_ARRIVE
|
||||
if (WAIT_ARRIVE)
|
||||
if (moving_status == SHUTTLE_IDLE)
|
||||
dock()
|
||||
process_state = WAIT_FINISH
|
||||
if (WAIT_FINISH)
|
||||
if (skip_docking_checks() || docking_controller.docked())
|
||||
process_state = IDLE_STATE
|
||||
in_use = null //release lock
|
||||
arrived()
|
||||
|
||||
/datum/shuttle/ferry/current_dock_target()
|
||||
var/dock_target
|
||||
if (!location) //station
|
||||
dock_target = dock_target_station
|
||||
else
|
||||
dock_target = dock_target_offsite
|
||||
return dock_target
|
||||
|
||||
|
||||
/datum/shuttle/ferry/proc/launch(var/user)
|
||||
if (!can_launch()) return
|
||||
|
||||
in_use = user //obtain an exclusive lock on the shuttle
|
||||
|
||||
process_state = WAIT_LAUNCH
|
||||
undock()
|
||||
|
||||
/datum/shuttle/ferry/proc/force_launch(var/user)
|
||||
if (!can_force()) return
|
||||
|
||||
in_use = user //obtain an exclusive lock on the shuttle
|
||||
|
||||
if (move_time && area_transition)
|
||||
long_jump(interim=area_transition, travel_time=move_time, direction=transit_direction)
|
||||
else
|
||||
short_jump()
|
||||
|
||||
|
||||
process_state = WAIT_ARRIVE
|
||||
|
||||
/datum/shuttle/ferry/proc/cancel_launch(var/user)
|
||||
if (!can_cancel()) return
|
||||
|
||||
moving_status = SHUTTLE_IDLE
|
||||
process_state = WAIT_FINISH
|
||||
|
||||
if (docking_controller && !docking_controller.undocked())
|
||||
docking_controller.force_undock()
|
||||
|
||||
spawn(10)
|
||||
dock()
|
||||
|
||||
return
|
||||
|
||||
/datum/shuttle/ferry/proc/can_launch()
|
||||
if (moving_status != SHUTTLE_IDLE)
|
||||
return 0
|
||||
|
||||
if (in_use)
|
||||
return 0
|
||||
|
||||
return 1
|
||||
|
||||
/datum/shuttle/ferry/proc/can_force()
|
||||
if (moving_status == SHUTTLE_IDLE && process_state == WAIT_LAUNCH)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/datum/shuttle/ferry/proc/can_cancel()
|
||||
if (moving_status == SHUTTLE_WARMUP || process_state == WAIT_LAUNCH)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
//This gets called when the shuttle finishes arriving at it's destination
|
||||
//This can be used by subtypes to do things when the shuttle arrives.
|
||||
/datum/shuttle/ferry/proc/arrived()
|
||||
return //do nothing for now
|
||||
|
||||
@@ -58,9 +58,6 @@
|
||||
if (!at_station()) //at centcom
|
||||
supply_controller.sell()
|
||||
|
||||
/datum/shuttle/ferry/supply/long_jump(var/area/departing,var/area/destination,var/area/interim,var/travel_time)
|
||||
short_jump(departing, destination) //long jumps are disabled
|
||||
|
||||
// returns 1 if the supply shuttle should be prevented from moving because it contains forbidden atoms
|
||||
/datum/shuttle/ferry/supply/proc/forbidden_atoms_check()
|
||||
if (!at_station())
|
||||
|
||||
@@ -73,7 +73,6 @@
|
||||
user << browse("[dat]", "window=[shuttle_tag]shuttlecontrol;size=300x600")
|
||||
|
||||
/obj/machinery/computer/shuttle_control/multi/Topic(href, href_list)
|
||||
|
||||
if(..())
|
||||
return
|
||||
|
||||
@@ -83,6 +82,8 @@
|
||||
var/datum/shuttle/multi_shuttle/MS = shuttle_controller.shuttles[shuttle_tag]
|
||||
if(!istype(MS)) return
|
||||
|
||||
//world << "multi_shuttle: last_departed=[MS.last_departed], origin=[MS.origin], interim=[MS.interim], travel_time=[MS.move_time]"
|
||||
|
||||
if (MS.moving_status != SHUTTLE_IDLE)
|
||||
usr << "\blue [shuttle_tag] vessel is moving."
|
||||
return
|
||||
|
||||
@@ -762,7 +762,26 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse
|
||||
#define COLOR_ORANGE "#FF9900"
|
||||
#define COLOR_WHITE "#FFFFFF"
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Shuttles
|
||||
*/
|
||||
|
||||
// these define the time taken for the shuttle to get to SS13
|
||||
// and the time before it leaves again
|
||||
#define SHUTTLE_PREPTIME 300 // 5 minutes = 300 seconds - after this time, the shuttle departs centcom and cannot be recalled
|
||||
#define SHUTTLE_LEAVETIME 180 // 3 minutes = 180 seconds - the duration for which the shuttle will wait at the station after arriving
|
||||
#define SHUTTLE_TRANSIT_DURATION 300 // 5 minutes = 300 seconds - how long it takes for the shuttle to get to the station
|
||||
#define SHUTTLE_TRANSIT_DURATION_RETURN 120 // 2 minutes = 120 seconds - for some reason it takes less time to come back, go figure.
|
||||
|
||||
//Shuttle moving status
|
||||
#define SHUTTLE_IDLE 0
|
||||
#define SHUTTLE_WARMUP 1
|
||||
#define SHUTTLE_INTRANSIT 2
|
||||
|
||||
//Ferry shuttle processing status
|
||||
#define IDLE_STATE 0
|
||||
#define WAIT_LAUNCH 1
|
||||
#define WAIT_ARRIVE 2
|
||||
#define WAIT_FINISH 3
|
||||
|
||||
Reference in New Issue
Block a user