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 = "
[shuttle_tag] Ship Control
" + if(shuttles.moving[shuttle_tag]) dat += "Location: Moving
" else var/area/areacheck = get_area(src) dat += "Location: [areacheck.name]
" - dat += "Toggle cloaking field
" + if((MS.last_move + MS.cooldown) > world.time) + dat += "Engines charging.
" + else + dat += "Engines ready.
" + + dat += "
Toggle cloaking field
" dat += "Move ship
" dat += "Return to base
" - user << browse("[dat]", "window=[shuttle_tag]shuttlecontrol;size=220x220") + user << browse("[dat]", "window=[shuttle_tag]shuttlecontrol;size=300x600") /obj/machinery/computer/shuttle_control/multi/Topic(href, href_list) @@ -73,6 +83,10 @@ usr << "\blue [shuttle_tag] vessel is moving." return + if((MS.last_move + MS.cooldown) > world.time) + usr << "\red The ship is inoperable while the engines are charging." + return + if(href_list["start"]) if(MS.at_origin) @@ -121,4 +135,4 @@ shuttles.move_shuttle(shuttle_tag,locate(MS.last_departed),locate(MS.destinations[choice])) MS.last_departed = MS.destinations[choice] - updateUsrDialog() + updateUsrDialog() \ No newline at end of file