mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-21 12:04:48 +01:00
Moved engineering, research and mining shuttles to a generalized system with its own directory structure.
Conflicts: baystation12.dme code/modules/mining/mine_items.dm code/modules/research/research_shuttle.dm
This commit is contained in:
+3
-1
@@ -1350,7 +1350,6 @@
|
||||
#include "code\modules\research\rdconsole.dm"
|
||||
#include "code\modules\research\rdmachines.dm"
|
||||
#include "code\modules\research\research.dm"
|
||||
#include "code\modules\research\research_shuttle.dm"
|
||||
#include "code\modules\research\server.dm"
|
||||
#include "code\modules\research\xenoarchaeology\areas.dm"
|
||||
#include "code\modules\research\xenoarchaeology\chemistry.dm"
|
||||
@@ -1435,6 +1434,9 @@
|
||||
#include "code\modules\security levels\keycard authentication.dm"
|
||||
#include "code\modules\security levels\security levels.dm"
|
||||
#include "code\modules\shuttles\engineering.dm"
|
||||
#include "code\modules\shuttles\mining.dm"
|
||||
#include "code\modules\shuttles\research.dm"
|
||||
#include "code\modules\shuttles\shuttle.dm"
|
||||
#include "code\modules\store\items.dm"
|
||||
#include "code\modules\store\store.dm"
|
||||
#include "code\modules\supermatter\supermatter.dm"
|
||||
|
||||
@@ -173,10 +173,7 @@
|
||||
build_path = "/obj/machinery/computer/supplycomp"
|
||||
origin_tech = "programming=3"
|
||||
var/contraband_enabled = 0
|
||||
/obj/item/weapon/circuitboard/research_shuttle
|
||||
name = "Circuit board (Research Shuttle)"
|
||||
build_path = "/obj/machinery/computer/research_shuttle"
|
||||
origin_tech = "programming=2"
|
||||
|
||||
/obj/item/weapon/circuitboard/operating
|
||||
name = "Circuit board (Operating Computer)"
|
||||
build_path = "/obj/machinery/computer/operating"
|
||||
@@ -200,20 +197,17 @@
|
||||
/obj/item/weapon/circuitboard/splicer
|
||||
name = "Circuit board (Disease Splicer)"
|
||||
build_path = "/obj/machinery/computer/diseasesplicer"
|
||||
|
||||
/obj/item/weapon/circuitboard/mining_shuttle
|
||||
name = "Circuit board (Mining Shuttle)"
|
||||
build_path = "/obj/machinery/computer/mining_shuttle"
|
||||
build_path = "/obj/machinery/computer/shuttle_control/mining"
|
||||
origin_tech = "programming=2"
|
||||
|
||||
/obj/item/weapon/circuitboard/engineering_shuttle
|
||||
name = "Circuit board (Engineering Shuttle)"
|
||||
build_path = "/obj/machinery/computer/engineering_shuttle"
|
||||
build_path = "/obj/machinery/computer/shuttle_control/engineering"
|
||||
origin_tech = "programming=2"
|
||||
|
||||
/obj/item/weapon/circuitboard/research_shuttle
|
||||
name = "Circuit board (Research Shuttle)"
|
||||
build_path = "/obj/machinery/computer/research_shuttle"
|
||||
build_path = "/obj/machinery/computer/shuttle_control/research"
|
||||
origin_tech = "programming=2"
|
||||
/obj/item/weapon/circuitboard/HolodeckControl // Not going to let people get this, but it's just here for future
|
||||
name = "Circuit board (Holodeck Control)"
|
||||
|
||||
@@ -2044,12 +2044,14 @@
|
||||
ticker.mode.finalize_traitor(A.mind)
|
||||
message_admins("\blue [key_name_admin(usr)] used everyone is a traitor secret. Objective is [objective]", 1)
|
||||
log_admin("[key_name(usr)] used everyone is a traitor secret. Objective is [objective]")
|
||||
|
||||
//TODO: Generalize admin shuttles, make 'Move Shuttle' adminverb.
|
||||
if("moveminingshuttle")
|
||||
if(mining_shuttle_moving)
|
||||
if(shuttle_moving["Mining"] || shuttle_moving["Mining"] == null)
|
||||
return
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","ShM")
|
||||
move_mining_shuttle()
|
||||
move_shuttle("Mining",locate(/area/shuttle/mining/outpost),locate(/area/shuttle/mining/station))
|
||||
message_admins("\blue [key_name_admin(usr)] moved mining shuttle", 1)
|
||||
log_admin("[key_name(usr)] moved the mining shuttle")
|
||||
if("moveadminshuttle")
|
||||
|
||||
@@ -38,125 +38,6 @@
|
||||
new /obj/item/clothing/glasses/meson(src)
|
||||
|
||||
|
||||
/**********************Shuttle Computer**************************/
|
||||
|
||||
var/mining_shuttle_tickstomove = 10
|
||||
var/mining_shuttle_moving = 0
|
||||
var/mining_shuttle_location = 0 // 0 = station 13, 1 = mining station
|
||||
|
||||
proc/move_mining_shuttle()
|
||||
if(mining_shuttle_moving) return
|
||||
mining_shuttle_moving = 1
|
||||
spawn(mining_shuttle_tickstomove*10)
|
||||
var/area/fromArea
|
||||
var/area/toArea
|
||||
if (mining_shuttle_location == 1)
|
||||
fromArea = locate(/area/shuttle/mining/outpost)
|
||||
toArea = locate(/area/shuttle/mining/station)
|
||||
|
||||
else
|
||||
fromArea = locate(/area/shuttle/mining/station)
|
||||
toArea = locate(/area/shuttle/mining/outpost)
|
||||
|
||||
var/list/dstturfs = list()
|
||||
var/throwy = world.maxy
|
||||
|
||||
for(var/turf/T in toArea)
|
||||
dstturfs += T
|
||||
if(T.y < throwy)
|
||||
throwy = T.y
|
||||
|
||||
// hey you, get out of the way!
|
||||
for(var/turf/T in dstturfs)
|
||||
// find the turf to move things to
|
||||
var/turf/D = locate(T.x, throwy - 1, 1)
|
||||
//var/turf/E = get_step(D, SOUTH)
|
||||
for(var/atom/movable/AM as mob|obj in T)
|
||||
AM.Move(D)
|
||||
// NOTE: Commenting this out to avoid recreating mass driver glitch
|
||||
/*
|
||||
spawn(0)
|
||||
AM.throw_at(E, 1, 1)
|
||||
return
|
||||
*/
|
||||
|
||||
if(istype(T, /turf/simulated))
|
||||
del(T)
|
||||
|
||||
//Do I really need to explain this loop?
|
||||
for(var/atom/A in toArea)
|
||||
if(istype(A,/mob/living))
|
||||
var/mob/living/unlucky_person = A
|
||||
unlucky_person.gib()
|
||||
// Weird things happen when this shit gets in the way.
|
||||
if(istype(A,/obj/structure/lattice) \
|
||||
|| istype(A, /obj/structure/window) \
|
||||
|| istype(A, /obj/structure/grille))
|
||||
qdel(A)
|
||||
|
||||
fromArea.move_contents_to(toArea)
|
||||
if (mining_shuttle_location)
|
||||
mining_shuttle_location = 0
|
||||
else
|
||||
mining_shuttle_location = 1
|
||||
|
||||
for(var/mob/M in toArea)
|
||||
if(M.client)
|
||||
spawn(0)
|
||||
if(M.buckled)
|
||||
shake_camera(M, 3, 1) // buckled, not a lot of shaking
|
||||
else
|
||||
shake_camera(M, 10, 1) // unbuckled, HOLY SHIT SHAKE THE ROOM
|
||||
if(istype(M, /mob/living/carbon))
|
||||
if(!M.buckled)
|
||||
M.Weaken(3)
|
||||
|
||||
mining_shuttle_moving = 0
|
||||
return
|
||||
|
||||
/obj/machinery/computer/mining_shuttle
|
||||
name = "mining shuttle console"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "shuttle"
|
||||
req_access = list(access_mining)
|
||||
circuit = "/obj/item/weapon/circuitboard/mining_shuttle"
|
||||
var/hacked = 0
|
||||
var/location = 0 //0 = station, 1 = mining base
|
||||
|
||||
/obj/machinery/computer/mining_shuttle/attack_hand(user as mob)
|
||||
if(..(user))
|
||||
return
|
||||
src.add_fingerprint(usr)
|
||||
var/dat
|
||||
dat = text("<center>Mining shuttle:<br> <b><A href='?src=\ref[src];move=[1]'>Send</A></b></center>")
|
||||
user << browse("[dat]", "window=miningshuttle;size=200x100")
|
||||
|
||||
/obj/machinery/computer/mining_shuttle/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
usr.set_machine(src)
|
||||
src.add_fingerprint(usr)
|
||||
if(href_list["move"])
|
||||
//if(ticker.mode.name == "blob")
|
||||
// if(ticker.mode:declared)
|
||||
// usr << "Under directive 7-10, [station_name()] is quarantined until further notice."
|
||||
// return
|
||||
|
||||
if (!mining_shuttle_moving)
|
||||
usr << "\blue Shuttle recieved message and will be sent shortly."
|
||||
move_mining_shuttle()
|
||||
else
|
||||
usr << "\blue Shuttle is already moving."
|
||||
|
||||
/obj/machinery/computer/mining_shuttle/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
|
||||
if (istype(W, /obj/item/weapon/card/emag))
|
||||
src.req_access = list()
|
||||
hacked = 1
|
||||
usr << "You fried the consoles ID checking system. It's now available to everyone!"
|
||||
else
|
||||
..()
|
||||
|
||||
/******************************Lantern*******************************/
|
||||
|
||||
/obj/item/device/flashlight/lantern
|
||||
|
||||
@@ -1,104 +0,0 @@
|
||||
|
||||
/**********************Shuttle Computer**************************/
|
||||
|
||||
//copy paste from the mining shuttle
|
||||
|
||||
var/research_shuttle_tickstomove = 10
|
||||
var/research_shuttle_moving = 0
|
||||
var/research_shuttle_location = 0 // 0 = station 13, 1 = research station
|
||||
|
||||
proc/move_research_shuttle()
|
||||
if(research_shuttle_moving) return
|
||||
research_shuttle_moving = 1
|
||||
spawn(research_shuttle_tickstomove*10)
|
||||
var/area/fromArea
|
||||
var/area/toArea
|
||||
if (research_shuttle_location == 1)
|
||||
fromArea = locate(/area/shuttle/research/outpost)
|
||||
toArea = locate(/area/shuttle/research/station)
|
||||
else
|
||||
fromArea = locate(/area/shuttle/research/station)
|
||||
toArea = locate(/area/shuttle/research/outpost)
|
||||
|
||||
|
||||
var/list/dstturfs = list()
|
||||
var/throwy = world.maxy
|
||||
|
||||
for(var/turf/T in toArea)
|
||||
dstturfs += T
|
||||
if(T.y < throwy)
|
||||
throwy = T.y
|
||||
|
||||
// hey you, get out of the way!
|
||||
for(var/turf/T in dstturfs)
|
||||
// find the turf to move things to
|
||||
var/turf/D = locate(T.x, throwy - 1, 1)
|
||||
//var/turf/E = get_step(D, SOUTH)
|
||||
for(var/atom/movable/AM as mob|obj in T)
|
||||
AM.Move(D)
|
||||
// NOTE: Commenting this out to avoid recreating mass driver glitch
|
||||
/*
|
||||
spawn(0)
|
||||
AM.throw_at(E, 1, 1)
|
||||
return
|
||||
*/
|
||||
|
||||
if(istype(T, /turf/simulated))
|
||||
del(T)
|
||||
|
||||
for(var/mob/living/carbon/bug in toArea) // If someone somehow is still in the shuttle's docking area...
|
||||
bug.gib()
|
||||
|
||||
for(var/mob/living/simple_animal/pest in toArea) // And for the other kind of bug...
|
||||
pest.gib()
|
||||
|
||||
fromArea.move_contents_to(toArea)
|
||||
if (research_shuttle_location)
|
||||
research_shuttle_location = 0
|
||||
else
|
||||
research_shuttle_location = 1
|
||||
research_shuttle_moving = 0
|
||||
return
|
||||
|
||||
/obj/machinery/computer/research_shuttle
|
||||
name = "Research Shuttle Console"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "shuttle"
|
||||
req_access = list(access_research)
|
||||
circuit = "/obj/item/weapon/circuitboard/research_shuttle"
|
||||
var/hacked = 0
|
||||
var/location = 0 //0 = station, 1 = research base
|
||||
|
||||
/obj/machinery/computer/research_shuttle/attack_hand(user as mob)
|
||||
src.add_fingerprint(usr)
|
||||
var/dat = "<center>Research shuttle: <b><A href='?src=\ref[src];move=1'>Send</A></b></center><br>"
|
||||
|
||||
user << browse("[dat]", "window=researchshuttle;size=200x100")
|
||||
|
||||
/obj/machinery/computer/research_shuttle/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
usr.machine = src
|
||||
src.add_fingerprint(usr)
|
||||
if(href_list["move"])
|
||||
|
||||
if (!research_shuttle_moving)
|
||||
usr << "\blue Shuttle recieved message and will be sent shortly."
|
||||
move_research_shuttle()
|
||||
else
|
||||
usr << "\blue Shuttle is already moving."
|
||||
|
||||
/obj/machinery/computer/research_shuttle/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
|
||||
if (istype(W, /obj/item/weapon/card/emag))
|
||||
var/obj/item/weapon/card/emag/E = W
|
||||
if(E.uses)
|
||||
E.uses--
|
||||
else
|
||||
return
|
||||
src.req_access = list()
|
||||
hacked = 1
|
||||
usr << "You fried the consoles ID checking system. It's now available to everyone!"
|
||||
|
||||
else
|
||||
..()
|
||||
@@ -1,108 +1,13 @@
|
||||
var/engineering_shuttle_tickstomove = 10
|
||||
var/engineering_shuttle_moving = 0
|
||||
var/engineering_shuttle_location = 1 //Starts at the construction site.
|
||||
|
||||
proc/move_engineering_shuttle()
|
||||
if(engineering_shuttle_moving) return
|
||||
engineering_shuttle_moving = 1
|
||||
spawn(engineering_shuttle_tickstomove*10)
|
||||
var/area/fromArea
|
||||
var/area/toArea
|
||||
if (engineering_shuttle_location == 1)
|
||||
fromArea = locate(/area/shuttle/constructionsite/site)
|
||||
toArea = locate(/area/shuttle/constructionsite/station)
|
||||
|
||||
else
|
||||
fromArea = locate(/area/shuttle/constructionsite/station)
|
||||
toArea = locate(/area/shuttle/constructionsite/site)
|
||||
|
||||
var/list/dstturfs = list()
|
||||
var/throwy = world.maxy
|
||||
|
||||
for(var/turf/T in toArea)
|
||||
dstturfs += T
|
||||
if(T.y < throwy)
|
||||
throwy = T.y
|
||||
|
||||
for(var/turf/T in dstturfs)
|
||||
var/turf/D = locate(T.x, throwy - 1, 1)
|
||||
for(var/atom/movable/AM as mob|obj in T)
|
||||
AM.Move(D)
|
||||
if(istype(T, /turf/simulated))
|
||||
del(T)
|
||||
|
||||
for(var/mob/living/carbon/bug in toArea)
|
||||
bug.gib()
|
||||
|
||||
for(var/mob/living/simple_animal/pest in toArea)
|
||||
pest.gib()
|
||||
|
||||
fromArea.move_contents_to(toArea)
|
||||
if (engineering_shuttle_location)
|
||||
engineering_shuttle_location = 0
|
||||
else
|
||||
engineering_shuttle_location = 1
|
||||
|
||||
for(var/mob/M in toArea)
|
||||
if(M.client)
|
||||
spawn(0)
|
||||
if(M.buckled)
|
||||
shake_camera(M, 3, 1)
|
||||
else
|
||||
shake_camera(M, 10, 1)
|
||||
if(istype(M, /mob/living/carbon))
|
||||
if(!M.buckled)
|
||||
M.Weaken(3)
|
||||
|
||||
engineering_shuttle_moving = 0
|
||||
return
|
||||
|
||||
/obj/machinery/computer/engineering_shuttle
|
||||
/obj/machinery/computer/shuttle_control/engineering
|
||||
name = "engineering shuttle console"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "shuttle"
|
||||
shuttle_tag = "Engineering"
|
||||
req_access = list(access_engine)
|
||||
circuit = "/obj/item/weapon/circuitboard/engineering_shuttle"
|
||||
var/hacked = 0
|
||||
var/location = 0
|
||||
location = 1
|
||||
|
||||
/obj/machinery/computer/engineering_shuttle/attack_hand(user as mob)
|
||||
if(..(user))
|
||||
return
|
||||
src.add_fingerprint(usr)
|
||||
var/dat
|
||||
|
||||
dat = "<center>Engineering Shuttle Control<hr>"
|
||||
|
||||
if(engineering_shuttle_moving)
|
||||
dat += "Location: <font color='red'>Moving</font> <br>"
|
||||
else
|
||||
dat += "Location: [engineering_shuttle_location ? "Outpost" : "Station"] <br>"
|
||||
|
||||
dat += "<b><A href='?src=\ref[src];move=[1]'>Send</A></b></center>"
|
||||
|
||||
|
||||
user << browse("[dat]", "window=engineeringshuttle;size=200x150")
|
||||
|
||||
/obj/machinery/computer/engineering_shuttle/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
usr.set_machine(src)
|
||||
src.add_fingerprint(usr)
|
||||
if(href_list["move"])
|
||||
if (!engineering_shuttle_moving)
|
||||
usr << "\blue Shuttle recieved message and will be sent shortly."
|
||||
move_engineering_shuttle()
|
||||
else
|
||||
usr << "\blue Shuttle is already moving."
|
||||
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/machinery/computer/engineering_shuttle/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
|
||||
if (istype(W, /obj/item/weapon/card/emag))
|
||||
src.req_access = list()
|
||||
hacked = 1
|
||||
usr << "You fried the consoles ID checking system. It's now available to everyone!"
|
||||
else
|
||||
..()
|
||||
/obj/machinery/computer/shuttle_control/engineering/New()
|
||||
offsite = locate(/area/shuttle/constructionsite/site)
|
||||
station = locate(/area/shuttle/constructionsite/station)
|
||||
..()
|
||||
@@ -0,0 +1,12 @@
|
||||
/obj/machinery/computer/shuttle_control/mining
|
||||
name = "mining shuttle console"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "shuttle"
|
||||
shuttle_tag = "Mining"
|
||||
req_access = list(access_mining)
|
||||
circuit = "/obj/item/weapon/circuitboard/mining_shuttle"
|
||||
|
||||
/obj/machinery/computer/shuttle_control/mining/New()
|
||||
offsite = locate(/area/shuttle/mining/outpost)
|
||||
station = locate(/area/shuttle/mining/station)
|
||||
..()
|
||||
@@ -0,0 +1,12 @@
|
||||
/obj/machinery/computer/shuttle_control/research
|
||||
name = "research shuttle console"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "shuttle"
|
||||
shuttle_tag = "Research"
|
||||
req_access = list(access_research)
|
||||
circuit = "/obj/item/weapon/circuitboard/research_shuttle"
|
||||
|
||||
/obj/machinery/computer/shuttle_control/research/New()
|
||||
offsite = locate(/area/shuttle/research/outpost)
|
||||
station = locate(/area/shuttle/research/station)
|
||||
..()
|
||||
@@ -0,0 +1,126 @@
|
||||
//These lists are populated in /obj/machinery/computer/shuttle_control/New()
|
||||
//TODO: Integrate these into a shuttle controller.
|
||||
var/list/global/shuttle_locations = list()
|
||||
var/list/global/shuttle_delays = list()
|
||||
var/list/global/shuttle_moving = list()
|
||||
|
||||
/obj/machinery/computer/shuttle_control
|
||||
name = "shuttle console"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "shuttle"
|
||||
req_access = list(access_engine)
|
||||
circuit = "/obj/item/weapon/circuitboard/engineering_shuttle"
|
||||
|
||||
var/shuttle_tag // Used to coordinate data in global lists.
|
||||
var/area/offsite // Off-station destination.
|
||||
var/area/station // Station destination.
|
||||
var/hacked = 0 // Has been emagged, no access restrictions.
|
||||
var/location = 0 // The location that the shuttle begins the game at.
|
||||
var/delay = 10 // The number of seconds of delay on each shuttle movement.
|
||||
|
||||
/obj/machinery/computer/shuttle_control/New()
|
||||
..()
|
||||
|
||||
if(!shuttle_tag)
|
||||
del(src)
|
||||
return
|
||||
|
||||
if(isnull(shuttle_locations[shuttle_tag])) shuttle_locations[shuttle_tag] = location
|
||||
if(isnull(shuttle_delays[shuttle_tag])) shuttle_delays[shuttle_tag] = delay
|
||||
if(isnull(shuttle_moving[shuttle_tag])) shuttle_moving[shuttle_tag] = 0
|
||||
|
||||
/obj/machinery/computer/shuttle_control/attack_hand(user as mob)
|
||||
|
||||
|
||||
if(..(user))
|
||||
return
|
||||
src.add_fingerprint(user)
|
||||
var/dat
|
||||
|
||||
dat = "<center>[shuttle_tag] Shuttle Control<hr>"
|
||||
|
||||
if(shuttle_moving[shuttle_tag])
|
||||
dat += "Location: <font color='red'>Moving</font> <br>"
|
||||
else
|
||||
dat += "Location: [shuttle_locations[shuttle_tag] ? "Offsite" : "Station"] <br>"
|
||||
|
||||
dat += "<b><A href='?src=\ref[src];move=[1]'>Send</A></b></center>"
|
||||
|
||||
|
||||
user << browse("[dat]", "window=[shuttle_tag]shuttlecontrol;size=200x150")
|
||||
|
||||
/obj/machinery/computer/shuttle_control/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
usr.set_machine(src)
|
||||
src.add_fingerprint(usr)
|
||||
if(href_list["move"])
|
||||
if (!shuttle_moving[shuttle_tag])
|
||||
usr << "\blue [shuttle_tag] Shuttle recieved message and will be sent shortly."
|
||||
move_shuttle(shuttle_tag,offsite,station)
|
||||
else
|
||||
usr << "\blue [shuttle_tag] Shuttle is already moving."
|
||||
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/machinery/computer/shuttle_control/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
|
||||
if (istype(W, /obj/item/weapon/card/emag))
|
||||
src.req_access = list()
|
||||
hacked = 1
|
||||
usr << "You short out the console's ID checking system. It's now available to everyone!"
|
||||
else
|
||||
..()
|
||||
|
||||
proc/move_shuttle(var/shuttle_tag,var/area/offsite,var/area/station)
|
||||
|
||||
if(!shuttle_tag || isnull(shuttle_locations[shuttle_tag]))
|
||||
return
|
||||
|
||||
if(shuttle_moving[shuttle_tag] == 1) return
|
||||
shuttle_moving[shuttle_tag] = 1
|
||||
|
||||
spawn(shuttle_delays[shuttle_tag]*10)
|
||||
|
||||
var/list/dstturfs = list()
|
||||
var/throwy = world.maxy
|
||||
|
||||
var/area/area_going_to = (shuttle_locations[shuttle_tag] == 1 ? station : offsite)
|
||||
var/area/area_coming_from = (shuttle_locations[shuttle_tag] == 1 ? offsite : station)
|
||||
|
||||
for(var/turf/T in area_going_to)
|
||||
dstturfs += T
|
||||
if(T.y < throwy)
|
||||
throwy = T.y
|
||||
|
||||
for(var/turf/T in dstturfs)
|
||||
var/turf/D = locate(T.x, throwy - 1, 1)
|
||||
for(var/atom/movable/AM as mob|obj in T)
|
||||
AM.Move(D)
|
||||
if(istype(T, /turf/simulated))
|
||||
del(T)
|
||||
|
||||
for(var/mob/living/carbon/bug in area_going_to)
|
||||
bug.gib()
|
||||
|
||||
for(var/mob/living/simple_animal/pest in area_going_to)
|
||||
pest.gib()
|
||||
|
||||
area_coming_from.move_contents_to(area_going_to)
|
||||
|
||||
shuttle_locations[shuttle_tag] = !shuttle_locations[shuttle_tag]
|
||||
|
||||
for(var/mob/M in area_going_to)
|
||||
if(M.client)
|
||||
spawn(0)
|
||||
if(M.buckled)
|
||||
shake_camera(M, 3, 1)
|
||||
else
|
||||
shake_camera(M, 10, 1)
|
||||
if(istype(M, /mob/living/carbon))
|
||||
if(!M.buckled)
|
||||
M.Weaken(3)
|
||||
|
||||
shuttle_moving[shuttle_tag] = 0
|
||||
|
||||
return
|
||||
File diff suppressed because it is too large
Load Diff
+11
-11
@@ -1469,7 +1469,7 @@
|
||||
"aCm" = (/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/hallway/secondary/entry)
|
||||
"aCn" = (/obj/machinery/light,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/hallway/secondary/entry)
|
||||
"aCo" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 6},/area/hallway/secondary/entry)
|
||||
"aCp" = (/obj/machinery/computer/engineering_shuttle{req_access = null; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/entry)
|
||||
"aCp" = (/obj/machinery/computer/shuttle_control/engineering{req_access = null; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/entry)
|
||||
"aCq" = (/obj/structure/grille,/obj/structure/window/plasmareinforced,/obj/structure/window/plasmareinforced{dir = 4},/obj/structure/window/plasmareinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area)
|
||||
"aCr" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry)
|
||||
"aCs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/hallway/secondary/entry)
|
||||
@@ -2532,7 +2532,7 @@
|
||||
"aWJ" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/bridge)
|
||||
"aWK" = (/turf/simulated/floor{icon_state = "red"; dir = 1},/area/bridge)
|
||||
"aWL" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/bridge)
|
||||
"aWM" = (/obj/machinery/computer/mining_shuttle,/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/bridge)
|
||||
"aWM" = (/obj/machinery/computer/shuttle_control/mining,/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/bridge)
|
||||
"aWN" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/bridge)
|
||||
"aWO" = (/obj/machinery/computer/station_alert,/turf/simulated/floor{dir = 5; icon_state = "blue"},/area/bridge)
|
||||
"aWP" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/bridge)
|
||||
@@ -2883,7 +2883,7 @@
|
||||
"bdw" = (/obj/structure/flora/kirbyplants,/turf/simulated/floor,/area/quartermaster/qm)
|
||||
"bdx" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/obj/item/weapon/pen/red{pixel_x = 2; pixel_y = 6},/obj/item/weapon/rcs,/turf/simulated/floor,/area/quartermaster/qm)
|
||||
"bdy" = (/obj/structure/table,/obj/item/weapon/coin/silver{pixel_x = -3; pixel_y = 3},/obj/item/weapon/coin/silver,/obj/item/device/eftpos{eftpos_name = "Quartermaster EFTPOS scanner"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/quartermaster/qm)
|
||||
"bdz" = (/obj/machinery/computer/mining_shuttle,/turf/simulated/floor,/area/quartermaster/qm)
|
||||
"bdz" = (/obj/machinery/computer/shuttle_control/mining,/turf/simulated/floor,/area/quartermaster/qm)
|
||||
"bdA" = (/obj/machinery/computer/supplycomp,/turf/simulated/floor,/area/quartermaster/qm)
|
||||
"bdB" = (/obj/machinery/computer/security/mining,/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = 0; pixel_y = 30},/turf/simulated/floor,/area/quartermaster/qm)
|
||||
"bdC" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/quartermaster/qm)
|
||||
@@ -4482,7 +4482,7 @@
|
||||
"bIj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/research_shuttle_dock)
|
||||
"bIk" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/space,/area/shuttle/research/station)
|
||||
"bIl" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/shuttle/research/station)
|
||||
"bIm" = (/obj/machinery/computer/research_shuttle,/turf/simulated/shuttle/floor,/area/shuttle/research/station)
|
||||
"bIm" = (/obj/machinery/computer/shuttle_control/research,/turf/simulated/shuttle/floor,/area/shuttle/research/station)
|
||||
"bIn" = (/obj/machinery/door/poddoor{density = 1; icon_state = "pdoor1"; id = "QMLoaddoor2"; name = "Supply Dock Loading Door"; opacity = 1},/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/quartermaster/storage)
|
||||
"bIo" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/floor/plating,/area/quartermaster/storage)
|
||||
"bIp" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/floor,/area/quartermaster/storage)
|
||||
@@ -4796,7 +4796,7 @@
|
||||
"bOl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
|
||||
"bOm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
|
||||
"bOn" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
|
||||
"bOo" = (/obj/machinery/computer/research_shuttle,/turf/simulated/floor{icon_state = "white"},/area/medical/research_shuttle_dock)
|
||||
"bOo" = (/obj/machinery/computer/shuttle_control/research,/turf/simulated/floor{icon_state = "white"},/area/medical/research_shuttle_dock)
|
||||
"bOp" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/research_shuttle_dock)
|
||||
"bOq" = (/obj/machinery/atmospherics/pipe/manifold{_color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/machinery/camera{c_tag = "Research Division Dock"; dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/research_shuttle_dock)
|
||||
"bOr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock/research{name = "Research Shuttle Dock"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/medical/research_shuttle_dock)
|
||||
@@ -5276,7 +5276,7 @@
|
||||
"bXx" = (/turf/simulated/floor/airless{dir = 10; icon_state = "warning"},/area/toxins/test_area)
|
||||
"bXy" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/shuttle/mining/station)
|
||||
"bXz" = (/obj/structure/table,/turf/simulated/shuttle/floor,/area/shuttle/mining/station)
|
||||
"bXA" = (/obj/machinery/computer/mining_shuttle,/turf/simulated/shuttle/floor,/area/shuttle/mining/station)
|
||||
"bXA" = (/obj/machinery/computer/shuttle_control/mining,/turf/simulated/shuttle/floor,/area/shuttle/mining/station)
|
||||
"bXB" = (/obj/machinery/computer/security/mining,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/machinery/camera{c_tag = "Mining Dock"; dir = 4; network = list("SS13")},/turf/simulated/floor{dir = 8; icon_state = "brown"},/area/quartermaster/miningdock)
|
||||
"bXC" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/effect/landmark/start{name = "Shaft Miner"},/turf/simulated/floor,/area/quartermaster/miningdock)
|
||||
"bXD" = (/obj/structure/rack{dir = 1},/obj/item/weapon/modkit/unathi,/obj/item/weapon/modkit/unathi,/turf/simulated/floor{tag = "icon-brown (EAST)"; icon_state = "brown"; dir = 4},/area/quartermaster/miningdock)
|
||||
@@ -5354,7 +5354,7 @@
|
||||
"bYX" = (/obj/structure/grille,/obj/structure/window/plasmareinforced,/obj/structure/window/plasmareinforced{dir = 8},/obj/structure/window/plasmareinforced{dir = 4},/turf/simulated/floor/plating,/area)
|
||||
"bYY" = (/obj/item/weapon/ore/iron,/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/quartermaster/miningdock)
|
||||
"bYZ" = (/obj/structure/closet/crate,/obj/machinery/light/small{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/quartermaster/miningdock)
|
||||
"bZa" = (/obj/machinery/computer/mining_shuttle,/turf/simulated/floor{dir = 9; icon_state = "brown"},/area/quartermaster/miningdock)
|
||||
"bZa" = (/obj/machinery/computer/shuttle_control/mining,/turf/simulated/floor{dir = 9; icon_state = "brown"},/area/quartermaster/miningdock)
|
||||
"bZb" = (/obj/effect/landmark/start{name = "Shaft Miner"},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor,/area/quartermaster/miningdock)
|
||||
"bZc" = (/obj/effect/landmark/start{name = "Shaft Miner"},/turf/simulated/floor,/area/quartermaster/miningdock)
|
||||
"bZd" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/quartermaster/miningdock)
|
||||
@@ -9637,7 +9637,7 @@
|
||||
"dDq" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/light/small,/turf/simulated/floor{icon_state = "freezerfloor"},/area/djstation)
|
||||
"dDr" = (/obj/structure/toilet{pixel_y = 8},/turf/simulated/floor{icon_state = "freezerfloor"},/area/djstation)
|
||||
"dDs" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/djstation)
|
||||
"dDt" = (/obj/machinery/computer/engineering_shuttle,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/djstation)
|
||||
"dDt" = (/obj/machinery/computer/shuttle_control/engineering,/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/djstation)
|
||||
"dDu" = (/obj/structure/computerframe{anchored = 1},/turf/simulated/floor{icon_state = "grimy"},/area/djstation)
|
||||
"dDv" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor{icon_state = "grimy"},/area/djstation)
|
||||
"dDw" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "grimy"},/area/djstation)
|
||||
@@ -9655,7 +9655,7 @@
|
||||
"dDI" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{tag = "icon-floor2"; icon_state = "floor2"},/area/shuttle/constructionsite/site)
|
||||
"dDJ" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (EAST)"; icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/shuttle/constructionsite/site)
|
||||
"dDK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/shuttle/constructionsite/site)
|
||||
"dDL" = (/obj/machinery/computer/engineering_shuttle,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/constructionsite/site)
|
||||
"dDL" = (/obj/machinery/computer/shuttle_control/engineering,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/constructionsite/site)
|
||||
"dDM" = (/turf/simulated/shuttle/wall{tag = "icon-swall2"; icon_state = "swall2"; dir = 2},/area/shuttle/constructionsite/site)
|
||||
"dDN" = (/obj/machinery/computer/atmos_alert,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/constructionsite/site)
|
||||
"dDO" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (EAST)"; icon_state = "heater"; dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/shuttle/constructionsite/site)
|
||||
@@ -10159,7 +10159,7 @@
|
||||
"dNs" = (/obj/effect/gibspawner/human,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/mine/abandoned)
|
||||
"dNt" = (/obj/effect/alien/weeds{icon_state = "weeds1"},/obj/effect/decal/remains/xeno,/turf/simulated/floor/plating,/area/mine/abandoned)
|
||||
"dNu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry)
|
||||
"dNv" = (/obj/machinery/computer/research_shuttle,/turf/simulated/floor{icon_state = "bot"},/area/research_outpost/entry)
|
||||
"dNv" = (/obj/machinery/computer/shuttle_control/research,/turf/simulated/floor{icon_state = "bot"},/area/research_outpost/entry)
|
||||
"dNw" = (/turf/simulated/floor,/area/research_outpost/entry)
|
||||
"dNx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/research_outpost/entry)
|
||||
"dNy" = (/obj/machinery/atmospherics/pipe/simple{_color = "red"; dir = 6; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor,/area/research_outpost/entry)
|
||||
@@ -11107,7 +11107,7 @@
|
||||
"efE" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact-f"},/turf/simulated/floor,/area/mine/production)
|
||||
"efF" = (/obj/machinery/mineral/processing_unit_console,/turf/simulated/wall/r_wall,/area/mine/production)
|
||||
"efG" = (/obj/machinery/mineral/processing_unit,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production)
|
||||
"efH" = (/obj/machinery/computer/mining_shuttle,/turf/simulated/floor,/area/mine/production)
|
||||
"efH" = (/obj/machinery/computer/shuttle_control/mining,/turf/simulated/floor,/area/mine/production)
|
||||
"efI" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/closet/crate,/turf/simulated/floor,/area/mine/production)
|
||||
"efJ" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/obj/machinery/mineral/output,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production)
|
||||
"efK" = (/turf/simulated/wall/r_wall,/area/mine/production)
|
||||
|
||||
Reference in New Issue
Block a user