diff --git a/baystation12.dme b/baystation12.dme
index b201b78fb7..555902d5bb 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -372,7 +372,6 @@
#include "code\game\machinery\computer\skills.dm"
#include "code\game\machinery\computer\specops_shuttle.dm"
#include "code\game\machinery\computer\station_alert.dm"
-#include "code\game\machinery\computer\syndicate_shuttle.dm"
#include "code\game\machinery\computer\syndicate_specops_shuttle.dm"
#include "code\game\machinery\doors\airlock.dm"
#include "code\game\machinery\doors\airlock_electronics.dm"
diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm
index a58e8b553f..f060697b36 100644
--- a/code/game/gamemodes/nuclear/nuclearbomb.dm
+++ b/code/game/gamemodes/nuclear/nuclearbomb.dm
@@ -404,7 +404,7 @@ obj/machinery/nuclearbomb/proc/nukehack_win(mob/user as mob)
if(ticker)
if(ticker.mode && ticker.mode.name == "nuclear emergency")
- var/obj/machinery/computer/syndicate_station/syndie_location = locate(/obj/machinery/computer/syndicate_station)
+ var/obj/machinery/computer/shuttle_control/multi/syndicate/syndie_location = locate(/obj/machinery/computer/shuttle_control/multi/syndicate)
if(syndie_location)
ticker.mode:syndies_didnt_escape = (syndie_location.z > 1 ? 0 : 1) //muskets will make me change this, but it will do for now
ticker.mode:nuke_off_station = off_station
diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm
index 24f2353b8e..51a5c888d7 100644
--- a/code/game/gamemodes/nuclear/pinpointer.dm
+++ b/code/game/gamemodes/nuclear/pinpointer.dm
@@ -179,8 +179,7 @@
/obj/item/weapon/pinpointer/nukeop
var/mode = 0 //Mode 0 locates disk, mode 1 locates the shuttle
- var/obj/machinery/computer/syndicate_station/home = null
-
+ var/obj/machinery/computer/shuttle_control/multi/syndicate/home = null
/obj/item/weapon/pinpointer/nukeop/attack_self(mob/user as mob)
if(!active)
diff --git a/code/game/machinery/computer/syndicate_shuttle.dm b/code/game/machinery/computer/syndicate_shuttle.dm
deleted file mode 100644
index 681fc65fe9..0000000000
--- a/code/game/machinery/computer/syndicate_shuttle.dm
+++ /dev/null
@@ -1,104 +0,0 @@
-#define SYNDICATE_SHUTTLE_MOVE_TIME 240
-#define SYNDICATE_SHUTTLE_COOLDOWN 200
-
-/obj/machinery/computer/syndicate_station
- name = "syndicate shuttle terminal"
- icon = 'icons/obj/computer.dmi'
- icon_state = "syndishuttle"
- req_access = list(access_syndicate)
- var/area/curr_location
- var/moving = 0
- var/lastMove = 0
-
-
-/obj/machinery/computer/syndicate_station/New()
- curr_location= locate(/area/syndicate_station/start)
-
-
-/obj/machinery/computer/syndicate_station/proc/syndicate_move_to(area/destination as area)
- if(moving) return
- if(lastMove + SYNDICATE_SHUTTLE_COOLDOWN > world.time) return
- var/area/dest_location = locate(destination)
- if(curr_location == dest_location) return
-
- moving = 1
- lastMove = world.time
-
- if(curr_location.z != dest_location.z)
- var/area/transit_location = locate(/area/syndicate_station/transit)
- curr_location.move_contents_to(transit_location)
- curr_location = transit_location
- sleep(SYNDICATE_SHUTTLE_MOVE_TIME)
-
- curr_location.move_contents_to(dest_location)
- curr_location = dest_location
- moving = 0
- return 1
-
-
-/obj/machinery/computer/syndicate_station/attackby(obj/item/I as obj, mob/user as mob)
- return attack_hand(user)
-
-/obj/machinery/computer/syndicate_station/attack_ai(mob/user as mob)
- return attack_hand(user)
-
-/obj/machinery/computer/syndicate_station/attack_paw(mob/user as mob)
- return attack_hand(user)
-
-/obj/machinery/computer/syndicate_station/attack_hand(mob/user as mob)
- if(!allowed(user))
- user << "\red Access Denied"
- return
-
- user.set_machine(src)
-
- var/dat = {"Location: [curr_location]
- Ready to move[max(lastMove + SYNDICATE_SHUTTLE_COOLDOWN - world.time, 0) ? " in [max(round((lastMove + SYNDICATE_SHUTTLE_COOLDOWN - world.time) * 0.1), 0)] seconds" : ": now"]
- Syndicate Space
- North West of SS13 |
- North of SS13 |
- North East of SS13
- South West of SS13 |
- South of SS13 |
- South East of SS13
- South of the Communication Satellite |
- North East of the Mining Asteroid
- Close"}
-
- user << browse(dat, "window=computer;size=575x450")
- onclose(user, "computer")
- return
-
-
-/obj/machinery/computer/syndicate_station/Topic(href, href_list)
- if(!isliving(usr)) return
- var/mob/living/user = usr
-
- if(in_range(src, user) || istype(user, /mob/living/silicon))
- user.set_machine(src)
-
- if(href_list["syndicate"])
- syndicate_move_to(/area/syndicate_station/start)
- else if(href_list["station_nw"])
- syndicate_move_to(/area/syndicate_station/northwest)
- else if(href_list["station_n"])
- syndicate_move_to(/area/syndicate_station/north)
- else if(href_list["station_ne"])
- syndicate_move_to(/area/syndicate_station/northeast)
- else if(href_list["station_sw"])
- syndicate_move_to(/area/syndicate_station/southwest)
- else if(href_list["station_s"])
- syndicate_move_to(/area/syndicate_station/south)
- else if(href_list["station_se"])
- syndicate_move_to(/area/syndicate_station/southeast)
- else if(href_list["commssat"])
- syndicate_move_to(/area/syndicate_station/commssat)
- else if(href_list["mining"])
- syndicate_move_to(/area/syndicate_station/mining)
-
- add_fingerprint(usr)
- updateUsrDialog()
- return
-
-/obj/machinery/computer/syndicate_station/bullet_act(var/obj/item/projectile/Proj)
- visible_message("[Proj] ricochets off [src]!") //let's not let them fuck themselves in the rear
\ No newline at end of file
diff --git a/code/modules/shuttles/shuttle.dm b/code/modules/shuttles/shuttle.dm
index 9bc6ac7dde..6dd4186d34 100644
--- a/code/modules/shuttles/shuttle.dm
+++ b/code/modules/shuttles/shuttle.dm
@@ -82,16 +82,21 @@ var/global/datum/shuttle_controller/shuttles
MS.origin = /area/syndicate_station/start
MS.destinations = list(
- "NW" = /area/syndicate_station/northwest,
- "N" = /area/syndicate_station/north,
- "NE" = /area/syndicate_station/northeast,
- "SW" = /area/syndicate_station/southwest,
- "S" = /area/syndicate_station/south,
- "SE" = /area/syndicate_station/southeast,
- "Telecomms" = /area/syndicate_station/commssat,
- "Mining" = /area/syndicate_station/mining
+ "Northwest of the station" = /area/syndicate_station/northwest,
+ "North of the station" = /area/syndicate_station/north,
+ "Northeast of the station" = /area/syndicate_station/northeast,
+ "Southwest of the station" = /area/syndicate_station/southwest,
+ "South of the station" = /area/syndicate_station/south,
+ "Southeast of the station" = /area/syndicate_station/southeast,
+ "Telecomms Satellite" = /area/syndicate_station/commssat,
+ "Mining Asteroid" = /area/syndicate_station/mining
)
+ MS.announcer = "NSV Icarus"
+ MS.arrival_message = "Attention, Exodus, you have a large signature approaching the station - looks unarmed to surface scans. We're too far out to intercept - brace for visitors."
+ MS.departure_message = "Your visitors are on their way out of the system, Exodus, burning delta-v like it's nothing. Good riddance."
+ MS.interim = /area/syndicate_station/transit
+
multi_shuttles["Syndicate"] = MS
locations["Syndicate"] = 1
delays["Syndicate"] = 10
@@ -159,11 +164,12 @@ var/global/datum/shuttle_controller/shuttles
for(var/mob/M in area_going_to)
if(M.client)
- M << "\red The ship lurches beneath you!"
spawn(0)
if(M.buckled)
+ M << "\red Sudden acceleration presses you into your chair!"
shake_camera(M, 3, 1)
else
+ M << "\red The ship lurches beneath you!"
shake_camera(M, 10, 1)
if(istype(M, /mob/living/carbon))
if(!M.buckled)
@@ -237,4 +243,7 @@ var/global/datum/shuttle_controller/shuttles
hacked = 1
usr << "You short out the console's ID checking system. It's now available to everyone!"
else
- ..()
\ No newline at end of file
+ ..()
+
+/obj/machinery/computer/shuttle_control/bullet_act(var/obj/item/projectile/Proj)
+ visible_message("[Proj] ricochets off [src]!")
\ No newline at end of file
diff --git a/code/modules/shuttles/shuttles_multi.dm b/code/modules/shuttles/shuttles_multi.dm
index 63a9a99cfc..597458fc67 100644
--- a/code/modules/shuttles/shuttles_multi.dm
+++ b/code/modules/shuttles/shuttles_multi.dm
@@ -5,6 +5,7 @@
var/at_origin = 1
var/move_time = 240
var/cooldown = 200
+ var/last_move = 0
var/announcer
var/arrival_message
@@ -42,21 +43,30 @@
if(..(user))
return
src.add_fingerprint(user)
- var/dat
+ var/datum/multi_shuttle/MS = shuttles.multi_shuttles[shuttle_tag]
+ if(!istype(MS)) return
+
+ var/dat
dat = "