Tg 1 28 sync testing/confirmation (#5178)
* maps, tgui, tools * defines and helpers * onclick and controllers * datums fucking caught that hulk reversal too. * game and shuttle modular * module/admin * oh god they fucking moved antag shit again * haaaaate. Haaaaaaaaaate. * enables moff wings * more modules things * tgstation.dme before I forget something important * some mob stuff * s'more mob/living stuff * some carbon stuff * ayy lmaos and kitchen meat * Human stuff * species things moff wings have a 'none' version too * the rest of the module stuff. * some strings * misc * mob icons * some other icons. * It compiles FUCK BORERS FUCK BORERS
This commit is contained in:
@@ -11,8 +11,6 @@
|
||||
callTime = INFINITY
|
||||
ignitionTime = 50
|
||||
|
||||
roundstart_move = TRUE //force a call to dockRoundstart
|
||||
|
||||
var/sound_played
|
||||
var/damaged //too damaged to undock?
|
||||
var/list/areas //areas in our shuttle
|
||||
@@ -22,16 +20,20 @@
|
||||
var/perma_docked = FALSE //highlander with RESPAWN??? OH GOD!!!
|
||||
|
||||
/obj/docking_port/mobile/arrivals/Initialize(mapload)
|
||||
if(SSshuttle.arrivals)
|
||||
WARNING("More than one arrivals docking_port placed on map!")
|
||||
return INITIALIZE_HINT_QDEL
|
||||
SSshuttle.arrivals = src
|
||||
|
||||
if(!timid)
|
||||
register()
|
||||
|
||||
. = ..()
|
||||
|
||||
preferred_direction = dir
|
||||
return INITIALIZE_HINT_LATELOAD //for latejoin list
|
||||
|
||||
/obj/docking_port/mobile/arrivals/register()
|
||||
..()
|
||||
if(SSshuttle.arrivals)
|
||||
WARNING("More than one arrivals docking_port placed on map! Ignoring duplicates.")
|
||||
SSshuttle.arrivals = src
|
||||
|
||||
/obj/docking_port/mobile/arrivals/LateInitialize()
|
||||
areas = list()
|
||||
|
||||
@@ -54,13 +56,6 @@
|
||||
|
||||
SSjob.latejoin_trackers = new_latejoin
|
||||
|
||||
/obj/docking_port/mobile/arrivals/dockRoundstart()
|
||||
SSshuttle.generate_transit_dock(src)
|
||||
Launch()
|
||||
timer = world.time
|
||||
check()
|
||||
return TRUE
|
||||
|
||||
/obj/docking_port/mobile/arrivals/check()
|
||||
. = ..()
|
||||
|
||||
|
||||
@@ -66,9 +66,9 @@
|
||||
to_chat(usr, "<span class='notice'>Unable to comply.</span>")
|
||||
|
||||
/obj/machinery/computer/shuttle/emag_act(mob/user)
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
return
|
||||
req_access = list()
|
||||
emagged = TRUE
|
||||
obj_flags |= EMAGGED
|
||||
to_chat(user, "<span class='notice'>You fried the consoles ID checking system.</span>")
|
||||
|
||||
|
||||
@@ -36,14 +36,14 @@
|
||||
var/name = ID.registered_name
|
||||
var/job = ID.assignment
|
||||
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
name = Gibberish(name, 0)
|
||||
job = Gibberish(job, 0)
|
||||
A += list(list("name" = name, "job" = job))
|
||||
data["authorizations"] = A
|
||||
|
||||
data["enabled"] = (IS_DOCKED && !ENGINES_STARTED)
|
||||
data["emagged"] = emagged
|
||||
data["emagged"] = obj_flags & EMAGGED ? 1 : 0
|
||||
return data
|
||||
|
||||
/obj/machinery/computer/emergency_shuttle/ui_act(action, params, datum/tgui/ui)
|
||||
@@ -119,16 +119,16 @@
|
||||
|
||||
if(SSshuttle.emergency.mode == SHUTTLE_STRANDED)
|
||||
authorized.Cut()
|
||||
emagged = FALSE
|
||||
obj_flags &= ~EMAGGED
|
||||
|
||||
if(ENGINES_STARTED || (!IS_DOCKED))
|
||||
return .
|
||||
|
||||
// Check to see if we've reached criteria for early launch
|
||||
if((authorized.len >= auth_need) || emagged)
|
||||
if((authorized.len >= auth_need) || (obj_flags & EMAGGED))
|
||||
// shuttle timers use 1/10th seconds internally
|
||||
SSshuttle.emergency.setTimer(ENGINES_START_TIME)
|
||||
var/system_error = emagged ? "SYSTEM ERROR:" : null
|
||||
var/system_error = obj_flags & EMAGGED ? "SYSTEM ERROR:" : null
|
||||
minor_announce("The emergency shuttle will launch in \
|
||||
[TIME_LEFT] seconds", system_error, alert=TRUE)
|
||||
. = TRUE
|
||||
@@ -138,7 +138,7 @@
|
||||
if(!IS_DOCKED)
|
||||
return
|
||||
|
||||
if(emagged || ENGINES_STARTED) //SYSTEM ERROR: THE SHUTTLE WILL LA-SYSTEM ERROR: THE SHUTTLE WILL LA-SYSTEM ERROR: THE SHUTTLE WILL LAUNCH IN 10 SECONDS
|
||||
if((obj_flags & EMAGGED) || ENGINES_STARTED) //SYSTEM ERROR: THE SHUTTLE WILL LA-SYSTEM ERROR: THE SHUTTLE WILL LA-SYSTEM ERROR: THE SHUTTLE WILL LAUNCH IN 10 SECONDS
|
||||
to_chat(user, "<span class='warning'>The shuttle is already about to launch!</span>")
|
||||
return
|
||||
|
||||
@@ -149,7 +149,7 @@
|
||||
has emagged the emergency shuttle [time] seconds before launch.", 0, 1)
|
||||
log_game("[key_name(user)] has emagged the emergency shuttle in \
|
||||
[COORD(src)] [time] seconds before launch.")
|
||||
emagged = TRUE
|
||||
obj_flags |= EMAGGED
|
||||
var/datum/species/S = new
|
||||
for(var/i in 1 to 10)
|
||||
// the shuttle system doesn't know who these people are, but they
|
||||
@@ -184,7 +184,6 @@
|
||||
height = 11
|
||||
dir = EAST
|
||||
port_direction = WEST
|
||||
roundstart_move = "emergency_away"
|
||||
var/sound_played = 0 //If the launch sound has been sent to all players on the shuttle itself
|
||||
|
||||
/obj/docking_port/mobile/emergency/canDock(obj/docking_port/stationary/S)
|
||||
@@ -415,7 +414,7 @@
|
||||
/obj/docking_port/mobile/pod/request()
|
||||
var/obj/machinery/computer/shuttle/S = getControlConsole()
|
||||
|
||||
if(GLOB.security_level == SEC_LEVEL_RED || GLOB.security_level == SEC_LEVEL_DELTA || (S && S.emagged))
|
||||
if(GLOB.security_level == SEC_LEVEL_RED || GLOB.security_level == SEC_LEVEL_DELTA || (S && (S.obj_flags & EMAGGED)))
|
||||
if(launch_status == UNLAUNCHED)
|
||||
launch_status = EARLY_LAUNCHED
|
||||
return ..()
|
||||
@@ -446,9 +445,9 @@
|
||||
return
|
||||
|
||||
/obj/machinery/computer/shuttle/pod/emag_act(mob/user)
|
||||
if(emagged)
|
||||
if(obj_flags & EMAGGED)
|
||||
return
|
||||
emagged = TRUE
|
||||
obj_flags |= EMAGGED
|
||||
to_chat(user, "<span class='warning'>You fry the pod's alert level checking system.</span>")
|
||||
|
||||
/obj/docking_port/stationary/random
|
||||
@@ -537,7 +536,6 @@
|
||||
width = 8
|
||||
height = 8
|
||||
dir = EAST
|
||||
roundstart_move = "backup_away"
|
||||
|
||||
/obj/docking_port/mobile/emergency/backup/Initialize()
|
||||
// We want to be a valid emergency shuttle
|
||||
|
||||
@@ -23,6 +23,14 @@
|
||||
/obj/machinery/shuttle_manipulator/Initialize()
|
||||
. = ..()
|
||||
update_icon()
|
||||
SSshuttle.manipulator = src
|
||||
|
||||
/obj/machinery/shuttle_manipulator/Destroy(force)
|
||||
if(!force)
|
||||
. = QDEL_HINT_LETMELIVE
|
||||
else
|
||||
SSshuttle.manipulator = null
|
||||
. = ..()
|
||||
|
||||
/obj/machinery/shuttle_manipulator/update_icon()
|
||||
cut_overlays()
|
||||
@@ -182,8 +190,7 @@
|
||||
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/shuttle_manipulator/proc/action_load(
|
||||
datum/map_template/shuttle/loading_template)
|
||||
/obj/machinery/shuttle_manipulator/proc/action_load(datum/map_template/shuttle/loading_template, obj/docking_port/stationary/destination_port)
|
||||
// Check for an existing preview
|
||||
if(preview_shuttle && (loading_template != preview_template))
|
||||
preview_shuttle.jumpToNullSpace()
|
||||
@@ -199,16 +206,15 @@
|
||||
var/mode = SHUTTLE_IDLE
|
||||
var/obj/docking_port/stationary/D
|
||||
|
||||
if(existing_shuttle)
|
||||
if(istype(destination_port))
|
||||
D = destination_port
|
||||
else if(existing_shuttle)
|
||||
timer = existing_shuttle.timer
|
||||
mode = existing_shuttle.mode
|
||||
D = existing_shuttle.get_docked()
|
||||
else
|
||||
D = preview_shuttle.findRoundstartDock()
|
||||
|
||||
if(!D)
|
||||
var/m = "No dock found for preview shuttle, aborting."
|
||||
WARNING(m)
|
||||
var/m = "No dock found for preview shuttle ([preview_template.name]), aborting."
|
||||
throw EXCEPTION(m)
|
||||
|
||||
var/result = preview_shuttle.canDock(D)
|
||||
@@ -216,11 +222,11 @@
|
||||
// but we can ignore the someone else docked error because we'll
|
||||
// be moving into their place shortly
|
||||
if((result != SHUTTLE_CAN_DOCK) && (result != SHUTTLE_SOMEONE_ELSE_DOCKED))
|
||||
var/m = "Unsuccessful dock of [preview_shuttle] ([result])."
|
||||
WARNING(m)
|
||||
WARNING("Template shuttle [preview_shuttle] cannot dock at [D] ([result]).")
|
||||
return
|
||||
|
||||
existing_shuttle.jumpToNullSpace()
|
||||
if(existing_shuttle)
|
||||
existing_shuttle.jumpToNullSpace()
|
||||
|
||||
preview_shuttle.initiate_docking(D)
|
||||
. = preview_shuttle
|
||||
|
||||
@@ -167,6 +167,9 @@
|
||||
|
||||
var/last_dock_time
|
||||
|
||||
var/datum/map_template/shuttle/roundstart_template
|
||||
var/json_key
|
||||
|
||||
/obj/docking_port/stationary/Initialize(mapload)
|
||||
. = ..()
|
||||
SSshuttle.stationary += src
|
||||
@@ -184,6 +187,22 @@
|
||||
highlight("#f00")
|
||||
#endif
|
||||
|
||||
/obj/docking_port/stationary/proc/load_roundstart()
|
||||
if(json_key)
|
||||
var/sid = SSmapping.config.shuttles[json_key]
|
||||
roundstart_template = SSmapping.shuttle_templates[sid]
|
||||
if(!roundstart_template)
|
||||
CRASH("json_key:[json_key] value \[[sid]\] resulted in a null shuttle template for [src]")
|
||||
else if(roundstart_template) // passed a PATH
|
||||
var/sid = "[initial(roundstart_template.port_id)]_[initial(roundstart_template.suffix)]"
|
||||
|
||||
roundstart_template = SSmapping.shuttle_templates[sid]
|
||||
if(!roundstart_template)
|
||||
CRASH("Invalid path ([roundstart_template]) passed to docking port.")
|
||||
|
||||
if(roundstart_template)
|
||||
SSshuttle.manipulator.action_load(roundstart_template, src)
|
||||
|
||||
//returns first-found touching shuttleport
|
||||
/obj/docking_port/stationary/get_docked()
|
||||
. = locate(/obj/docking_port/mobile) in loc
|
||||
@@ -234,7 +253,6 @@
|
||||
var/mode = SHUTTLE_IDLE //current shuttle mode
|
||||
var/callTime = 100 //time spent in transit (deciseconds). Should not be lower then 10 seconds without editing the animation of the hyperspace ripples.
|
||||
var/ignitionTime = 55 // time spent "starting the engines". Also rate limits how often we try to reserve transit space if its ever full of transiting shuttles.
|
||||
var/roundstart_move //id of port to send shuttle to at roundstart
|
||||
|
||||
// The direction the shuttle prefers to travel in
|
||||
var/preferred_direction = NORTH
|
||||
@@ -251,8 +269,9 @@
|
||||
var/list/movement_force = list("KNOCKDOWN" = 3, "THROW" = 2)
|
||||
|
||||
// A timid shuttle will not register itself with the shuttle subsystem
|
||||
// All shuttle templates are timid
|
||||
var/timid = FALSE
|
||||
// All shuttle templates MUST be timid, imports will fail if they're not
|
||||
// Shuttle defined already on the map MUST NOT be timid, or they won't work
|
||||
var/timid = TRUE
|
||||
|
||||
var/list/ripples = list()
|
||||
var/engine_coeff = 1 //current engine coeff
|
||||
@@ -473,12 +492,6 @@
|
||||
for(var/obj/machinery/door/poddoor/shuttledock/pod in GLOB.airlocks)
|
||||
pod.check()
|
||||
|
||||
/obj/docking_port/mobile/proc/findRoundstartDock()
|
||||
return SSshuttle.getDock(roundstart_move)
|
||||
|
||||
/obj/docking_port/mobile/proc/dockRoundstart()
|
||||
. = dock_id(roundstart_move)
|
||||
|
||||
/obj/docking_port/mobile/proc/dock_id(id)
|
||||
var/port = SSshuttle.getDock(id)
|
||||
if(port)
|
||||
@@ -489,6 +502,10 @@
|
||||
/obj/effect/landmark/shuttle_import
|
||||
name = "Shuttle Import"
|
||||
|
||||
// Never move the shuttle import landmark, otherwise things get WEIRD
|
||||
/obj/effect/landmark/shuttle_import/onShuttleMove()
|
||||
return FALSE
|
||||
|
||||
//used by shuttle subsystem to check timers
|
||||
/obj/docking_port/mobile/proc/check()
|
||||
check_effects()
|
||||
|
||||
@@ -34,7 +34,6 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list(
|
||||
width = 12
|
||||
dwidth = 5
|
||||
height = 7
|
||||
roundstart_move = "supply_away"
|
||||
|
||||
// When TRUE, these vars allow exporting emagged/contraband items, and add some special interactions to existing exports.
|
||||
var/contraband = FALSE
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
icon_screen = "syndishuttle"
|
||||
icon_keyboard = "syndie_key"
|
||||
shuttleId = "syndicate"
|
||||
station_lock_override = TRUE
|
||||
lock_override = CAMERA_LOCK_STATION
|
||||
shuttlePortId = "syndicate_custom"
|
||||
shuttlePortName = "custom location"
|
||||
jumpto_ports = list("syndicate_ne" = 1, "syndicate_nw" = 1, "syndicate_n" = 1, "syndicate_se" = 1, "syndicate_sw" = 1, "syndicate_s" = 1)
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
name = "White Ship Navigation Computer"
|
||||
desc = "Used to designate a precise transit location for the White Ship."
|
||||
shuttleId = "whiteship"
|
||||
station_lock_override = TRUE
|
||||
lock_override = CAMERA_LOCK_STATION
|
||||
shuttlePortId = "whiteship_custom"
|
||||
shuttlePortName = "Custom Location"
|
||||
jumpto_ports = list("whiteship_away" = 1, "whiteship_home" = 1, "whiteship_z4" = 1)
|
||||
|
||||
Reference in New Issue
Block a user