mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-21 23:52:12 +00:00
The Computer-ening (#13831)
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
var/obj/item/modular_computer/computer // Device that runs this program.
|
||||
var/extended_desc = "N/A" // Short description of this program's function.
|
||||
var/program_icon_state // Program-specific screen icon state
|
||||
var/program_key_icon_state // Program-specific keyboard icon state (really only applies to consoles but can be used for other purposes like having mix-n-match screens)
|
||||
var/requires_ntnet = FALSE // Set to TRUE for program to require nonstop NTNet connection to run. If NTNet connection is lost program crashes.
|
||||
var/requires_ntnet_feature = FALSE // Optional, if above is set to TRUE checks for specific function of NTNet (currently NTNET_SOFTWAREDOWNLOAD, NTNET_PEERTOPEER, NTNET_SYSTEMCONTROL and NTNET_COMMUNICATION)
|
||||
var/ntnet_status = TRUE // NTNet status, updated every tick by computer running this program. Don't use this for checks if NTNet works, computers do that. Use this for calculations, etc.
|
||||
@@ -232,4 +233,4 @@
|
||||
if(M.stat == DEAD && (M.client && M.client.prefs.toggles & CHAT_GHOSTEARS))
|
||||
if(isnewplayer(M))
|
||||
continue
|
||||
to_chat(M, message)
|
||||
to_chat(M, message)
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
filename = "ntn_dos"
|
||||
filedesc = "DoS Traffic Generator"
|
||||
program_icon_state = "hostile"
|
||||
program_key_icon_state = "red_key"
|
||||
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
|
||||
requires_ntnet = TRUE
|
||||
@@ -104,4 +105,4 @@
|
||||
if(ntnet_global.intrusion_detection_enabled)
|
||||
ntnet_global.add_log("IDS WARNING - Excess traffic flood targeting relay [target.uid] detected from device: [computer.network_card.get_network_tag()]")
|
||||
ntnet_global.intrusion_detection_alarm = TRUE
|
||||
return TRUE
|
||||
return TRUE
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
filedesc = "Camera Decryption Tool"
|
||||
nanomodule_path = /datum/nano_module/camera_monitor/hacked
|
||||
program_icon_state = "hostile"
|
||||
program_key_icon_state = "red_key"
|
||||
extended_desc = "This very advanced piece of software uses adaptive programming and large database of cipherkeys to bypass most encryptions used on camera networks. Be warned that the system administrator may notice this."
|
||||
size = 8
|
||||
available_on_ntnet = FALSE
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
filename = "revelation"
|
||||
filedesc = "Revelation"
|
||||
program_icon_state = "hostile"
|
||||
program_key_icon_state = "red_key"
|
||||
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
|
||||
requires_ntnet = FALSE
|
||||
@@ -72,4 +73,4 @@
|
||||
ui.auto_update_layout = TRUE
|
||||
ui.set_initial_data(data)
|
||||
ui.open()
|
||||
ui.set_auto_update(TRUE)
|
||||
ui.set_auto_update(TRUE)
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
filename = "cargocontrol"
|
||||
filedesc = "Cargo Control"
|
||||
extended_desc = "Application to Control Cargo Orders"
|
||||
program_icon_state = "ops"
|
||||
program_icon_state = "supply"
|
||||
program_key_icon_state = "yellow_key"
|
||||
size = 12
|
||||
requires_ntnet = TRUE
|
||||
available_on_ntnet = TRUE
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
filename = "cargodelivery"
|
||||
filedesc = "Cargo Delivery"
|
||||
extended_desc = "Application to Control Delivery and Payment of Cargo orders."
|
||||
program_icon_state = "ops"
|
||||
program_icon_state = "supply"
|
||||
program_key_icon_state = "yellow_key"
|
||||
size = 6
|
||||
requires_ntnet = TRUE
|
||||
available_on_ntnet = TRUE
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
filename = "cargoorder"
|
||||
filedesc = "Cargo Order"
|
||||
extended_desc = "Application to Order Items from Cargo."
|
||||
program_icon_state = "request"
|
||||
program_key_icon_state = "yellow_key"
|
||||
size = 10
|
||||
requires_ntnet = TRUE
|
||||
available_on_ntnet = TRUE
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
filename = "crushercontrol"
|
||||
filedesc = "Crusher Control"
|
||||
extended_desc = "Application to Control the Crusher"
|
||||
program_icon_state = "command"
|
||||
program_key_icon_state = "green_key"
|
||||
size = 8
|
||||
requires_ntnet = FALSE
|
||||
available_on_ntnet = FALSE
|
||||
@@ -69,7 +71,7 @@
|
||||
if(arlk.id_tag != "crusher")
|
||||
continue
|
||||
airlocks += arlk
|
||||
|
||||
|
||||
airlock_open()
|
||||
|
||||
if(href_list["hatch_open"])
|
||||
@@ -84,11 +86,11 @@
|
||||
message = "Crushing"
|
||||
airlock_close()
|
||||
crush_start()
|
||||
|
||||
|
||||
if(href_list["abort"])
|
||||
message = "Aborting"
|
||||
crush_stop()
|
||||
|
||||
|
||||
if(href_list["close"])
|
||||
message = null
|
||||
|
||||
@@ -114,4 +116,4 @@
|
||||
|
||||
/datum/nano_module/program/crushercontrol/proc/crush_stop()
|
||||
for(var/obj/machinery/crusher_base/pstn in pistons)
|
||||
pstn.crush_abort()
|
||||
pstn.crush_abort()
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
filename = "janitor"
|
||||
filedesc = "Custodial Supplies Locator"
|
||||
program_icon_state = "generic"
|
||||
program_key_icon_state = "green_key"
|
||||
extended_desc = "This program is used by custodial staff to keep track of work-related supplies."
|
||||
program_icon_state = "ops"
|
||||
usage_flags = PROGRAM_ALL_REGULAR
|
||||
size = 4
|
||||
required_access_run = access_janitor
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
/datum/computer_file/program/account_db
|
||||
filename = "accdb"
|
||||
filedesc = "Account Database"
|
||||
program_icon_state = "command"
|
||||
program_icon_state = "employment_record"
|
||||
program_key_icon_state = "lightblue_key"
|
||||
extended_desc = "Access transaction logs, account data and all kinds of other financial records."
|
||||
requires_ntnet = TRUE
|
||||
available_on_ntnet = FALSE
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
filename = "cardmod"
|
||||
filedesc = "ID Card Modification Program"
|
||||
nanomodule_path = /datum/nano_module/program/card_mod
|
||||
program_icon_state = "command"
|
||||
program_icon_state = "id"
|
||||
program_key_icon_state = "lightblue_key"
|
||||
extended_desc = "Program for programming employee ID cards to access parts of the station."
|
||||
required_access_run = access_change_ids
|
||||
required_access_download = access_change_ids
|
||||
@@ -219,4 +220,4 @@
|
||||
id_card.access -= get_access_ids(ACCESS_TYPE_STATION|ACCESS_TYPE_CENTCOM)
|
||||
|
||||
/datum/computer_file/program/card_mod/proc/apply_access(var/obj/item/card/id/id_card, var/list/accesses)
|
||||
id_card.access |= accesses
|
||||
id_card.access |= accesses
|
||||
|
||||
@@ -7,7 +7,8 @@
|
||||
/datum/computer_file/program/comm
|
||||
filename = "comm"
|
||||
filedesc = "Command and Communications Program"
|
||||
program_icon_state = "command"
|
||||
program_icon_state = "comm"
|
||||
program_key_icon_state = "lightblue_key"
|
||||
nanomodule_path = /datum/nano_module/program/comm
|
||||
extended_desc = "Used to command and control the station. Can relay long-range communications."
|
||||
required_access_run = access_heads
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
filename = "teleporter"
|
||||
filedesc = "Teleporter Control"
|
||||
extended_desc = "A NanoTrasen command remote teleportation hub controller."
|
||||
program_icon_state = "command"
|
||||
program_icon_state = "teleport"
|
||||
program_key_icon_state = "lightblue_key"
|
||||
color = LIGHT_COLOR_BLUE
|
||||
size = 8
|
||||
requires_ntnet = TRUE
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
filename = "powermonitor"
|
||||
filedesc = "Power Monitoring"
|
||||
nanomodule_path = /datum/nano_module/power_monitor
|
||||
program_icon_state = "engi"
|
||||
program_icon_state = "power_monitor"
|
||||
program_key_icon_state = "yellow_key"
|
||||
extended_desc = "This program connects to sensors around the station to provide information about electrical systems"
|
||||
ui_header = "power_norm.gif"
|
||||
required_access_run = access_engine
|
||||
@@ -21,13 +22,13 @@
|
||||
var/datum/nano_module/power_monitor/NMA = NM
|
||||
if(istype(NMA) && NMA.has_alarm())
|
||||
if(!has_alert)
|
||||
program_icon_state = "engi_alarm_on"
|
||||
program_icon_state = "power_monitor_warn"
|
||||
ui_header = "power_warn.gif"
|
||||
update_computer_icon()
|
||||
has_alert = TRUE
|
||||
else
|
||||
if(has_alert)
|
||||
program_icon_state = "engi"
|
||||
program_icon_state = "power_monitor"
|
||||
ui_header = "power_norm.gif"
|
||||
update_computer_icon()
|
||||
has_alert = FALSE
|
||||
@@ -37,7 +38,7 @@
|
||||
filedesc = "Alarm Monitoring"
|
||||
nanomodule_path = /datum/nano_module/alarm_monitor/engineering
|
||||
ui_header = "alarm_green.gif"
|
||||
program_icon_state = "engi_alarm_off"
|
||||
program_icon_state = "alert:0"
|
||||
extended_desc = "This program provides visual interface for station's alarm system."
|
||||
requires_ntnet = TRUE
|
||||
network_destination = "alarm monitoring network"
|
||||
@@ -51,13 +52,13 @@
|
||||
var/datum/nano_module/alarm_monitor/NMA = NM
|
||||
if(istype(NMA) && NMA.has_major_alarms())
|
||||
if(!has_alert)
|
||||
program_icon_state = "engi_alarm_on"
|
||||
program_icon_state = "alert:2"
|
||||
ui_header = "alarm_red.gif"
|
||||
update_computer_icon()
|
||||
has_alert = TRUE
|
||||
else
|
||||
if(has_alert)
|
||||
program_icon_state = "engi_alarm_off"
|
||||
program_icon_state = "alert:0"
|
||||
ui_header = "alarm_green.gif"
|
||||
update_computer_icon()
|
||||
has_alert = FALSE
|
||||
@@ -67,7 +68,8 @@
|
||||
filename = "atmoscontrol"
|
||||
filedesc = "Atmosphere Control"
|
||||
nanomodule_path = /datum/nano_module/atmos_control
|
||||
program_icon_state = "engi"
|
||||
program_icon_state = "atmos_control"
|
||||
program_key_icon_state = "cyan_key"
|
||||
extended_desc = "This program allows remote control of air alarms around the station. This program can not be run on tablet computers."
|
||||
required_access_run = access_atmospherics
|
||||
required_access_download = access_ce
|
||||
@@ -82,7 +84,8 @@
|
||||
filename = "rcon"
|
||||
filedesc = "RCON Remote Control"
|
||||
nanomodule_path = /datum/nano_module/rcon
|
||||
program_icon_state = "engi"
|
||||
program_icon_state = "power"
|
||||
program_key_icon_state = "yellow_key"
|
||||
extended_desc = "This program allows remote control of power distribution systems around the station. This program can not be run on tablet computers."
|
||||
required_access_run = access_engine
|
||||
required_access_download = access_ce
|
||||
@@ -91,14 +94,15 @@
|
||||
requires_ntnet_feature = NTNET_SYSTEMCONTROL
|
||||
usage_flags = PROGRAM_CONSOLE | PROGRAM_STATIONBOUND
|
||||
size = 19
|
||||
color = LIGHT_COLOR_GREEN
|
||||
color = LIGHT_COLOR_YELLOW
|
||||
|
||||
// Night-Mode Toggle for CE
|
||||
/datum/computer_file/program/lighting_control
|
||||
filename = "lightctrl"
|
||||
filedesc = "Lighting Controller"
|
||||
nanomodule_path = /datum/nano_module/lighting_ctrl
|
||||
program_icon_state = "engi"
|
||||
program_icon_state = "power"
|
||||
program_key_icon_state = "yellow_key"
|
||||
extended_desc = "This program allows mass-control of the station's lighting systems. This program cannot be run on tablet computers."
|
||||
required_access_run = access_heads
|
||||
required_access_download = access_ce
|
||||
@@ -107,4 +111,4 @@
|
||||
requires_ntnet_feature = NTNET_SYSTEMCONTROL
|
||||
usage_flags = PROGRAM_CONSOLE | PROGRAM_STATIONBOUND
|
||||
size = 9
|
||||
color = LIGHT_COLOR_GREEN
|
||||
color = LIGHT_COLOR_GREEN
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
/datum/computer_file/program/game/arcade
|
||||
filename = "arcadec" // File name, as shown in the file browser program.
|
||||
filedesc = "Unknown Game" // User-Friendly name. In this case, we will generate a random name in constructor.
|
||||
program_icon_state = "generic" // Icon state of this program's screen.
|
||||
program_icon_state = "game" // Icon state of this program's screen.
|
||||
program_key_icon_state = "black_key"
|
||||
extended_desc = "Fun for the whole family! Probably not an AAA title, but at least you can download it on the corporate network.." // A nice description.
|
||||
size = 2 // Size in GQ. Integers only. Smaller sizes should be used for utility/low use programs (like this one), while large sizes are for important programs.
|
||||
requires_ntnet = FALSE // This particular program does not require NTNet network conectivity...
|
||||
@@ -148,4 +149,4 @@
|
||||
player_mana += regen
|
||||
enemy_play()
|
||||
check_gameover()
|
||||
return TRUE
|
||||
return TRUE
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
/datum/computer_file/program/game/sudoku
|
||||
filename = "sudoku" // File name, as shown in the file browser program.
|
||||
filedesc = "Sudoku" // User-Friendly name. In this case, we will generate a random name in constructor.
|
||||
program_icon_state = "generic" // Icon state of this program's screen.
|
||||
program_icon_state = "sudoku" // Icon state of this program's screen.
|
||||
program_key_icon_state = "black_key"
|
||||
extended_desc = "A game of numbers, logic, and deduction. Popular for centuries to keep the mind sharp." // A nice description.
|
||||
size = 2 // Size in GQ. Integers only. Smaller sizes should be used for utility/low use programs (like this one), while large sizes are for important programs.
|
||||
requires_ntnet = FALSE // This particular program does not require NTNet network conectivity...
|
||||
@@ -207,4 +208,4 @@
|
||||
tile["highlight"] = 0
|
||||
if(full)
|
||||
cheated = FALSE
|
||||
won_game = FALSE
|
||||
won_game = FALSE
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
/datum/computer_file/program/atmos
|
||||
filename = "atmos"
|
||||
filedesc = "Atmosphere Sensor"
|
||||
program_icon_state = "engi"
|
||||
program_icon_state = "tank"
|
||||
program_key_icon_state = "cyan_key"
|
||||
extended_desc = "This program is for viewing local atmospheric data."
|
||||
size = 2
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
/datum/computer_file/program/manifest
|
||||
filename = "manifest"
|
||||
filedesc = "Crew Manifest"
|
||||
program_icon_state = "generic"
|
||||
program_icon_state = "menu"
|
||||
program_key_icon_state = "black_key"
|
||||
extended_desc = "This program is used for viewing the crew manifest."
|
||||
usage_flags = PROGRAM_ALL
|
||||
size = 3
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
filename = "newsbrowser"
|
||||
filedesc = "News Browser"
|
||||
extended_desc = "This program may be used to view and download news articles from the network."
|
||||
program_icon_state = "generic"
|
||||
program_icon_state = "menu"
|
||||
program_key_icon_state = "black_key"
|
||||
usage_flags = PROGRAM_CONSOLE | PROGRAM_LAPTOP | PROGRAM_TABLET | PROGRAM_STATIONBOUND | PROGRAM_WRISTBOUND
|
||||
size = 2
|
||||
requires_ntnet = TRUE
|
||||
@@ -127,4 +128,4 @@
|
||||
ui = new(user, src, ui_key, "news_browser.tmpl", "NTNet/ExoNet News Browser", 575, 700, state = state)
|
||||
ui.auto_update_layout = TRUE
|
||||
ui.set_initial_data(data)
|
||||
ui.open()
|
||||
ui.open()
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
/datum/computer_file/program/chat_client
|
||||
filename = "ntnrc_client"
|
||||
filedesc = "Chat Client"
|
||||
program_icon_state = "generic"
|
||||
program_icon_state = "command"
|
||||
program_key_icon_state = "green_key"
|
||||
extended_desc = "This program allows communication over the NTRC network."
|
||||
size = 2
|
||||
requires_ntnet = FALSE
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
filedesc = "NTSL2++ Interpreter"
|
||||
extended_desc = "This program is used to run NTSL2++ scripts."
|
||||
program_icon_state = "generic"
|
||||
program_key_icon_state = "green_key"
|
||||
usage_flags = PROGRAM_ALL
|
||||
size = 8
|
||||
requires_ntnet = TRUE
|
||||
@@ -40,7 +41,7 @@
|
||||
var/datum/computer_file/script/F = HDD.find_file_by_name(href_list["execute_file"])
|
||||
if(istype(F))
|
||||
var/code = F.code
|
||||
|
||||
|
||||
if(istype(running))
|
||||
running.execute(code, usr)
|
||||
is_running = TRUE
|
||||
@@ -90,7 +91,7 @@
|
||||
if(istype(running))
|
||||
running.handle_topic(href_list["terminal_topic"])
|
||||
. = TRUE
|
||||
|
||||
|
||||
if(.)
|
||||
SSvueui.check_uis_for_change(src)
|
||||
return FALSE
|
||||
@@ -115,7 +116,7 @@
|
||||
. = data
|
||||
|
||||
var/obj/item/computer_hardware/hard_drive/hdd = computer?.hard_drive
|
||||
|
||||
|
||||
if(is_running && istype(running))
|
||||
data["mode"] = "program"
|
||||
data["terminal"] = running.buffer
|
||||
@@ -126,7 +127,7 @@
|
||||
else
|
||||
VUEUI_SET_CHECK(data["mode"], "list", ., data)
|
||||
|
||||
|
||||
|
||||
data["files"] = list()
|
||||
for(var/datum/computer_file/script/F in hdd?.stored_files)
|
||||
if(F.filetype == "NTS" && !F.password)
|
||||
@@ -136,7 +137,7 @@
|
||||
"size" = F.size,
|
||||
"undeletable" = F.undeletable
|
||||
))
|
||||
|
||||
|
||||
|
||||
/datum/computer_file/program/ntsl2_interpreter/proc/buffer_callback_handler()
|
||||
SSvueui.check_uis_for_change(src)
|
||||
SSvueui.check_uis_for_change(src)
|
||||
|
||||
@@ -4,7 +4,8 @@ var/global/nttransfer_uid = 0
|
||||
filename = "nttransfer"
|
||||
filedesc = "NTNet P2P Transfer Client"
|
||||
extended_desc = "This program allows for simple file transfer via direct peer to peer connection."
|
||||
program_icon_state = "generic"
|
||||
program_icon_state = "comm_logs"
|
||||
program_key_icon_state = "green_key"
|
||||
size = 7
|
||||
requires_ntnet = TRUE
|
||||
requires_ntnet_feature = NTNET_PEERTOPEER
|
||||
@@ -192,4 +193,4 @@ var/global/nttransfer_uid = 0
|
||||
return TRUE
|
||||
if(href_list["PRG_uploadmenu"])
|
||||
upload_menu = TRUE
|
||||
return FALSE
|
||||
return FALSE
|
||||
|
||||
@@ -3,13 +3,14 @@
|
||||
filedesc = "Records"
|
||||
extended_desc = "Used to view, edit and maintain records."
|
||||
|
||||
program_icon_state = "command"
|
||||
program_icon_state = "generic"
|
||||
program_key_icon_state = "green_key"
|
||||
color = LIGHT_COLOR_BLUE
|
||||
available_on_ntnet = FALSE
|
||||
size = 6
|
||||
|
||||
requires_ntnet = TRUE
|
||||
requires_ntnet_feature = NTNET_SYSTEMCONTROL
|
||||
requires_ntnet_feature = "NTNET_SYSTEMCONTROL"
|
||||
requires_access_to_run = PROGRAM_ACCESS_LIST_ONE
|
||||
requires_access_to_download = PROGRAM_ACCESS_LIST_ONE
|
||||
usage_flags = PROGRAM_ALL_REGULAR | PROGRAM_STATIONBOUND
|
||||
@@ -45,7 +46,8 @@
|
||||
records_type = RECORD_MEDICAL | RECORD_VIRUS
|
||||
edit_type = RECORD_MEDICAL
|
||||
default_screen = "medical"
|
||||
program_icon_state = "med"
|
||||
program_icon_state = "medical_record"
|
||||
program_key_icon_state = "teal_key"
|
||||
color = LIGHT_COLOR_CYAN
|
||||
|
||||
/datum/computer_file/program/records/security
|
||||
@@ -61,8 +63,9 @@
|
||||
records_type = RECORD_SECURITY
|
||||
edit_type = RECORD_SECURITY
|
||||
default_screen = "security"
|
||||
program_icon_state = "sec"
|
||||
color = LIGHT_COLOR_RED
|
||||
program_icon_state = "security_record"
|
||||
program_key_icon_state = "yellow_key"
|
||||
color = LIGHT_COLOR_YELLOW
|
||||
|
||||
/datum/computer_file/program/records/employment
|
||||
filename = "emprec"
|
||||
@@ -77,7 +80,8 @@
|
||||
|
||||
records_type = RECORD_GENERAL | RECORD_SECURITY
|
||||
edit_type = RECORD_GENERAL
|
||||
program_icon_state = "command"
|
||||
program_icon_state = "employment_record"
|
||||
program_key_icon_state = "lightblue_key"
|
||||
color = LIGHT_COLOR_BLUE
|
||||
|
||||
/datum/computer_file/program/records/pai
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
filename = "signaler"
|
||||
filedesc = "Remote Signaller"
|
||||
program_icon_state = "generic"
|
||||
program_key_icon_state = "green_key"
|
||||
extended_desc = "This program can be used to send wide-range signals of various frequencies."
|
||||
size = 2
|
||||
available_on_ntnet = TRUE
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
/datum/computer_file/program/suit_sensors
|
||||
filename = "sensormonitor"
|
||||
filedesc = "Suit Sensors Monitoring"
|
||||
program_icon_state = "med"
|
||||
program_icon_state = "crew"
|
||||
program_key_icon_state = "teal_key"
|
||||
extended_desc = "This program connects to life signs monitoring system to provide basic information on crew health."
|
||||
required_access_run = access_medical
|
||||
required_access_download = access_cmo
|
||||
@@ -57,4 +58,4 @@
|
||||
var/mob/living/silicon/ai/AI = usr
|
||||
var/mob/living/carbon/human/H = locate(href_list["track"]) in mob_list
|
||||
if(hassensorlevel(H, SUIT_SENSOR_TRACKING))
|
||||
AI.ai_actual_track(H)
|
||||
AI.ai_actual_track(H)
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
filename = "pai_directives"
|
||||
filedesc = "pAI Directives"
|
||||
program_icon_state = "generic"
|
||||
program_key_icon_state = "green_key"
|
||||
extended_desc = "This program is for viewing currently assigned directives."
|
||||
size = 0
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
filename = "doorjack"
|
||||
filedesc = "Door Jack"
|
||||
program_icon_state = "generic"
|
||||
program_key_icon_state = "green_key"
|
||||
extended_desc = "This program is used to access standard-issue pAI door jack systems."
|
||||
size = 12
|
||||
|
||||
@@ -35,7 +36,7 @@
|
||||
if(headerdata)
|
||||
data["_PC"] = headerdata
|
||||
. = data
|
||||
|
||||
|
||||
if(!istype(computer, /obj/item/modular_computer/silicon))
|
||||
return
|
||||
var/obj/item/modular_computer/silicon/true_computer = computer
|
||||
@@ -48,7 +49,7 @@
|
||||
VUEUI_SET_CHECK(data["ishacking"], !!host.hackdoor, ., data)
|
||||
VUEUI_SET_CHECK(data["progress"], host.hackprogress, ., data)
|
||||
VUEUI_SET_CHECK(data["aborted"], host.hack_aborted, ., data)
|
||||
|
||||
|
||||
/datum/computer_file/program/pai_doorjack/Topic(href, href_list)
|
||||
. = ..()
|
||||
|
||||
@@ -58,7 +59,7 @@
|
||||
if(!istype(true_computer.computer_host, /mob/living/silicon/pai))
|
||||
return
|
||||
var/mob/living/silicon/pai/host = true_computer.computer_host
|
||||
|
||||
|
||||
if(href_list["hack"])
|
||||
if(host.cable && host.cable.machine)
|
||||
host.hackdoor = host.cable.machine
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
filename = "pai_radio"
|
||||
filedesc = "Radio Configuration"
|
||||
program_icon_state = "generic"
|
||||
program_key_icon_state = "green_key"
|
||||
extended_desc = "This program is used to configure the integrated pAI radio."
|
||||
size = 0
|
||||
|
||||
@@ -25,7 +26,7 @@
|
||||
var/headerdata = get_header_data(data["_PC"])
|
||||
if(headerdata)
|
||||
data["_PC"] = headerdata
|
||||
|
||||
|
||||
if(!istype(computer, /obj/item/modular_computer/silicon))
|
||||
return
|
||||
var/obj/item/modular_computer/silicon/true_computer = computer
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
/datum/computer_file/program/aidiag
|
||||
filename = "aidiag"
|
||||
filedesc = "AI Maintenance Utility"
|
||||
program_icon_state = "generic"
|
||||
program_icon_state = "ai-fixer"
|
||||
program_key_icon_state = "purple_key"
|
||||
extended_desc = "This program is capable of reconstructing damaged AI systems. It can also be used to upload basic laws to the AI. Requires direct AI connection via intellicard slot."
|
||||
size = 12
|
||||
requires_ntnet = FALSE
|
||||
@@ -115,4 +116,4 @@
|
||||
ui.auto_update_layout = TRUE
|
||||
ui.set_initial_data(data)
|
||||
ui.open()
|
||||
ui.set_auto_update(1)
|
||||
ui.set_auto_update(1)
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
/datum/computer_file/program/chemistry_codex
|
||||
filename = "chemcodex"
|
||||
filedesc = "Chemistry Codex"
|
||||
program_icon_state = "med"
|
||||
program_icon_state = "medcomp"
|
||||
program_key_icon_state = "teal_key"
|
||||
extended_desc = "Useful program to view chemical reactions and how to make them."
|
||||
size = 14
|
||||
requires_access_to_run = PROGRAM_ACCESS_LIST_ONE
|
||||
@@ -32,4 +33,4 @@
|
||||
// Here goes listification
|
||||
if(data["reactions"] == null)
|
||||
. = data
|
||||
data["reactions"] = SSchemistry.codex_data
|
||||
data["reactions"] = SSchemistry.codex_data
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
/datum/computer_file/program/ntnetmonitor
|
||||
filename = "ntmonitor"
|
||||
filedesc = "NTNet Diagnostics and Monitoring"
|
||||
program_icon_state = "sci"
|
||||
program_icon_state = "comm_monitor"
|
||||
program_key_icon_state = "green_key"
|
||||
extended_desc = "This program monitors stationwide NTNet network, provides access to logging systems, and allows for configuration changes"
|
||||
size = 12
|
||||
requires_ntnet = TRUE
|
||||
|
||||
@@ -31,7 +31,8 @@
|
||||
filename = "cammon"
|
||||
filedesc = "Camera Monitoring"
|
||||
nanomodule_path = /datum/nano_module/camera_monitor
|
||||
program_icon_state = "sec_alarm"
|
||||
program_icon_state = "cameras"
|
||||
program_key_icon_state = "yellow_key"
|
||||
extended_desc = "This program allows remote access to station's camera system. Some camera networks may have additional access requirements."
|
||||
size = 12
|
||||
available_on_ntnet = TRUE
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
filename = "digitalwarrant"
|
||||
filedesc = "Warrant Assistant"
|
||||
extended_desc = "Official NTsec program for creation and handling of warrants."
|
||||
program_icon_state = "sec"
|
||||
program_icon_state = "security"
|
||||
program_key_icon_state = "yellow_key"
|
||||
color = LIGHT_COLOR_ORANGE
|
||||
size = 8
|
||||
requires_ntnet = TRUE
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
filename = "guntracker"
|
||||
filedesc = "Firearm Control"
|
||||
extended_desc = "Official NTsec program for the tracking and remote control of wireless-enabled firearms."
|
||||
program_icon_state = "sec"
|
||||
program_icon_state = "security"
|
||||
program_key_icon_state = "yellow_key"
|
||||
color = LIGHT_COLOR_ORANGE
|
||||
size = 8
|
||||
requires_ntnet = TRUE
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
/datum/computer_file/program/implant_tracker
|
||||
filename = "implnttrckr"
|
||||
filedesc = "Remote Implant Tracking"
|
||||
program_icon_state = "sec"
|
||||
program_icon_state = "security"
|
||||
program_key_icon_state = "yellow_key"
|
||||
extended_desc = "This program allows authorized security personnel to track and remotely interface with active implants."
|
||||
required_access_run = access_armory
|
||||
requires_ntnet = TRUE
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
/datum/computer_file/program/penal_mechs
|
||||
filename = "penalrobotics"
|
||||
filedesc = "Remote Penal Monitoring"
|
||||
program_icon_state = "sec"
|
||||
program_icon_state = "security"
|
||||
program_key_icon_state = "yellow_key"
|
||||
extended_desc = "This program allows monitoring and control of active penal robotics."
|
||||
required_access_run = access_armory
|
||||
required_access_download = access_armory
|
||||
@@ -173,4 +174,4 @@
|
||||
var/viewflag = current_camera.check_eye(user)
|
||||
if(viewflag < 0) //camera doesn't work
|
||||
reset_current()
|
||||
return viewflag
|
||||
return viewflag
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
filedesc = "NTOS Client Manager"
|
||||
extended_desc = "This program allows configuration of the computer's software."
|
||||
program_icon_state = "generic"
|
||||
program_key_icon_state = "green_key"
|
||||
color = LIGHT_COLOR_GREEN
|
||||
unsendable = TRUE
|
||||
undeletable = TRUE
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
filedesc = "Hardware Configuration Tool"
|
||||
extended_desc = "This program allows configuration of the computer's hardware."
|
||||
program_icon_state = "generic"
|
||||
program_key_icon_state = "green_key"
|
||||
color = LIGHT_COLOR_GREEN
|
||||
unsendable = TRUE
|
||||
undeletable = TRUE
|
||||
@@ -33,7 +34,7 @@
|
||||
if(headerdata)
|
||||
data["_PC"] = headerdata
|
||||
. = data
|
||||
|
||||
|
||||
if(!computer)
|
||||
return
|
||||
|
||||
@@ -75,4 +76,4 @@
|
||||
var/watt_usage = H.vars[v] * (CELLRATE / 2)
|
||||
VUEUI_SET_CHECK(data["hardware"][H.name][v], watt_usage, ., data)
|
||||
else
|
||||
VUEUI_SET_CHECK(data["hardware"][H.name][v], H.vars[v], ., data)
|
||||
VUEUI_SET_CHECK(data["hardware"][H.name][v], H.vars[v], ., data)
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
filedesc = "NTOS File Manager"
|
||||
extended_desc = "This program allows management of files."
|
||||
program_icon_state = "generic"
|
||||
program_key_icon_state = "green_key"
|
||||
color = LIGHT_COLOR_GREEN
|
||||
size = 2
|
||||
requires_ntnet = FALSE
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
filename = "ntndownloader"
|
||||
filedesc = "NTNet Software Download Tool"
|
||||
program_icon_state = "generic"
|
||||
program_key_icon_state = "green_key"
|
||||
extended_desc = "This program allows the download of software from official NT repositories."
|
||||
color = LIGHT_COLOR_GREEN
|
||||
unsendable = TRUE
|
||||
|
||||
Reference in New Issue
Block a user