Ports SSnetworks killings (#22104)

* Ports SSnetworks killings

* Update names.dm

* Removes my debug message and fixes instances it caught
This commit is contained in:
John Willard
2024-05-31 01:22:12 -04:00
committed by GitHub
parent 7cc800acee
commit 4212a5c805
66 changed files with 589 additions and 959 deletions

View File

@@ -1,7 +1,7 @@
/datum/computer_file/program/ai
filename = "DEBUG"
filedesc = "DEBUG"
category = PROGRAM_CATEGORY_ENGI
category = PROGRAM_CATEGORY_ENGINEERING
program_icon_state = "power_monitor"
extended_desc = "This program connects to a local AI network to allow for administrative access"
ui_header = "power_norm.gif"

View File

@@ -3,7 +3,7 @@ GLOBAL_LIST_EMPTY(PDABombCodes)
/datum/computer_file/program/bomberman
filename = "bomberman"
filedesc = "BomberMan"
category = PROGRAM_CATEGORY_MISC
category = PROGRAM_CATEGORY_EQUIPMENT
program_icon_state = "hostile"
extended_desc = "A new-age version of the classic 'Detomatix' program run on legacy PDAs. Can be used to attempt detonation of any PDA on the messaging list."
size = 5

View File

@@ -1,7 +1,7 @@
/datum/computer_file/program/contract_uplink
filename = "contractor uplink"
filedesc = "Syndicate Contractor Uplink"
category = PROGRAM_CATEGORY_MISC
category = PROGRAM_CATEGORY_EQUIPMENT
program_icon_state = "assign"
extended_desc = "A standard, Syndicate issued system for handling important contracts while on the field."
size = 10

View File

@@ -1,7 +1,7 @@
/datum/computer_file/program/ntnet_dos
filename = "ntn_dos"
filedesc = "DoS Traffic Generator"
category = PROGRAM_CATEGORY_MISC
category = PROGRAM_CATEGORY_EQUIPMENT
program_icon_state = "hostile"
extended_desc = "This advanced script can perform denial of service attacks against NTNet quantum relays. The system administrator will probably notice this. Multiple devices can run this program together against the same relay for increased effect"
size = 20
@@ -46,7 +46,7 @@
computer.play_interact_sound()
switch(action)
if("PRG_target_relay")
for(var/obj/machinery/ntnet_relay/R in SSnetworks.station_network.relays)
for(var/obj/machinery/ntnet_relay/R as anything in SSmachines.get_machines_by_type(/obj/machinery/ntnet_relay))
if(R.uid == text2num(params["targid"]))
target = R
break
@@ -62,14 +62,14 @@
if(target)
executed = TRUE
target.dos_sources.Add(src)
if(SSnetworks.station_network.intrusion_detection_enabled)
if(SSmodular_computers.intrusion_detection_enabled)
var/obj/item/computer_hardware/network_card/network_card = computer.all_components[MC_NET]
SSnetworks.station_network.add_log("IDS WARNING - Excess traffic flood targeting relay [target.uid] detected from device: [network_card.get_network_tag()]")
SSnetworks.station_network.intrusion_detection_alarm = TRUE
SSmodular_computers.add_log("IDS WARNING - Excess traffic flood targeting relay [target.uid] detected from device: [network_card.get_network_tag()]")
SSmodular_computers.intrusion_detection_alarm = TRUE
return TRUE
/datum/computer_file/program/ntnet_dos/ui_data(mob/user)
if(!SSnetworks.station_network)
if(!SSmodular_computers)
return
var/list/data = get_header_data()
@@ -84,7 +84,7 @@
else
data["target"] = FALSE
data["relays"] = list()
for(var/obj/machinery/ntnet_relay/R in SSnetworks.station_network.relays)
for(var/obj/machinery/ntnet_relay/R as anything in SSmachines.get_machines_by_type(/obj/machinery/ntnet_relay))
data["relays"] += list(list("id" = R.uid))
data["focus"] = target ? target.uid : null

View File

@@ -3,7 +3,7 @@ GLOBAL_LIST_EMPTY(PDAFrameCodes)
/datum/computer_file/program/frame
filename = "frame"
filedesc = "F.R.A.M.E."
category = PROGRAM_CATEGORY_MISC
category = PROGRAM_CATEGORY_EQUIPMENT
program_icon_state = "hostile"
extended_desc = "A new-age version of the classic 'F.R.A.M.E.' program run on legacy PDAs. Can be used to silently open an uplink on any PDA on the messaging list."
size = 5

View File

@@ -1,7 +1,7 @@
/datum/computer_file/program/revelation
filename = "revelation"
filedesc = "Revelation"
category = PROGRAM_CATEGORY_MISC
category = PROGRAM_CATEGORY_EQUIPMENT
program_icon_state = "hostile"
extended_desc = "This virus can destroy hard drive of system it is executed on. It may be obfuscated to look like another non-malicious program. Once armed, it will destroy the system upon next execution."
size = 13

View File

@@ -8,6 +8,7 @@
size = 6
tgui_id = "NtosArcade"
program_icon = "gamepad"
category = PROGRAM_CATEGORY_GAMES
var/game_active = TRUE //Checks to see if a game is in progress.
var/pause_state = FALSE //This disables buttons in order to prevent multiple actions before the opponent's actions.

View File

@@ -16,6 +16,7 @@
program_icon_state = "arcade"
extended_desc = "Nanotrasen does not permit anyone under the age of 21 to partake in gambling. Requires an NTNet connection."
requires_ntnet = TRUE
category = PROGRAM_CATEGORY_GAMES
network_destination = "arcade network"
size = 4
tgui_id = "NtosBlackjack"

View File

@@ -1,7 +1,7 @@
/datum/computer_file/program/budget_monitor
filename = "budgetmonitor"
filedesc = "Budget Monitor"
category = PROGRAM_CATEGORY_CMD
category = PROGRAM_CATEGORY_SUPPLY
program_icon_state = "id"
extended_desc = "This program will allow you to view the financial status of your department(s)."
transfer_access = ACCESS_HEADS

View File

@@ -9,7 +9,7 @@
/datum/computer_file/program/card_mod
filename = "cardmod"
filedesc = "ID Card Modification"
category = PROGRAM_CATEGORY_CMD
category = PROGRAM_CATEGORY_EQUIPMENT
program_icon_state = "id"
extended_desc = "Program for programming employee ID cards to access parts of the station."
transfer_access = ACCESS_HEADS

View File

@@ -1,7 +1,7 @@
/datum/computer_file/program/crew_manifest
filename = "crewmani"
filedesc = "Crew Manifest"
category = PROGRAM_CATEGORY_CMD
category = PROGRAM_CATEGORY_SECURITY
program_icon_state = "id"
extended_desc = "Program for viewing and printing the current crew manifest."
requires_ntnet = FALSE

View File

@@ -1,7 +1,7 @@
/datum/computer_file/program/job_management
filename = "job_manage"
filedesc = "Job Manager"
category = PROGRAM_CATEGORY_CMD
category = PROGRAM_CATEGORY_EQUIPMENT
program_icon_state = "id"
extended_desc = "Program for viewing and changing job slot availability."
transfer_access = ACCESS_HEADS

View File

@@ -9,7 +9,7 @@ GLOBAL_LIST_INIT(granted_synthetic_access, list())
/datum/computer_file/program/synth_requester
filename = "synth_req"
filedesc = "Synthetic Manager"
category = PROGRAM_CATEGORY_CMD
category = PROGRAM_CATEGORY_EQUIPMENT
program_icon_state = "id"
extended_desc = "Program for requesting synthetic assistance and granting departmental access."
transfer_access = ACCESS_HEADS

View File

@@ -1,7 +1,7 @@
/datum/computer_file/program/alarm_monitor
filename = "alarmmonitor"
filedesc = "Alarm Monitor"
category = PROGRAM_CATEGORY_ENGI
category = PROGRAM_CATEGORY_ENGINEERING
ui_header = "alarm_green.gif"
program_icon_state = "alert-green"
extended_desc = "This program provides visual interface for station's alarm system."

View File

@@ -1,7 +1,7 @@
/datum/computer_file/program/atmosscan
filename = "atmosscan"
filedesc = "Atmospheric Scanner"
category = PROGRAM_CATEGORY_ENGI
category = PROGRAM_CATEGORY_ENGINEERING
program_icon_state = "air"
extended_desc = "A small built-in sensor reads out the atmospheric conditions around the device."
network_destination = "atmos scan"

View File

@@ -2,7 +2,7 @@
/datum/computer_file/program/energy_harvester_control
filename = "energy_harvester_control"
filedesc = "Energy Harvester Control"
category = PROGRAM_CATEGORY_ENGI
category = PROGRAM_CATEGORY_ENGINEERING
ui_header = "energy_harvester_null.gif"
program_icon_state = "energy_harvester_null"
extended_desc = "This program connects remotely to the onboard energy harvester, allowing a chief engineer to control the input rates and check for cashflow."

View File

@@ -1,7 +1,7 @@
/datum/computer_file/program/ntnetmonitor
filename = "ntmonitor"
filedesc = "NTNet Diagnostics and Monitoring"
category = PROGRAM_CATEGORY_ENGI
category = PROGRAM_CATEGORY_ENGINEERING
program_icon_state = "comm_monitor"
extended_desc = "This program monitors stationwide NTNet network, provides access to logging systems, and allows for configuration changes."
size = 12
@@ -18,60 +18,41 @@
computer.play_interact_sound()
switch(action)
if("resetIDS")
if(SSnetworks.station_network)
SSnetworks.station_network.resetIDS()
SSmodular_computers.intrusion_detection_alarm = FALSE
return TRUE
if("toggleIDS")
if(SSnetworks.station_network)
SSnetworks.station_network.toggleIDS()
return TRUE
if("toggleWireless")
if(!SSnetworks.station_network)
return
// NTNet is disabled. Enabling can be done without user prompt
if(SSnetworks.station_network.setting_disabled)
SSnetworks.station_network.setting_disabled = FALSE
return TRUE
SSnetworks.station_network.setting_disabled = TRUE
SSmodular_computers.intrusion_detection_enabled = !SSmodular_computers.intrusion_detection_enabled
return TRUE
if("purgelogs")
if(SSnetworks.station_network)
SSnetworks.station_network.purge_logs()
return TRUE
if("updatemaxlogs")
var/logcount = params["new_number"]
if(SSnetworks.station_network)
SSnetworks.station_network.update_max_log_count(logcount)
SSmodular_computers.purge_logs()
return TRUE
if("toggle_function")
if(!SSnetworks.station_network)
return
SSnetworks.station_network.toggle_function(text2num(params["id"]))
SSmodular_computers.toggle_function(text2num(params["id"]))
return TRUE
/datum/computer_file/program/ntnetmonitor/ui_data(mob/user)
if(!SSnetworks.station_network)
if(!SSmodular_computers)
return
var/list/data = get_header_data()
data["ntnetstatus"] = SSnetworks.station_network.check_function()
data["ntnetrelays"] = SSnetworks.station_network.relays.len
data["idsstatus"] = SSnetworks.station_network.intrusion_detection_enabled
data["idsalarm"] = SSnetworks.station_network.intrusion_detection_alarm
data["ntnetstatus"] = SSmodular_computers.check_function()
data["idsstatus"] = SSmodular_computers.intrusion_detection_enabled
data["idsalarm"] = SSmodular_computers.intrusion_detection_alarm
data["config_softwaredownload"] = SSnetworks.station_network.setting_softwaredownload
data["config_peertopeer"] = SSnetworks.station_network.setting_peertopeer
data["config_communication"] = SSnetworks.station_network.setting_communication
data["config_systemcontrol"] = SSnetworks.station_network.setting_systemcontrol
data["ntnetrelays"] = list()
for(var/obj/machinery/ntnet_relay/relays as anything in SSmachines.get_machines_by_type(/obj/machinery/ntnet_relay))
var/list/relay_data = list()
relay_data["is_operational"] = relays.is_operational()
relay_data["name"] = relays.name
relay_data["ref"] = REF(relays)
data["ntnetrelays"] += list(relay_data)
data["config_softwaredownload"] = SSmodular_computers.setting_softwaredownload
data["config_communication"] = SSmodular_computers.setting_communication
data["ntnetlogs"] = list()
data["minlogs"] = MIN_NTNET_LOGS
data["maxlogs"] = MAX_NTNET_LOGS
for(var/i in SSnetworks.station_network.logs)
for(var/i in SSmodular_computers.modpc_logs)
data["ntnetlogs"] += list(list("entry" = i))
data["ntnetmaxlogs"] = SSnetworks.station_network.setting_maxlogcount
return data

View File

@@ -3,7 +3,7 @@
/datum/computer_file/program/power_monitor
filename = "powermonitor"
filedesc = "Power Monitor"
category = PROGRAM_CATEGORY_ENGI
category = PROGRAM_CATEGORY_ENGINEERING
program_icon_state = "power_monitor"
extended_desc = "This program connects to sensors around the station to provide information about electrical systems."
ui_header = "power_norm.gif"

View File

@@ -2,7 +2,7 @@
/datum/computer_file/program/nuclear_monitor
filename = "agcnrmonitor"
filedesc = "Nuclear Reactor Monitoring"
category = PROGRAM_CATEGORY_ENGI
category = PROGRAM_CATEGORY_ENGINEERING
ui_header = "smmon_0.gif"
program_icon_state = "smmon_0"
extended_desc = "This program connects to specially calibrated sensors to provide information on the status of nuclear reactors."

View File

@@ -1,7 +1,7 @@
/datum/computer_file/program/supermatter_monitor
filename = "smmonitor"
filedesc = "Supermatter Monitoring"
category = PROGRAM_CATEGORY_ENGI
category = PROGRAM_CATEGORY_ENGINEERING
ui_header = "smmon_0.gif"
program_icon_state = "smmon_0"
extended_desc = "This program connects to specially calibrated supermatter sensors to provide information on the status of supermatter-based engines."

View File

@@ -1,7 +1,7 @@
/datum/computer_file/program/chemscan
filename = "chemscan"
filedesc = "Chemical Scanner"
category = PROGRAM_CATEGORY_MED
category = PROGRAM_CATEGORY_DEVICE
program_icon_state = "air"
extended_desc = "A small built-in sensor reads out the chemicals in an item."
network_destination = "chem scan"

View File

@@ -2,7 +2,7 @@
filename = "crewmon"
filedesc = "Crew Suit Sensor Monitor"
extended_desc = "This program allows for viewing of crew members vitals via their suit sensors."
category = PROGRAM_CATEGORY_MED
category = PROGRAM_CATEGORY_EQUIPMENT
ui_header = "health_green.gif"
program_icon_state = "crew"
requires_ntnet = FALSE

View File

@@ -14,6 +14,7 @@
program_icon_state = "arcade"
extended_desc = "A port of the classic game 'Minesweeper', redesigned to run on tablets."
requires_ntnet = FALSE
category = PROGRAM_CATEGORY_GAMES
network_destination = "arcade network"
size = 6
tgui_id = "NtosMinesweeper"

View File

@@ -21,25 +21,18 @@
var/downloaderror = ""
var/obj/item/modular_computer/my_computer = null
var/emagged = FALSE
var/list/main_repo
var/list/antag_repo
var/list/show_categories = list(
PROGRAM_CATEGORY_CMD,
PROGRAM_CATEGORY_SEC,
PROGRAM_CATEGORY_ENGI,
PROGRAM_CATEGORY_SCI,
PROGRAM_CATEGORY_MED,
PROGRAM_CATEGORY_SUPL,
PROGRAM_CATEGORY_MISC,
///The list of categories to display in the UI, in order of which they appear.
var/static/list/show_categories = list(
PROGRAM_CATEGORY_DEVICE,
PROGRAM_CATEGORY_EQUIPMENT,
PROGRAM_CATEGORY_GAMES,
PROGRAM_CATEGORY_SECURITY,
PROGRAM_CATEGORY_ENGINEERING,
PROGRAM_CATEGORY_SUPPLY,
PROGRAM_CATEGORY_SCIENCE,
)
/datum/computer_file/program/ntnetdownload/run_program()
. = ..()
main_repo = SSnetworks.station_network.available_station_software
antag_repo = SSnetworks.station_network.available_antag_software
/datum/computer_file/program/ntnetdownload/run_emag()
if(emagged)
return FALSE
@@ -49,7 +42,7 @@
if(downloaded_file)
return FALSE
var/datum/computer_file/program/PRG = SSnetworks.station_network.find_ntnet_file_by_name(filename)
var/datum/computer_file/program/PRG = SSmodular_computers.find_ntnet_file_by_name(filename)
if(!PRG || !istype(PRG))
return FALSE
@@ -65,10 +58,10 @@
ui_header = "downloader_running.gif"
if(PRG in main_repo)
if(PRG in SSmodular_computers.available_station_software)
generate_network_log("Began downloading file [PRG.filename].[PRG.filetype] from NTNet Software Repository.")
hacked_download = FALSE
else if(PRG in antag_repo)
else if(PRG in SSmodular_computers.available_antag_software)
generate_network_log("Began downloading file **ENCRYPTED**.[PRG.filetype] from unspecified server.")
hacked_download = TRUE
else
@@ -123,7 +116,7 @@
if(ntnet_status != 3) // Ethernet unaffected by distance
var/dist = 100
// Loop through every ntnet relay, find the closest one and use that
for(var/obj/machinery/ntnet_relay/n in SSnetworks.station_network.relays)
for(var/obj/machinery/ntnet_relay/n as anything in SSmachines.get_machines_by_type(/obj/machinery/ntnet_relay))
var/cur_dist = get_dist_euclidian(n, computer)
if(n.is_operational() && cur_dist <= dist)
dist = cur_dist
@@ -151,15 +144,14 @@
return FALSE
/datum/computer_file/program/ntnetdownload/ui_data(mob/user)
var/list/data = get_header_data()
my_computer = computer
if(!istype(my_computer))
return
return data
var/obj/item/computer_hardware/card_slot/card_slot = computer.all_components[MC_CARD]
var/list/access = card_slot?.GetAccess()
var/list/data = get_header_data()
data["downloading"] = !!downloaded_file
data["error"] = downloaderror || FALSE
@@ -176,34 +168,31 @@
data["disk_used"] = hard_drive.used_capacity
data["emagged"] = emagged
var/list/repo = antag_repo | main_repo
var/list/program_categories = list()
var/list/repo = SSmodular_computers.available_antag_software | SSmodular_computers.available_station_software
for(var/I in repo)
var/datum/computer_file/program/P = I
if(!(P.category in program_categories))
program_categories.Add(P.category)
data["programs"] = list()
for(var/datum/computer_file/program/programs as anything in repo)
data["programs"] += list(list(
"icon" = P.program_icon,
"filename" = P.filename,
"filedesc" = P.filedesc,
"fileinfo" = P.extended_desc,
"category" = P.category,
"installed" = !!hard_drive.find_file_by_name(P.filename),
"compatible" = check_compatibility(P),
"size" = P.size,
"access" = emagged ? TRUE : P.can_run(user,transfer = 1, access = access),
"verifiedsource" = P.available_on_ntnet,
"icon" = programs.program_icon,
"filename" = programs.filename,
"filedesc" = programs.filedesc,
"fileinfo" = programs.extended_desc,
"category" = programs.category,
"installed" = !!hard_drive.find_file_by_name(programs.filename),
"compatible" = check_compatibility(programs),
"size" = programs.size,
"access" = programs.can_run(user, transfer = TRUE, access = access),
"verifiedsource" = programs.available_on_ntnet,
))
data["categories"] = show_categories & program_categories
data["categories"] = show_categories
return data
/datum/computer_file/program/ntnetdownload/proc/check_compatibility(datum/computer_file/program/P)
var/hardflag = computer.hardware_flag
if(P && P.is_supported_by_hardware(hardflag,0))
if(P && P.is_supported_by_hardware(hardflag, 0))
return TRUE
return FALSE
@@ -230,8 +219,3 @@
ui_header = "downloader_finished.gif"
tgui_id = "NtosNetDownloader"
emagged = TRUE
/datum/computer_file/program/ntnetdownload/syndicate/run_program()
. = ..()
main_repo = SSnetworks.station_network.available_antag_software
antag_repo = null

View File

@@ -1,7 +1,7 @@
/datum/computer_file/program/chatclient
filename = "ntnrc_client"
filedesc = "Chat Client"
category = PROGRAM_CATEGORY_MISC
category = PROGRAM_CATEGORY_DEVICE
program_icon_state = "command"
extended_desc = "This program allows communication over NTNRC network"
size = 8
@@ -27,7 +27,7 @@
if(..())
return
var/datum/ntnet_conversation/channel = SSnetworks.station_network.get_chat_channel_by_id(active_channel)
var/datum/ntnet_conversation/channel = SSmodular_computers.get_chat_channel_by_id(active_channel)
var/authed = FALSE
computer.play_interact_sound()
if(channel && ((channel.operator == src) || netadmin_mode))
@@ -69,7 +69,7 @@
return TRUE
active_channel = new_target
channel = SSnetworks.station_network.get_chat_channel_by_id(new_target)
channel = SSmodular_computers.get_chat_channel_by_id(new_target)
if(!(src in channel.clients) && !channel.password)
channel.add_client(src)
return TRUE
@@ -107,7 +107,7 @@
return TRUE
var/mob/living/user = usr
if(can_run(user, TRUE, ACCESS_NETWORK))
for(var/C in SSnetworks.station_network.chat_channels)
for(var/C in SSmodular_computers.chat_channels)
var/datum/ntnet_conversation/chan = C
chan.remove_client(src)
netadmin_mode = TRUE
@@ -127,7 +127,7 @@
log_say(log_message)
return
//yogs end
for(var/C in SSnetworks.station_network.chat_channels)
for(var/C in SSmodular_computers.chat_channels)
var/datum/ntnet_conversation/chan = C
if(src in chan.clients)
chan.add_status_message("[username] is now known as [newname].")
@@ -206,7 +206,7 @@
/datum/computer_file/program/chatclient/process_tick()
. = ..()
var/datum/ntnet_conversation/channel = SSnetworks.station_network.get_chat_channel_by_id(active_channel)
var/datum/ntnet_conversation/channel = SSmodular_computers.get_chat_channel_by_id(active_channel)
if(program_state != PROGRAM_STATE_KILLED)
ui_header = "ntnrc_idle.gif"
if(channel)
@@ -221,7 +221,7 @@
ui_header = "ntnrc_idle.gif"
/datum/computer_file/program/chatclient/kill_program(forced = FALSE)
for(var/C in SSnetworks.station_network.chat_channels)
for(var/C in SSmodular_computers.chat_channels)
var/datum/ntnet_conversation/channel = C
channel.remove_client(src)
..()
@@ -232,7 +232,7 @@
return data
/datum/computer_file/program/chatclient/ui_data(mob/user)
if(!SSnetworks.station_network || !SSnetworks.station_network.chat_channels)
if(!SSmodular_computers || !SSmodular_computers.chat_channels)
return list()
var/list/data = list()
@@ -240,7 +240,7 @@
data = get_header_data()
var/list/all_channels = list()
for(var/C in SSnetworks.station_network.chat_channels)
for(var/C in SSmodular_computers.chat_channels)
var/datum/ntnet_conversation/conv = C
if(conv && conv.title)
all_channels.Add(list(list(
@@ -252,7 +252,7 @@
data["active_channel"] = active_channel
data["username"] = username
data["adminmode"] = netadmin_mode
var/datum/ntnet_conversation/channel = SSnetworks.station_network.get_chat_channel_by_id(active_channel)
var/datum/ntnet_conversation/channel = SSmodular_computers.get_chat_channel_by_id(active_channel)
if(channel)
data["title"] = channel.title
var/authed = FALSE

View File

@@ -7,7 +7,7 @@ GLOBAL_LIST_EMPTY(NTPDAMessages)
/datum/computer_file/program/pdamessager
filename = "pda_client"
filedesc = "PDA Messaging"
category = PROGRAM_CATEGORY_MISC
category = PROGRAM_CATEGORY_DEVICE
program_icon_state = "command"
extended_desc = "This program allows for direct messaging with other modular computers"
size = 3

View File

@@ -2,7 +2,7 @@
/datum/computer_file/program/paperwork_printer
filename = "ppwrkprnt"
filedesc = "Paperwork Printing"
category = PROGRAM_CATEGORY_MISC
category = PROGRAM_CATEGORY_EQUIPMENT
program_icon_state = "id"
extended_desc = "Program for dispensing paperwork."
requires_ntnet = FALSE

View File

@@ -15,6 +15,7 @@
extended_desc = "This program connects to a Spinward Sector community art site for viewing and printing art."
transfer_access = ACCESS_LIBRARY
usage_flags = PROGRAM_CONSOLE | PROGRAM_TELESCREEN
category = PROGRAM_CATEGORY_EQUIPMENT
requires_ntnet = TRUE
size = 9
tgui_id = "NtosPortraitPrinter"

View File

@@ -219,7 +219,7 @@
requires_ntnet = FALSE //Tracking should not require NTNET, as sensors are not on the network at all, and the program is downloaded locally.
transfer_access = ACCESS_MEDICAL
available_on_ntnet = TRUE
category = PROGRAM_CATEGORY_MED
category = PROGRAM_CATEGORY_EQUIPMENT
program_icon = "street-view"
/datum/computer_file/program/radar/lifeline/find_atom()
@@ -275,7 +275,7 @@
/datum/computer_file/program/radar/fission360
filename = "Fission360"
filedesc = "Fission360"
category = PROGRAM_CATEGORY_MISC
category = PROGRAM_CATEGORY_EQUIPMENT
program_icon_state = "radarsyndicate"
extended_desc = "This program allows for tracking of nuclear authorization disks and warheads."
requires_ntnet = FALSE
@@ -321,7 +321,7 @@
/datum/computer_file/program/radar/implant
filename = "implanttracker"
filedesc = "Implant Tracker"
category = PROGRAM_CATEGORY_SEC
category = PROGRAM_CATEGORY_SECURITY
extended_desc = "This program allows for tracking those implanted with tracking implants."
requires_ntnet = FALSE //Same as Lifeline.
transfer_access = ACCESS_BRIG

View File

@@ -4,6 +4,7 @@
extended_desc = "A built-in app for cyborg self-management and diagnostics."
ui_header = "robotact.gif" //DEBUG -- new icon before PR
program_icon_state = "command"
category = PROGRAM_CATEGORY_SCIENCE
requires_ntnet = FALSE
transfer_access = null
available_on_ntnet = FALSE

View File

@@ -1,7 +1,7 @@
/datum/computer_file/program/aidiag
filename = "aidiag"
filedesc = "AI Integrity Restorer"
category = PROGRAM_CATEGORY_SCI
category = PROGRAM_CATEGORY_SCIENCE
program_icon_state = "generic"
extended_desc = "This program is capable of reconstructing damaged AI systems. Requires direct AI connection via intellicard slot."
size = 12

View File

@@ -1,7 +1,7 @@
/datum/computer_file/program/borg_monitor
filename = "cyborgmonitor"
filedesc = "Cyborg Remote Monitoring"
category = PROGRAM_CATEGORY_SCI
category = PROGRAM_CATEGORY_SCIENCE
ui_header = "borg_mon.gif"
program_icon_state = "generic"
extended_desc = "This program allows for remote monitoring of station cyborgs."
@@ -166,7 +166,7 @@
/datum/computer_file/program/borg_monitor/syndicate
filename = "scyborgmonitor"
filedesc = "Mission-Specific Cyborg Remote Monitoring"
category = PROGRAM_CATEGORY_SCI
category = PROGRAM_CATEGORY_SCIENCE
ui_header = "borg_mon.gif"
program_icon_state = "generic"
extended_desc = "This program allows for remote monitoring of mission-assigned cyborgs."

View File

@@ -2,7 +2,7 @@
/datum/computer_file/program/robocontrol
filename = "robocontrol"
filedesc = "Bot Remote Controller"
category = PROGRAM_CATEGORY_SCI
category = PROGRAM_CATEGORY_SCIENCE
program_icon_state = "robot"
extended_desc = "A remote controller used for giving basic commands to non-sentient robots."
requires_ntnet = TRUE

View File

@@ -4,7 +4,7 @@
/datum/computer_file/program/secureye
filename = "secureye"
filedesc = "SecurEye"
category = PROGRAM_CATEGORY_SEC
category = PROGRAM_CATEGORY_SECURITY
ui_header = "borg_mon.gif"
program_icon_state = "generic"
extended_desc = "This program allows access to standard security camera networks."
@@ -186,7 +186,7 @@
/datum/computer_file/program/secureye/mining
filename = "overwatch"
filedesc = "OverWatch"
category = PROGRAM_CATEGORY_SUPL
category = PROGRAM_CATEGORY_SUPPLY
extended_desc = "This program allows access to the mining base camera network."
transfer_access = ACCESS_MINING
size = 5

View File

@@ -1,7 +1,7 @@
/datum/computer_file/program/bounty_board
filename = "bountyboard"
filedesc = "Bounty Board Request Network"
category = PROGRAM_CATEGORY_SUPL
category = PROGRAM_CATEGORY_SUPPLY
program_icon_state = "bountyboard"
extended_desc = "A multi-platform network for placing requests across the station, with payment across the network being possible."
requires_ntnet = TRUE

View File

@@ -1,7 +1,7 @@
/datum/computer_file/program/budgetorders
filename = "orderapp"
filedesc = "NT IRN"
category = PROGRAM_CATEGORY_SUPL
category = PROGRAM_CATEGORY_SUPPLY
program_icon_state = "bountyboard"
extended_desc = "Nanotrasen Internal Requisition Network interface for supply purchasing using a department budget account."
requires_ntnet = TRUE

View File

@@ -1,7 +1,7 @@
/datum/computer_file/program/cargobounty
filename = "bounty"
filedesc = "Nanotrasen Bounty Hunter"
category = PROGRAM_CATEGORY_SUPL
category = PROGRAM_CATEGORY_SUPPLY
program_icon_state = "bountyboard"
extended_desc = "A basic interface for supply personnel to check and claim bounties."
requires_ntnet = TRUE

View File

@@ -8,6 +8,7 @@
size = 2
available_on_ntnet = TRUE
requires_ntnet = FALSE
category = PROGRAM_CATEGORY_DEVICE
tgui_id = "NtosThemeConfigure"
program_icon="paint-roller"