diff --git a/code/__DEFINES/ARES.dm b/code/__DEFINES/ARES.dm index ec84a6ab5992..f21910a8a8c4 100644 --- a/code/__DEFINES/ARES.dm +++ b/code/__DEFINES/ARES.dm @@ -26,6 +26,7 @@ #define ARES_RECORD_SECURITY "Security Update" #define ARES_RECORD_MAINTENANCE "Maintenance Ticket" #define ARES_RECORD_ACCESS "Access Ticket" +#define ARES_RECORD_FLIGHT "Flight Record" /// Not by ARES logged through marine_announcement() #define ARES_LOG_NONE 0 diff --git a/code/game/machinery/ARES/ARES.dm b/code/game/machinery/ARES/ARES.dm index de4140ef1b81..c837f690b0d1 100644 --- a/code/game/machinery/ARES/ARES.dm +++ b/code/game/machinery/ARES/ARES.dm @@ -149,8 +149,10 @@ var/list/records_talking = list() /// Holds all (/datum/ares_record/requisition_log)s var/list/records_asrs = list() - /// Holds all (/datum/ares_record/security)s and (/datum/ares_record/antiair)s + /// Holds all (/datum/ares_record/security)s (including AA) var/list/records_security = list() + /// Holds all (/datum/ares_record/flight)s + var/list/records_flight = list() /// Is nuke request usable or not? var/nuke_available = TRUE diff --git a/code/game/machinery/ARES/ARES_procs.dm b/code/game/machinery/ARES/ARES_procs.dm index 998dbc2edf18..03c6503f9996 100644 --- a/code/game/machinery/ARES/ARES_procs.dm +++ b/code/game/machinery/ARES/ARES_procs.dm @@ -57,20 +57,23 @@ GLOBAL_LIST_INIT(maintenance_categories, list( /datum/ares_link/proc/log_ares_bioscan(title, input) interface.records_bioscan.Add(new /datum/ares_record/bioscan(title, input)) -/datum/ares_link/proc/log_ares_bombardment(mob/living/user, ob_name, coordinates) - interface.records_bombardment.Add(new /datum/ares_record/bombardment(ob_name, "Bombardment fired at [coordinates].", user)) +/datum/ares_link/proc/log_ares_bombardment(mob/user, ob_name, coordinates) + interface.records_bombardment.Add(new /datum/ares_record/bombardment(ob_name, "Bombardment fired at [coordinates].", user.name)) /datum/ares_link/proc/log_ares_announcement(title, message) interface.records_announcement.Add(new /datum/ares_record/announcement(title, message)) -/datum/ares_link/proc/log_ares_requisition(source, details, mob/living/user) - interface.records_asrs.Add(new /datum/ares_record/requisition_log(source, details, user)) +/datum/ares_link/proc/log_ares_requisition(source, details, mob/user) + interface.records_asrs.Add(new /datum/ares_record/requisition_log(source, details, user.name)) /datum/ares_link/proc/log_ares_security(title, details) interface.records_security.Add(new /datum/ares_record/security(title, details)) /datum/ares_link/proc/log_ares_antiair(details) interface.records_security.Add(new /datum/ares_record/security/antiair(details)) + +/datum/ares_link/proc/log_ares_flight(mob/user, details) + interface.records_flight.Add(new /datum/ares_record/flight(details, user.name)) // ------ End ARES Logging Procs ------ // /proc/ares_apollo_talk(broadcast_message) @@ -232,6 +235,17 @@ GLOBAL_LIST_INIT(maintenance_categories, list( logged_alerts += list(current_alert) data["records_security"] = logged_alerts + var/list/logged_flights = list() + for(var/datum/ares_record/flight/flight_log as anything in records_flight) + var/list/current_flight = list() + current_flight["time"] = flight_log.time + current_flight["title"] = flight_log.title + current_flight["details"] = flight_log.details + current_flight["user"] = flight_log.user + current_flight["ref"] = "\ref[flight_log]" + logged_flights += list(current_flight) + data["records_flight"] = logged_flights + var/list/logged_bioscans = list() for(var/datum/ares_record/bioscan/scan as anything in records_bioscan) var/list/current_scan = list() @@ -414,6 +428,9 @@ GLOBAL_LIST_INIT(maintenance_categories, list( if("page_security") last_menu = current_menu current_menu = "security" + if("page_flight") + last_menu = current_menu + current_menu = "flight_log" if("page_requisitions") last_menu = current_menu current_menu = "requisitions" diff --git a/code/game/machinery/ARES/ARES_records.dm b/code/game/machinery/ARES/ARES_records.dm index 59c9e8e99a5a..1761c87c2474 100644 --- a/code/game/machinery/ARES/ARES_records.dm +++ b/code/game/machinery/ARES/ARES_records.dm @@ -35,11 +35,20 @@ /datum/ares_record/security/antiair record_name = ARES_RECORD_ANTIAIR -/datum/ares_record/security/antiair/New(details, user) +/datum/ares_record/security/antiair/New(details) time = worldtime2text() src.title = "AntiAir Adjustment" src.details = details +/datum/ares_record/flight + record_name = ARES_RECORD_FLIGHT + +/datum/ares_record/flight/New(details, user) + time = worldtime2text() + src.title = "Flight Log" + src.details = details + src.user = user + /datum/ares_record/bombardment record_name = ARES_RECORD_BOMB diff --git a/code/modules/shuttle/computers/dropship_computer.dm b/code/modules/shuttle/computers/dropship_computer.dm index 5ad84e17f159..475932e1de4c 100644 --- a/code/modules/shuttle/computers/dropship_computer.dm +++ b/code/modules/shuttle/computers/dropship_computer.dm @@ -268,6 +268,8 @@ GLOB.alt_ctrl_disabled = TRUE marine_announcement("Unscheduled dropship departure detected from operational area. Hijack likely. Shutting down autopilot.", "Dropship Alert", 'sound/AI/hijack.ogg', logging = ARES_LOG_SECURITY) + var/datum/ares_link/link = GLOB.ares_link + link.log_ares_flight("Unknown", "Unscheduled dropship departure detected from operational area. Hijack likely. Shutting down autopilot.") var/mob/living/carbon/xenomorph/xeno = user var/hivenumber = XENO_HIVE_NORMAL @@ -346,6 +348,7 @@ to_chat(user, SPAN_WARNING("The dropship isn't responding to controls.")) return + var/datum/ares_link/link = GLOB.ares_link switch(action) if("move") if(shuttle.mode != SHUTTLE_IDLE && (shuttle.mode != SHUTTLE_CALL && !shuttle.destination)) @@ -362,6 +365,7 @@ update_equipment(is_optimised) if(is_set_flyby) to_chat(user, SPAN_NOTICE("You begin the launch sequence for a flyby.")) + link.log_ares_flight(user, "Launched Dropship [shuttle.name] on a flyby.") var/log = "[key_name(user)] launched the dropship [src.shuttleId] on flyby." msg_admin_niche(log) log_interact(user, msg = "[log]") @@ -390,6 +394,7 @@ return TRUE SSshuttle.moveShuttle(shuttle.id, dock.id, TRUE) to_chat(user, SPAN_NOTICE("You begin the launch sequence to [dock].")) + link.log_ares_flight(user, "Launched Dropship [shuttle.name] on a flight to [dock].") var/log = "[key_name(user)] launched the dropship [src.shuttleId] on transport." msg_admin_niche(log) log_interact(user, msg = "[log]") @@ -409,11 +414,13 @@ to_chat(user, SPAN_WARNING("Door controls have been overridden. Please call technical support.")) if("set-ferry") is_set_flyby = FALSE + link.log_ares_flight(user, "Set Dropship [shuttle.name] to transport runs.") var/log = "[key_name(user)] set the dropship [src.shuttleId] into transport" msg_admin_niche(log) log_interact(user, msg = "[log]") if("set-flyby") is_set_flyby = TRUE + link.log_ares_flight(user, "Set Dropship [shuttle.name] to flyby runs.") var/log = "[key_name(user)] set the dropship [src.shuttleId] into flyby." msg_admin_niche(log) log_interact(user, msg = "[log]") @@ -436,6 +443,7 @@ shuttle.automated_lz_id = ground_lz shuttle.automated_delay = delay playsound(loc, get_sfx("terminal_button"), KEYBOARD_SOUND_VOLUME, 1) + link.log_ares_flight(user, "Enabled autopilot for Dropship [shuttle.name].") var/log = "[key_name(user)] has enabled auto pilot on '[shuttle.name]'" message_admins(log) log_interact(user, msg = "[log]") @@ -452,6 +460,7 @@ shuttle.automated_lz_id = null shuttle.automated_delay = null playsound(loc, get_sfx("terminal_button"), KEYBOARD_SOUND_VOLUME, 1) + link.log_ares_flight(user, "Disabled autopilot for Dropship [shuttle.name].") var/log = "[key_name(user)] has disabled auto pilot on '[shuttle.name]'" message_admins(log) log_interact(user, msg = "[log]") diff --git a/code/modules/shuttles/marine_ferry.dm b/code/modules/shuttles/marine_ferry.dm index 17caccde207e..426d90c1457a 100644 --- a/code/modules/shuttles/marine_ferry.dm +++ b/code/modules/shuttles/marine_ferry.dm @@ -102,6 +102,8 @@ automated_launch = FALSE automated_launch_timer = TIMER_ID_NULL ai_silent_announcement("Dropship '[name]' departing.") + var/datum/ares_link/link = GLOB.ares_link + link.log_ares_flight("Automated", "Dropship [name] launched on an automatic flight.") /* diff --git a/code/modules/shuttles/shuttle_console.dm b/code/modules/shuttles/shuttle_console.dm index ecf1bacf080b..0e6e073c22fa 100644 --- a/code/modules/shuttles/shuttle_console.dm +++ b/code/modules/shuttles/shuttle_console.dm @@ -293,6 +293,8 @@ GLOBAL_LIST_EMPTY(shuttle_controls) marine_announcement("Unscheduled dropship departure detected from operational area. Hijack likely. Shutting down autopilot.", "Dropship Alert", 'sound/AI/hijack.ogg', logging = ARES_LOG_SECURITY) shuttle.alerts_allowed-- + var/datum/ares_link/link = GLOB.ares_link + link.log_ares_flight("Unknown", "Unscheduled dropship departure detected from operational area. Hijack likely. Shutting down autopilot.") to_chat(Q, SPAN_DANGER("A loud alarm erupts from [src]! The fleshy hosts must know that you can access it!")) xeno_message(SPAN_XENOANNOUNCE("The Queen has commanded the metal bird to depart for the metal hive in the sky! Rejoice!"),3,Q.hivenumber) diff --git a/tgui/packages/tgui/interfaces/AresInterface.js b/tgui/packages/tgui/interfaces/AresInterface.js index 805450ccea28..ff5016f7e48a 100644 --- a/tgui/packages/tgui/interfaces/AresInterface.js +++ b/tgui/packages/tgui/interfaces/AresInterface.js @@ -11,6 +11,7 @@ const PAGES = { 'apollo': () => ApolloLog, 'access_log': () => AccessLogs, 'delete_log': () => DeletionLogs, + 'flight_log': () => FlightLogs, 'talking': () => ARESTalk, 'deleted_talks': () => DeletedTalks, 'read_deleted': () => ReadingTalks, @@ -191,6 +192,18 @@ const MainMenu = (props, context) => {

Access Level 2

+ +