mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-09 16:07:40 +00:00
New computer sounds (#80)
* B E P I S * wew * nnn * ya * k * oh wait dont need these
This commit is contained in:
@@ -40,8 +40,10 @@
|
||||
else
|
||||
patient = null
|
||||
dat += "<B>No patient detected</B>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else
|
||||
dat += "<B>Operating table not found.</B>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
|
||||
var/datum/browser/popup = new(user, "op", "Operating Computer", 400, 500)
|
||||
popup.set_content(dat)
|
||||
|
||||
@@ -83,6 +83,8 @@
|
||||
if(..())
|
||||
return
|
||||
if(href_list["fix"])
|
||||
usr << "<span class='notice'>Reconstruction in progress. This will take several minutes.</span>"
|
||||
playsound(src, 'sound/machines/terminal_processing.ogg', 25, 0)
|
||||
active = 1
|
||||
while (occupier.health < 100)
|
||||
occupier.adjustOxyLoss(-1, 0)
|
||||
|
||||
@@ -70,6 +70,7 @@
|
||||
if(!(user in watchers))
|
||||
user.unset_machine() // no usable camera on the network, we disconnect the user from the computer.
|
||||
return
|
||||
playsound(src, 'sound/machines/terminal_displaying.ogg', 25, 0)
|
||||
use_camera_console(user)
|
||||
|
||||
/obj/machinery/computer/security/proc/use_camera_console(mob/user)
|
||||
@@ -79,12 +80,14 @@
|
||||
return
|
||||
if(!t)
|
||||
user.unset_machine()
|
||||
playsound(src, 'sound/machines/terminal_off.ogg', 25, 0)
|
||||
return
|
||||
|
||||
var/obj/machinery/camera/C = camera_list[t]
|
||||
|
||||
if(t == "Cancel")
|
||||
user.unset_machine()
|
||||
playsound(src, 'sound/machines/terminal_off.ogg', 25, 0)
|
||||
return
|
||||
if(C)
|
||||
var/camera_fail = 0
|
||||
@@ -108,9 +111,12 @@
|
||||
A.client.eye = A.eyeobj
|
||||
else
|
||||
user.reset_perspective(C)
|
||||
user.overlay_fullscreen("flash", /obj/screen/fullscreen/flash/noise)
|
||||
user.clear_fullscreen("flash", 5)
|
||||
watchers[user] = C
|
||||
use_power(50)
|
||||
addtimer(src, "use_camera_console", 5, FALSE, user)
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 25, 0)
|
||||
else
|
||||
user.unset_machine()
|
||||
|
||||
|
||||
@@ -148,6 +148,7 @@
|
||||
C.remote_control = null
|
||||
C.unset_machine()
|
||||
src.Remove(C)
|
||||
playsound(remote_eye.origin, 'sound/machines/terminal_off.ogg', 25, 0)
|
||||
|
||||
/datum/action/innate/camera_jump
|
||||
name = "Jump To Camera"
|
||||
@@ -174,8 +175,14 @@
|
||||
if (tempnetwork.len)
|
||||
T[text("[][]", netcam.c_tag, (netcam.can_use() ? null : " (Deactivated)"))] = netcam
|
||||
|
||||
|
||||
playsound(origin, 'sound/machines/terminal_select.ogg', 25, 0)
|
||||
var/camera = input("Choose which camera you want to view", "Cameras") as null|anything in T
|
||||
var/obj/machinery/camera/final = T[camera]
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
if(final)
|
||||
remote_eye.setLoc(get_turf(final))
|
||||
playsound(origin, 'sound/machines/terminal_select.ogg', 25, 0)
|
||||
remote_eye.setLoc(get_turf(final))
|
||||
C.overlay_fullscreen("flash", /obj/screen/fullscreen/flash/noise)
|
||||
C.clear_fullscreen("flash", 3) //Shorter flash than normal since it's an ~~advanced~~ console!
|
||||
else
|
||||
playsound(origin, 'sound/machines/terminal_error.ogg', 25, 0)
|
||||
|
||||
@@ -54,17 +54,20 @@ var/time_last_changed_position = 0
|
||||
return
|
||||
idcard.loc = src
|
||||
scan = idcard
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
else if(!modify)
|
||||
if(!usr.drop_item())
|
||||
return
|
||||
idcard.loc = src
|
||||
modify = idcard
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
else
|
||||
if(!modify)
|
||||
if(!usr.drop_item())
|
||||
return
|
||||
idcard.loc = src
|
||||
modify = idcard
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -312,6 +315,7 @@ var/time_last_changed_position = 0
|
||||
modify.update_label()
|
||||
modify.loc = loc
|
||||
modify.verb_pickup()
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
modify = null
|
||||
region_access = null
|
||||
head_subordinates = null
|
||||
@@ -320,6 +324,7 @@ var/time_last_changed_position = 0
|
||||
if (istype(I, /obj/item/weapon/card/id))
|
||||
if(!usr.drop_item())
|
||||
return
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
I.loc = src
|
||||
modify = I
|
||||
authenticated = 0
|
||||
@@ -328,12 +333,14 @@ var/time_last_changed_position = 0
|
||||
if (scan)
|
||||
scan.loc = src.loc
|
||||
scan.verb_pickup()
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
scan = null
|
||||
else
|
||||
var/obj/item/I = usr.get_active_hand()
|
||||
if (istype(I, /obj/item/weapon/card/id))
|
||||
if(!usr.drop_item())
|
||||
return
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
I.loc = src
|
||||
scan = I
|
||||
authenticated = 0
|
||||
@@ -349,6 +356,7 @@ var/time_last_changed_position = 0
|
||||
authenticated = 1
|
||||
else
|
||||
authenticated = 2
|
||||
playsound(src, 'sound/machines/terminal_success.ogg', 50, 0)
|
||||
|
||||
else
|
||||
if((access_hop in scan.access) && ((target_dept==1) || !target_dept))
|
||||
@@ -375,6 +383,7 @@ var/time_last_changed_position = 0
|
||||
region_access = null
|
||||
head_subordinates = null
|
||||
authenticated = 0
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
if("access")
|
||||
if(href_list["allowed"])
|
||||
if(authenticated)
|
||||
@@ -384,6 +393,7 @@ var/time_last_changed_position = 0
|
||||
modify.access -= access_type
|
||||
if(access_allowed == 1)
|
||||
modify.access += access_type
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
if ("assign")
|
||||
if (authenticated == 2)
|
||||
var/t1 = href_list["assign_target"]
|
||||
@@ -409,9 +419,12 @@ var/time_last_changed_position = 0
|
||||
modify.access = ( istype(src,/obj/machinery/computer/card/centcom) ? get_centcom_access(t1) : jobdatum.get_access() )
|
||||
if (modify)
|
||||
modify.assignment = t1
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
|
||||
if ("demote")
|
||||
if(modify.assignment in head_subordinates || modify.assignment == "Assistant")
|
||||
modify.assignment = "Unassigned"
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
else
|
||||
usr << "<span class='error'>You are not authorized to demote this position.</span>"
|
||||
if ("reg")
|
||||
@@ -422,6 +435,7 @@ var/time_last_changed_position = 0
|
||||
var/newName = reject_bad_name(href_list["reg"])
|
||||
if(newName)
|
||||
modify.registered_name = newName
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
else
|
||||
usr << "<span class='error'>Invalid name entered.</span>"
|
||||
return
|
||||
@@ -431,6 +445,7 @@ var/time_last_changed_position = 0
|
||||
if("return")
|
||||
//DISPLAY MAIN MENU
|
||||
mode = 3;
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
|
||||
if("make_job_available")
|
||||
// MAKE ANOTHER JOB POSITION AVAILABLE FOR LATE JOINERS
|
||||
@@ -445,6 +460,7 @@ var/time_last_changed_position = 0
|
||||
time_last_changed_position = world.time / 10
|
||||
j.total_positions++
|
||||
opened_positions[edit_job_target]++
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
|
||||
if("make_job_unavailable")
|
||||
// MAKE JOB POSITION UNAVAILABLE FOR LATE JOINERS
|
||||
@@ -460,6 +476,7 @@ var/time_last_changed_position = 0
|
||||
time_last_changed_position = world.time / 10
|
||||
j.total_positions--
|
||||
opened_positions[edit_job_target]--
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
|
||||
if ("print")
|
||||
if (!( printing ))
|
||||
@@ -472,6 +489,8 @@ var/time_last_changed_position = 0
|
||||
P.info = t1
|
||||
P.name = "paper- 'Crew Manifest'"
|
||||
printing = null
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
|
||||
if (modify)
|
||||
modify.update_label()
|
||||
updateUsrDialog()
|
||||
|
||||
@@ -81,6 +81,7 @@
|
||||
W.loc = src
|
||||
src.diskette = W
|
||||
user << "<span class='notice'>You insert [W].</span>"
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
src.updateUsrDialog()
|
||||
else
|
||||
return ..()
|
||||
@@ -228,14 +229,18 @@
|
||||
switch(href_list["task"])
|
||||
if("autoprocess")
|
||||
autoprocess = 1
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
if("stopautoprocess")
|
||||
autoprocess = 0
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
|
||||
else if ((href_list["scan"]) && !isnull(scanner) && scanner.is_operational())
|
||||
scantemp = ""
|
||||
|
||||
loading = 1
|
||||
src.updateUsrDialog()
|
||||
playsound(src, 'sound/machines/terminal_processing.ogg', 50, 0)
|
||||
say("Initiating scan...")
|
||||
|
||||
spawn(20)
|
||||
src.scan_mob(scanner.occupant)
|
||||
@@ -248,10 +253,13 @@
|
||||
else if ((href_list["lock"]) && !isnull(scanner) && scanner.is_operational())
|
||||
if ((!scanner.locked) && (scanner.occupant))
|
||||
scanner.locked = 1
|
||||
playsound(src, 'sound/machines/DoorClick.ogg', 50, 0)
|
||||
else
|
||||
scanner.locked = 0
|
||||
playsound(src, 'sound/machines/DoorClick.ogg', 50, 0)
|
||||
|
||||
else if(href_list["view_rec"])
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
src.active_record = find_record("id", href_list["view_rec"], records)
|
||||
if(active_record)
|
||||
if(!active_record.fields["ckey"])
|
||||
@@ -269,6 +277,7 @@
|
||||
if (src.menu == 3) //If we are viewing a record, confirm deletion
|
||||
src.temp = "Delete record?"
|
||||
src.menu = 4
|
||||
playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0)
|
||||
|
||||
else if (src.menu == 4)
|
||||
var/obj/item/weapon/card/id/C = usr.get_active_hand()
|
||||
@@ -277,9 +286,11 @@
|
||||
src.temp = "[src.active_record.fields["name"]] => Record deleted."
|
||||
src.records.Remove(active_record)
|
||||
active_record = null
|
||||
playsound(src, 'sound/machines/terminal_success.ogg', 50, 0)
|
||||
src.menu = 2
|
||||
else
|
||||
src.temp = "<font class='bad'>Access Denied.</font>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
|
||||
else if (href_list["disk"]) //Load or eject.
|
||||
switch(href_list["disk"])
|
||||
@@ -287,30 +298,36 @@
|
||||
if (!diskette || !istype(diskette.fields) || !diskette.fields["name"] || !diskette.fields)
|
||||
src.temp = "<font class='bad'>Load error.</font>"
|
||||
src.updateUsrDialog()
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
return
|
||||
if (!src.active_record)
|
||||
src.temp = "<font class='bad'>Record error.</font>"
|
||||
src.menu = 1
|
||||
src.updateUsrDialog()
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
return
|
||||
|
||||
for(var/key in diskette.fields)
|
||||
src.active_record.fields[key] = diskette.fields[key]
|
||||
src.temp = "Load successful."
|
||||
playsound(src, 'sound/machines/terminal_success.ogg', 50, 0)
|
||||
|
||||
if("eject")
|
||||
if(src.diskette)
|
||||
src.diskette.loc = src.loc
|
||||
src.diskette = null
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
if("save")
|
||||
if(!diskette || diskette.read_only || !active_record || !active_record.fields)
|
||||
src.temp = "<font class='bad'>Save error.</font>"
|
||||
src.updateUsrDialog()
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
return
|
||||
|
||||
diskette.fields = active_record.fields.Copy()
|
||||
diskette.name = "data disk - '[src.diskette.fields["name"]]'"
|
||||
src.temp = "Save successful."
|
||||
playsound(src, 'sound/machines/terminal_success.ogg', 50, 0)
|
||||
|
||||
else if (href_list["refresh"])
|
||||
src.updateUsrDialog()
|
||||
@@ -322,26 +339,34 @@
|
||||
//Can't clone without someone to clone. Or a pod. Or if the pod is busy. Or full of gibs.
|
||||
if(!pod1)
|
||||
temp = "<font class='bad'>No Clonepod detected.</font>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else if(pod1.occupant)
|
||||
temp = "<font class='bad'>Clonepod is currently occupied.</font>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else if(pod1.mess)
|
||||
temp = "<font class='bad'>Clonepod malfunction.</font>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else if(!config.revival_cloning)
|
||||
temp = "<font class='bad'>Unable to initiate cloning cycle.</font>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else if(pod1.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["features"], C.fields["factions"]))
|
||||
temp = "[C.fields["name"]] => <font class='good'>Cloning cycle in progress...</font>"
|
||||
playsound(src, 'sound/machines/terminal_processing.ogg', 50, 0)
|
||||
records.Remove(C)
|
||||
if(active_record == C)
|
||||
active_record = null
|
||||
menu = 1
|
||||
else
|
||||
temp = "[C.fields["name"]] => <font class='bad'>Initialisation failure.</font>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
|
||||
else
|
||||
temp = "<font class='bad'>Data corruption.</font>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
|
||||
else if (href_list["menu"])
|
||||
src.menu = text2num(href_list["menu"])
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
|
||||
src.add_fingerprint(usr)
|
||||
src.updateUsrDialog()
|
||||
@@ -350,21 +375,27 @@
|
||||
/obj/machinery/computer/cloning/proc/scan_mob(mob/living/carbon/human/subject)
|
||||
if (!istype(subject))
|
||||
scantemp = "<font class='bad'>Unable to locate valid genetic data.</font>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
return
|
||||
if (!subject.getorgan(/obj/item/organ/brain))
|
||||
scantemp = "<font class='bad'>No signs of intelligence detected.</font>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
return
|
||||
if (subject.suiciding == 1 || subject.hellbound)
|
||||
scantemp = "<font class='bad'>Subject's brain is not responding to scanning stimuli.</font>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
return
|
||||
if ((subject.disabilities & NOCLONE) && (src.scanner.scan_level < 2))
|
||||
scantemp = "<font class='bad'>Subject no longer contains the fundamental materials required to create a living clone.</font>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
return
|
||||
if ((!subject.ckey) || (!subject.client))
|
||||
scantemp = "<font class='bad'>Mental interface failure.</font>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
return
|
||||
if (find_record("ckey", subject.ckey, records))
|
||||
scantemp = "<font class='average'>Subject already in database.</font>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
return
|
||||
|
||||
var/datum/data/record/R = new()
|
||||
@@ -400,3 +431,4 @@
|
||||
|
||||
src.records += R
|
||||
scantemp = "Subject successfully scanned."
|
||||
playsound(src, 'sound/machines/terminal_success.ogg', 50, 0)
|
||||
|
||||
@@ -76,11 +76,19 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12
|
||||
auth_id = "[I.registered_name] ([I.assignment])"
|
||||
if((20 in I.access))
|
||||
authenticated = 2
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
|
||||
if(src.emagged)
|
||||
authenticated = 2
|
||||
auth_id = "Unknown"
|
||||
auth_id = "ERROR: CANNOT READ"
|
||||
M << "<span class='warning'>[src] lets out a few quiet beeps as its login is overriden.</span>"
|
||||
if(prob(25))
|
||||
for(var/mob/living/silicon/ai/AI in active_ais())
|
||||
AI << sound('sound/machines/terminal_emagged.ogg', volume = 10) //Very quiet for balance reasons
|
||||
|
||||
if("logout")
|
||||
authenticated = 0
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
|
||||
if("swipeidseclevel")
|
||||
var/mob/M = usr
|
||||
@@ -96,6 +104,8 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12
|
||||
if(tmp_alertlevel > SEC_LEVEL_BLUE) tmp_alertlevel = SEC_LEVEL_BLUE //Cannot engage delta with this
|
||||
set_security_level(tmp_alertlevel)
|
||||
if(security_level != old_level)
|
||||
usr << "<span class='notice'>Authorization confirmed. Modifying security level.</span>"
|
||||
playsound(src, 'sound/machines/terminal_success.ogg', 50, 0)
|
||||
//Only notify the admins if an actual change happened
|
||||
log_game("[key_name(usr)] has changed the security level to [get_security_level()].")
|
||||
message_admins("[key_name_admin(usr)] has changed the security level to [get_security_level()].")
|
||||
@@ -107,25 +117,31 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12
|
||||
tmp_alertlevel = 0
|
||||
else:
|
||||
usr << "<span class='warning'>You are not authorized to do this!</span>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
tmp_alertlevel = 0
|
||||
state = STATE_DEFAULT
|
||||
else
|
||||
usr << "<span class='warning'>You need to swipe your ID!</span>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
|
||||
if("announce")
|
||||
if(src.authenticated==2 && !message_cooldown)
|
||||
playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0)
|
||||
make_announcement(usr)
|
||||
else if (src.authenticated==2 && message_cooldown)
|
||||
usr << "Intercomms recharging. Please stand by."
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
|
||||
if("crossserver")
|
||||
if(authenticated==2)
|
||||
if(CM.lastTimeUsed + 600 > world.time)
|
||||
usr << "Arrays recycling. Please stand by."
|
||||
usr << "<span class='warning'>Arrays recycling. Please stand by.</span>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
return
|
||||
var/input = stripped_multiline_input(usr, "Please choose a message to transmit to an allied station. Please be aware that this process is very expensive, and abuse will lead to... termination.", "Send a message to an allied station.", "")
|
||||
if(!input || !(usr in view(1,src)))
|
||||
return
|
||||
playsound(src, 'sound/machines/terminal_success.ogg', 50, 0)
|
||||
send2otherserver("[station_name()]", input,"Comms_Console")
|
||||
minor_announce(input, title = "Outgoing message to allied station")
|
||||
log_say("[key_name(usr)] has sent a message to the other server: [input]")
|
||||
@@ -152,6 +168,7 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12
|
||||
if("messagelist")
|
||||
src.currmsg = 0
|
||||
src.state = STATE_MESSAGELIST
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
if("viewmessage")
|
||||
src.state = STATE_VIEWMESSAGE
|
||||
if (!src.currmsg)
|
||||
@@ -176,6 +193,7 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12
|
||||
src.state = STATE_VIEWMESSAGE
|
||||
if("status")
|
||||
src.state = STATE_STATUSDISPLAY
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
|
||||
if("securitylevel")
|
||||
src.tmp_alertlevel = text2num( href_list["newalertlevel"] )
|
||||
@@ -199,6 +217,7 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12
|
||||
|
||||
// Status display stuff
|
||||
if("setstat")
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
switch(href_list["statdisp"])
|
||||
if("message")
|
||||
post_status("message", stat_msg1, stat_msg2)
|
||||
@@ -208,9 +227,11 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12
|
||||
post_status(href_list["statdisp"])
|
||||
|
||||
if("setmsg1")
|
||||
playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0)
|
||||
stat_msg1 = reject_bad_text(input("Line 1", "Enter Message Text", stat_msg1) as text|null, 40)
|
||||
src.updateDialog()
|
||||
if("setmsg2")
|
||||
playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0)
|
||||
stat_msg2 = reject_bad_text(input("Line 2", "Enter Message Text", stat_msg2) as text|null, 40)
|
||||
src.updateDialog()
|
||||
|
||||
@@ -218,11 +239,13 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12
|
||||
if("MessageCentcomm")
|
||||
if(src.authenticated==2)
|
||||
if(CM.lastTimeUsed + 600 > world.time)
|
||||
usr << "Arrays recycling. Please stand by."
|
||||
usr << "<span class='warning'>Arrays recycling. Please stand by.</span>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
return
|
||||
var/input = stripped_input(usr, "Please choose a message to transmit to Centcom via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "Send a message to Centcomm.", "")
|
||||
if(!input || !(usr in view(1,src)))
|
||||
return
|
||||
playsound(src, 'sound/machines/terminal_processing.ogg', 50, 0)
|
||||
Centcomm_announce(input, usr)
|
||||
usr << "Message transmitted."
|
||||
log_say("[key_name(usr)] has made a Centcom announcement: [input]")
|
||||
@@ -233,33 +256,38 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12
|
||||
if("MessageSyndicate")
|
||||
if((src.authenticated==2) && (src.emagged))
|
||||
if(CM.lastTimeUsed + 600 > world.time)
|
||||
usr << "Arrays recycling. Please stand by."
|
||||
usr << "<span class='warning'>Arrays recycling. Please stand by.</span>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
return
|
||||
var/input = stripped_input(usr, "Please choose a message to transmit to \[ABNORMAL ROUTING COORDINATES\] via quantum entanglement. Please be aware that this process is very expensive, and abuse will lead to... termination. Transmission does not guarantee a response.", "Send a message to /??????/.", "")
|
||||
if(!input || !(usr in view(1,src)))
|
||||
return
|
||||
playsound(src, 'sound/machines/terminal_processing.ogg', 50, 0)
|
||||
Syndicate_announce(input, usr)
|
||||
usr << "Message transmitted."
|
||||
usr << "<span class='danger'>SYSERR @l(19833)of(transmit.dm): !@$ MESSAGE TRANSMITTED TO SYNDICATE COMMAND.</span>"
|
||||
log_say("[key_name(usr)] has made a Syndicate announcement: [input]")
|
||||
CM.lastTimeUsed = world.time
|
||||
|
||||
if("RestoreBackup")
|
||||
usr << "Backup routing data restored!"
|
||||
usr << "<span class='notice'>Backup routing data restored!</span>"
|
||||
playsound(src, 'sound/machines/terminal_success.ogg', 50, 0)
|
||||
src.emagged = 0
|
||||
src.updateDialog()
|
||||
|
||||
if("nukerequest") //When there's no other way
|
||||
if(src.authenticated==2)
|
||||
if(CM.lastTimeUsed + 600 > world.time)
|
||||
usr << "Arrays recycling. Please stand by."
|
||||
usr << "<span class='warning'>Arrays recycling. Please stand by.</span>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
return
|
||||
var/input = stripped_input(usr, "Please enter the reason for requesting the nuclear self-destruct codes. Misuse of the nuclear request system will not be tolerated under any circumstances. Transmission does not guarantee a response.", "Self Destruct Code Request.","")
|
||||
if(!input || !(usr in view(1,src)))
|
||||
return
|
||||
Nuke_request(input, usr)
|
||||
usr << "Request sent."
|
||||
usr << "<span class='notice'>Request sent.</span>"
|
||||
playsound(src, 'sound/machines/terminal_processing.ogg', 50, 0)
|
||||
log_say("[key_name(usr)] has requested the nuclear codes from Centcomm")
|
||||
priority_announce("The codes for the on-station nuclear self-destruct have been requested by [usr]. Confirmation or denial of this request will be sent shortly.", "Nuclear Self Destruct Codes Requested",'sound/AI/commandreport.ogg')
|
||||
priority_announce("The codes for the on-station nuclear self-destruct have been requested by [auth_id]. Confirmation or denial of this request will be sent shortly.", "Nuclear Self Destruct Codes Requested",'sound/AI/commandreport.ogg')
|
||||
CM.lastTimeUsed = world.time
|
||||
|
||||
|
||||
@@ -347,13 +375,15 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12
|
||||
src.emagged = 1
|
||||
if(authenticated == 1)
|
||||
authenticated = 2
|
||||
user << "<span class='notice'>You scramble the communication routing circuits.</span>"
|
||||
user << "<span class='danger'>You scramble the communication routing circuits.</span>"
|
||||
playsound(src, 'sound/machines/terminal_emagged.ogg', 50, 0)
|
||||
|
||||
/obj/machinery/computer/communications/attack_hand(mob/user)
|
||||
if(..())
|
||||
return
|
||||
if (src.z > 6)
|
||||
user << "<span class='boldannounce'>Unable to establish a connection</span>: \black You're too far away from the station!"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
return
|
||||
|
||||
user.set_machine(src)
|
||||
@@ -413,12 +443,15 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12
|
||||
dat += "<BR>\[ <A HREF='?src=\ref[src];operation=login'>Log In</A> \]"
|
||||
if(STATE_CALLSHUTTLE)
|
||||
dat += get_call_shuttle_form()
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
if(STATE_CANCELSHUTTLE)
|
||||
dat += get_cancel_shuttle_form()
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
if(STATE_MESSAGELIST)
|
||||
dat += "Messages:"
|
||||
for(var/i = 1; i<=src.messagetitle.len; i++)
|
||||
dat += "<BR><A HREF='?src=\ref[src];operation=viewmessage;message-num=[i]'>[src.messagetitle[i]]</A>"
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
if(STATE_VIEWMESSAGE)
|
||||
if (src.currmsg)
|
||||
dat += "<B>[src.messagetitle[src.currmsg]]</B><BR><BR>[src.messagetext[src.currmsg]]"
|
||||
@@ -446,6 +479,8 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12
|
||||
dat += " <A HREF='?src=\ref[src];operation=setstat;statdisp=alert;alert=redalert'>Red Alert</A> |"
|
||||
dat += " <A HREF='?src=\ref[src];operation=setstat;statdisp=alert;alert=lockdown'>Lockdown</A> |"
|
||||
dat += " <A HREF='?src=\ref[src];operation=setstat;statdisp=alert;alert=biohazard'>Biohazard</A> \]<BR><HR>"
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
|
||||
if(STATE_ALERT_LEVEL)
|
||||
dat += "Current alert level: [get_security_level()]<BR>"
|
||||
if(security_level == SEC_LEVEL_DELTA)
|
||||
@@ -458,6 +493,7 @@ var/const/CALL_SHUTTLE_REASON_LENGTH = 12
|
||||
dat += "Confirm the change to: [num2seclevel(tmp_alertlevel)]<BR>"
|
||||
dat += "<A HREF='?src=\ref[src];operation=swipeidseclevel'>Swipe ID</A> to confirm change.<BR>"
|
||||
if(STATE_TOGGLE_EMERGENCY)
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
if(emergency_access == 1)
|
||||
dat += "<b>Emergency Maintenance Access is currently <font color='red'>ENABLED</font></b>"
|
||||
dat += "<BR>Restore maintenance access restrictions? <BR>\[ <A HREF='?src=\ref[src];operation=disableemergency'>OK</A> | <A HREF='?src=\ref[src];operation=viewmessage'>Cancel</A> \]"
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
I.loc = src
|
||||
src.diskette = I
|
||||
user << "<span class='notice'>You insert [I].</span>"
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
else
|
||||
@@ -340,11 +341,13 @@
|
||||
if("setduration")
|
||||
if(!num)
|
||||
num = round(input(usr, "Choose pulse duration:", "Input an Integer", null) as num|null)
|
||||
playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0)
|
||||
if(num)
|
||||
radduration = Wrap(num, 1, RADIATION_DURATION_MAX+1)
|
||||
if("setstrength")
|
||||
if(!num)
|
||||
num = round(input(usr, "Choose pulse strength:", "Input an Integer", null) as num|null)
|
||||
playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0)
|
||||
if(num)
|
||||
radstrength = Wrap(num, 1, RADIATION_STRENGTH_MAX+1)
|
||||
if("screen")
|
||||
@@ -354,8 +357,10 @@
|
||||
var/potassiodide_amount = viable_occupant.reagents.get_reagent_amount("potass_iodide")
|
||||
var/can_add = max(min(REJUVENATORS_MAX - potassiodide_amount, REJUVENATORS_INJECT), 0)
|
||||
viable_occupant.reagents.add_reagent("potass_iodide", can_add)
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
if("setbufferlabel")
|
||||
var/text = sanitize(input(usr, "Input a new label:", "Input an Text", null) as text|null)
|
||||
playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0)
|
||||
if(num && text)
|
||||
num = Clamp(num, 1, NUMBER_OF_BUFFERS)
|
||||
var/list/buffer_slot = buffer[num]
|
||||
@@ -363,6 +368,7 @@
|
||||
buffer_slot["label"] = text
|
||||
if("setbuffer")
|
||||
if(num && viable_occupant)
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
num = Clamp(num, 1, NUMBER_OF_BUFFERS)
|
||||
buffer[num] = list(
|
||||
"label"="Buffer[num]:[viable_occupant.real_name]",
|
||||
@@ -374,12 +380,14 @@
|
||||
)
|
||||
if("clearbuffer")
|
||||
if(num)
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
num = Clamp(num, 1, NUMBER_OF_BUFFERS)
|
||||
var/list/buffer_slot = buffer[num]
|
||||
if(istype(buffer_slot))
|
||||
buffer_slot.Cut()
|
||||
if("transferbuffer")
|
||||
if(num && viable_occupant)
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
switch(href_list["text"]) //Numbers are this high because other way upgrading laser is just not worth the hassle, and i cant think of anything better to inmrove
|
||||
if("se")
|
||||
apply_buffer(SCANNER_ACTION_SE,num)
|
||||
@@ -443,10 +451,12 @@
|
||||
injectorready = 1
|
||||
if("loaddisk")
|
||||
if(num && diskette && diskette.fields)
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
num = Clamp(num, 1, NUMBER_OF_BUFFERS)
|
||||
buffer[num] = diskette.fields.Copy()
|
||||
if("savedisk")
|
||||
if(num && diskette && !diskette.read_only)
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
num = Clamp(num, 1, NUMBER_OF_BUFFERS)
|
||||
var/list/buffer_slot = buffer[num]
|
||||
if(istype(buffer_slot))
|
||||
@@ -454,6 +464,7 @@
|
||||
diskette.fields = buffer_slot.Copy()
|
||||
if("ejectdisk")
|
||||
if(diskette)
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
diskette.loc = get_turf(src)
|
||||
diskette = null
|
||||
if("setdelayed")
|
||||
@@ -461,6 +472,7 @@
|
||||
delayed_action = list("action"=text2num(href_list["delayaction"]),"buffer"=num)
|
||||
if("pulseui","pulsese")
|
||||
if(num && viable_occupant && connected)
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
radduration = Wrap(radduration, 1, RADIATION_DURATION_MAX+1)
|
||||
radstrength = Wrap(radstrength, 1, RADIATION_STRENGTH_MAX+1)
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
W.forceMove(src)
|
||||
id = W
|
||||
user << "<span class='notice'>You insert [W].</span>"
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
return
|
||||
else
|
||||
user << "<span class='notice'>There's an ID inserted already.</span>"
|
||||
@@ -83,13 +84,16 @@
|
||||
if(..())
|
||||
return
|
||||
if(!allowed(usr))
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
usr << "<span class='warning'>Access denied.</span>"
|
||||
return
|
||||
switch(action)
|
||||
if("scan_teleporter")
|
||||
teleporter = findteleporter()
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
if("scan_beacon")
|
||||
beacon = findbeacon()
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
if("handle_id")
|
||||
if(id)
|
||||
if(!usr.get_active_hand())
|
||||
@@ -107,6 +111,7 @@
|
||||
id = I
|
||||
if("set_goal")
|
||||
var/new_goal = input("Set the amount of points:", "Points", id.goal) as num|null
|
||||
playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0)
|
||||
if(!isnum(new_goal))
|
||||
return
|
||||
if(!new_goal)
|
||||
@@ -114,18 +119,23 @@
|
||||
id.goal = Clamp(new_goal, 0, 1000) //maximum 1000 points
|
||||
if("toggle_open")
|
||||
if(teleporter.locked)
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
usr << "The teleporter is locked"
|
||||
return
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
teleporter.toggle_open()
|
||||
if("teleporter_lock")
|
||||
if(teleporter.state_open)
|
||||
usr << "Close the teleporter before locking!"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
return
|
||||
teleporter.locked = !teleporter.locked
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
if("teleport")
|
||||
if(!teleporter || !beacon)
|
||||
return
|
||||
addtimer(src, "teleport", 5, FALSE, usr)
|
||||
playsound(src, 'sound/machines/terminal_processing.ogg', 50, 0)
|
||||
|
||||
/obj/machinery/computer/gulag_teleporter_computer/proc/scan_machinery()
|
||||
teleporter = findteleporter()
|
||||
|
||||
@@ -11,17 +11,21 @@
|
||||
return
|
||||
if(!current)
|
||||
user << "<span class='caution'>You haven't selected anything to transmit laws to!</span>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
return
|
||||
if(!can_upload_to(current))
|
||||
user << "<span class='caution'>Upload failed!</span> Check to make sure [current.name] is functioning properly."
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
current = null
|
||||
return
|
||||
var/turf/currentloc = get_turf(current)
|
||||
if(currentloc && user.z != currentloc.z)
|
||||
user << "<span class='caution'>Upload failed!</span> Unable to establish a connection to [current.name]. You're too far away!"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
current = null
|
||||
return
|
||||
M.install(current.laws, user)
|
||||
playsound(src, 'sound/machines/terminal_processing.ogg', 50, 0)
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -43,8 +47,10 @@
|
||||
|
||||
if (!src.current)
|
||||
user << "<span class='caution'>No active AIs detected!</span>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else
|
||||
user << "[src.current.name] selected for law changes."
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
|
||||
/obj/machinery/computer/upload/ai/can_upload_to(mob/living/silicon/ai/A)
|
||||
if(!A || !isAI(A))
|
||||
@@ -67,12 +73,14 @@
|
||||
|
||||
if(!src.current)
|
||||
user << "<span class='caution'>No active unslaved cyborgs detected!</span>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else
|
||||
user << "[src.current.name] selected for law changes."
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
|
||||
/obj/machinery/computer/upload/borg/can_upload_to(mob/living/silicon/robot/B)
|
||||
if(!B || !isrobot(B))
|
||||
return 0
|
||||
if(B.scrambledcodes || B.emagged)
|
||||
return 0
|
||||
return ..()
|
||||
return ..()
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
O.loc = src
|
||||
scan = O
|
||||
user << "<span class='notice'>You insert [O].</span>"
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -230,6 +231,7 @@
|
||||
src.screen = null
|
||||
src.active1 = null
|
||||
src.active2 = null
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
else if(href_list["choice"])
|
||||
// SORTING!
|
||||
if(href_list["choice"] == "Sorting")
|
||||
@@ -250,6 +252,7 @@
|
||||
src.authenticated = 1
|
||||
src.rank = "AI"
|
||||
src.screen = 1
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
else if(IsAdminGhost(usr))
|
||||
src.active1 = null
|
||||
src.active2 = null
|
||||
@@ -263,6 +266,7 @@
|
||||
src.authenticated = src.scan.registered_name
|
||||
src.rank = src.scan.assignment
|
||||
src.screen = 1
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
if(src.authenticated)
|
||||
|
||||
if(href_list["screen"])
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
/obj/machinery/computer/message_monitor/emag_act(mob/user)
|
||||
if(!emagged)
|
||||
if(!isnull(src.linkedServer))
|
||||
playsound(src, 'sound/machines/terminal_emagged.ogg', 50, 0)
|
||||
emagged = 1
|
||||
screen = 2
|
||||
spark_system.set_up(5, 0, src)
|
||||
@@ -53,7 +54,8 @@
|
||||
addtimer(src, "UnmagConsole", time)
|
||||
message = rebootmsg
|
||||
else
|
||||
user << "<span class='notice'>A no server error appears on the screen.</span>"
|
||||
user << "<span class='notice'>A 'no server' error appears on the screen.</span>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
|
||||
/obj/machinery/computer/message_monitor/initialize()
|
||||
//Is the server isn't linked to a server, and there's a server available, default it to the first one in the list.
|
||||
@@ -253,75 +255,98 @@
|
||||
if (href_list["auth"])
|
||||
if(!linkedServer || linkedServer.stat & (NOPOWER|BROKEN))
|
||||
message = noserver
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else
|
||||
if(auth)
|
||||
auth = 0
|
||||
screen = 0
|
||||
else
|
||||
var/dkey = trim(input(usr, "Please enter the decryption key.") as text|null)
|
||||
playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0)
|
||||
if(dkey && dkey != "")
|
||||
if(src.linkedServer.decryptkey == dkey)
|
||||
auth = 1
|
||||
playsound(src, 'sound/machines/terminal_success.ogg', 50, 0)
|
||||
else
|
||||
message = incorrectkey
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
|
||||
//Turn the server on/off.
|
||||
if (href_list["active"])
|
||||
if(auth) linkedServer.active = !linkedServer.active
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
|
||||
//Find a server
|
||||
if (href_list["find"])
|
||||
if(message_servers && message_servers.len > 1)
|
||||
src.linkedServer = input(usr,"Please select a server.", "Select a server.", null) as null|anything in message_servers
|
||||
message = "<span class='alert'>NOTICE: Server selected.</span>"
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
else if(message_servers && message_servers.len > 0)
|
||||
linkedServer = message_servers[1]
|
||||
message = "<span class='notice'>NOTICE: Only Single Server Detected - Server selected.</span>"
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
else
|
||||
message = noserver
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
|
||||
//View the logs - KEY REQUIRED
|
||||
if (href_list["view"])
|
||||
if(src.linkedServer == null || (src.linkedServer.stat & (NOPOWER|BROKEN)))
|
||||
message = noserver
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else
|
||||
if(auth)
|
||||
src.screen = 1
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
|
||||
//Clears the logs - KEY REQUIRED
|
||||
if (href_list["clear"])
|
||||
if(!linkedServer || (src.linkedServer.stat & (NOPOWER|BROKEN)))
|
||||
message = noserver
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else
|
||||
if(auth)
|
||||
src.linkedServer.pda_msgs = list()
|
||||
message = "<span class='notice'>NOTICE: Logs cleared.</span>"
|
||||
playsound(src, 'sound/machines/terminal_success.ogg', 50, 0)
|
||||
|
||||
//Clears the request console logs - KEY REQUIRED
|
||||
if (href_list["clearr"])
|
||||
if(!linkedServer || (src.linkedServer.stat & (NOPOWER|BROKEN)))
|
||||
message = noserver
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else
|
||||
if(auth)
|
||||
src.linkedServer.rc_msgs = list()
|
||||
message = "<span class='notice'>NOTICE: Logs cleared.</span>"
|
||||
playsound(src, 'sound/machines/terminal_success.ogg', 50, 0)
|
||||
//Change the password - KEY REQUIRED
|
||||
if (href_list["pass"])
|
||||
if(!linkedServer || (src.linkedServer.stat & (NOPOWER|BROKEN)))
|
||||
message = noserver
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else
|
||||
if(auth)
|
||||
var/dkey = trim(input(usr, "Please enter the decryption key.") as text|null)
|
||||
playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0)
|
||||
if(dkey && dkey != "")
|
||||
if(src.linkedServer.decryptkey == dkey)
|
||||
var/newkey = trim(input(usr,"Please enter the new key (3 - 16 characters max):"))
|
||||
playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0)
|
||||
if(length(newkey) <= 3)
|
||||
message = "<span class='notice'>NOTICE: Decryption key too short!</span>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else if(length(newkey) > 16)
|
||||
message = "<span class='notice'>NOTICE: Decryption key too long!</span>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else if(newkey && newkey != "")
|
||||
src.linkedServer.decryptkey = newkey
|
||||
message = "<span class='notice'>NOTICE: Decryption key set.</span>"
|
||||
playsound(src, 'sound/machines/terminal_success.ogg', 50, 0)
|
||||
else
|
||||
message = incorrectkey
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
|
||||
//Hack the Console to get the password
|
||||
if (href_list["hack"])
|
||||
@@ -332,46 +357,56 @@
|
||||
spawn(100*length(src.linkedServer.decryptkey))
|
||||
if(src && src.linkedServer && usr)
|
||||
BruteForce(usr)
|
||||
playsound(src, 'sound/machines/terminal_processing.ogg', 50, 0)
|
||||
//Delete the log.
|
||||
if (href_list["delete"])
|
||||
//Are they on the view logs screen?
|
||||
if(screen == 1)
|
||||
if(!linkedServer || (src.linkedServer.stat & (NOPOWER|BROKEN)))
|
||||
message = noserver
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else //if(istype(href_list["delete"], /datum/data_pda_msg))
|
||||
src.linkedServer.pda_msgs -= locate(href_list["delete"])
|
||||
message = "<span class='notice'>NOTICE: Log Deleted!</span>"
|
||||
playsound(src, 'sound/machines/terminal_success.ogg', 50, 0)
|
||||
//Delete the request console log.
|
||||
if (href_list["deleter"])
|
||||
//Are they on the view logs screen?
|
||||
if(screen == 4)
|
||||
if(!linkedServer || (src.linkedServer.stat & (NOPOWER|BROKEN)))
|
||||
message = noserver
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else //if(istype(href_list["delete"], /datum/data_pda_msg))
|
||||
src.linkedServer.rc_msgs -= locate(href_list["deleter"])
|
||||
message = "<span class='notice'>NOTICE: Log Deleted!</span>"
|
||||
playsound(src, 'sound/machines/terminal_success.ogg', 50, 0)
|
||||
//Create a custom message
|
||||
if (href_list["msg"])
|
||||
if(src.linkedServer == null || (src.linkedServer.stat & (NOPOWER|BROKEN)))
|
||||
message = noserver
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else
|
||||
if(auth)
|
||||
src.screen = 3
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
//Fake messaging selection - KEY REQUIRED
|
||||
if (href_list["select"])
|
||||
if(src.linkedServer == null || (src.linkedServer.stat & (NOPOWER|BROKEN)))
|
||||
message = noserver
|
||||
screen = 0
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else
|
||||
switch(href_list["select"])
|
||||
|
||||
//Reset
|
||||
if("Reset")
|
||||
ResetMessage()
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
|
||||
//Select Your Name
|
||||
if("Sender")
|
||||
customsender = stripped_input(usr, "Please enter the sender's name.")
|
||||
playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0)
|
||||
|
||||
//Select Receiver
|
||||
if("Recepient")
|
||||
@@ -379,16 +414,20 @@
|
||||
var/list/obj/item/device/pda/sendPDAs = get_viewable_pdas()
|
||||
if(PDAs && PDAs.len > 0)
|
||||
customrecepient = input(usr, "Select a PDA from the list.") as null|anything in sortNames(sendPDAs)
|
||||
playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0)
|
||||
else
|
||||
customrecepient = null
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
|
||||
//Enter custom job
|
||||
if("RecJob")
|
||||
customjob = stripped_input(usr, "Please enter the sender's job.")
|
||||
playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0)
|
||||
|
||||
//Enter message
|
||||
if("Message")
|
||||
custommessage = stripped_input(usr, "Please enter your message.")
|
||||
playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0)
|
||||
|
||||
//Send message
|
||||
if("Send")
|
||||
@@ -399,10 +438,12 @@
|
||||
if(isnull(customrecepient))
|
||||
message = "<span class='notice'>NOTICE: No recepient selected!</span>"
|
||||
return src.attack_hand(usr)
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
|
||||
if(isnull(custommessage) || custommessage == "")
|
||||
message = "<span class='notice'>NOTICE: No message entered!</span>"
|
||||
return src.attack_hand(usr)
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
|
||||
var/obj/item/device/pda/PDARec = null
|
||||
for (var/obj/item/device/pda/P in get_viewable_pdas())
|
||||
@@ -436,14 +477,17 @@
|
||||
customrecepient.add_overlay(image('icons/obj/pda.dmi', "pda-r"))
|
||||
//Finally..
|
||||
ResetMessage()
|
||||
playsound(src, 'sound/machines/terminal_success.ogg', 50, 0)
|
||||
|
||||
//Request Console Logs - KEY REQUIRED
|
||||
if(href_list["viewr"])
|
||||
if(src.linkedServer == null || (src.linkedServer.stat & (NOPOWER|BROKEN)))
|
||||
message = noserver
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else
|
||||
if(auth)
|
||||
src.screen = 4
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
|
||||
if (href_list["back"])
|
||||
src.screen = 0
|
||||
|
||||
@@ -100,16 +100,21 @@
|
||||
return
|
||||
I.loc = src
|
||||
inserted_id = I
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
else usr << "<span class='danger'>No valid ID.</span>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else if(inserted_id)
|
||||
switch(href_list["id"])
|
||||
if("eject")
|
||||
inserted_id.loc = get_turf(src)
|
||||
inserted_id.verb_pickup()
|
||||
inserted_id = null
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
if("reset")
|
||||
inserted_id.points = 0
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
if("setgoal")
|
||||
playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0)
|
||||
var/num = round(input(usr, "Choose prisoner's goal:", "Input an Integer", null) as num|null)
|
||||
if(num >= 0)
|
||||
num = min(num,1000) //Cap the quota to the equivilent of 10 minutes.
|
||||
@@ -133,8 +138,10 @@
|
||||
screen = !screen
|
||||
else
|
||||
usr << "Unauthorized Access."
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
|
||||
else if(href_list["warn"])
|
||||
playsound(src, 'sound/machines/terminal_displaying.ogg', 50, 0)
|
||||
var/warning = copytext(sanitize(input(usr,"Message:","Enter your message here!","")),1,MAX_MESSAGE_LEN)
|
||||
if(!warning) return
|
||||
var/obj/item/weapon/implant/I = locate(href_list["warn"])
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
/obj/machinery/computer/robotics/interact(mob/user)
|
||||
if (src.z > 6)
|
||||
user << "<span class='boldannounce'>Unable to establish a connection</span>: \black You're too far away from the station!"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
return
|
||||
user.set_machine(src)
|
||||
var/dat
|
||||
@@ -89,6 +90,7 @@
|
||||
if(can_control(usr, R))
|
||||
var/choice = input("Are you certain you wish to detonate [R.name]?") in list("Confirm", "Abort")
|
||||
if(choice == "Confirm" && can_control(usr, R) && !..())
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
if(R.syndicate && R.emagged)
|
||||
R << "Extreme danger. Termination codes detected. Scrambling security codes and automatic AI unlink triggered."
|
||||
if(R.connected_ai)
|
||||
@@ -102,6 +104,7 @@
|
||||
R.self_destruct()
|
||||
else
|
||||
usr << "<span class='danger'>Access Denied.</span>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
|
||||
else if (href_list["stopbot"])
|
||||
if(src.allowed(usr))
|
||||
@@ -109,6 +112,7 @@
|
||||
if(can_control(usr, R))
|
||||
var/choice = input("Are you certain you wish to [R.canmove ? "lock down" : "release"] [R.name]?") in list("Confirm", "Abort")
|
||||
if(choice == "Confirm" && can_control(usr, R) && !..())
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] (<A HREF='?_src_=holder;adminplayerobservefollow=\ref[usr]'>FLW</A>) [R.canmove ? "locked down" : "released"] [key_name(R, R.client)](<A HREF='?_src_=holder;adminplayerobservefollow=\ref[R]'>FLW</A>)!</span>")
|
||||
log_game("[key_name(usr)] [R.canmove ? "locked down" : "released"] [key_name(R)]!")
|
||||
R.SetLockdown(!R.lockcharge)
|
||||
|
||||
@@ -33,8 +33,10 @@
|
||||
O.loc = src
|
||||
scan = O
|
||||
user << "<span class='notice'>You insert [O].</span>"
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
else
|
||||
user << "<span class='warning'>There's already an ID card in the console.</span>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -44,6 +46,7 @@
|
||||
return
|
||||
if(src.z > 6)
|
||||
user << "<span class='boldannounce'>Unable to establish a connection</span>: \black You're too far away from the station!"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
return
|
||||
var/dat
|
||||
|
||||
@@ -314,6 +317,7 @@ What a mess.*/
|
||||
screen = null
|
||||
active1 = null
|
||||
active2 = null
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
|
||||
if("Log In")
|
||||
if(istype(usr, /mob/living/silicon))
|
||||
@@ -323,6 +327,7 @@ What a mess.*/
|
||||
authenticated = borg.name
|
||||
rank = "AI"
|
||||
screen = 1
|
||||
playsound(src, 'sound/machines/terminal_success.ogg', 50, 0)
|
||||
else if(IsAdminGhost(usr))
|
||||
active1 = null
|
||||
active2 = null
|
||||
@@ -336,17 +341,20 @@ What a mess.*/
|
||||
authenticated = scan.registered_name
|
||||
rank = scan.assignment
|
||||
screen = 1
|
||||
playsound(src, 'sound/machines/terminal_success.ogg', 50, 0)
|
||||
//RECORD FUNCTIONS
|
||||
if("Record Maintenance")
|
||||
screen = 2
|
||||
active1 = null
|
||||
active2 = null
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
|
||||
if("Browse Record")
|
||||
var/datum/data/record/R = locate(href_list["d_rec"])
|
||||
var/S = locate(href_list["d_rec"])
|
||||
if(!( data_core.general.Find(R) ))
|
||||
temp = "Record Not Found!"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
else
|
||||
for(var/datum/data/record/E in data_core.security)
|
||||
if((E.fields["name"] == R.fields["name"] || E.fields["id"] == R.fields["id"]))
|
||||
@@ -354,6 +362,7 @@ What a mess.*/
|
||||
active1 = R
|
||||
active2 = S
|
||||
screen = 3
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
|
||||
|
||||
if("Print Record")
|
||||
@@ -461,10 +470,12 @@ What a mess.*/
|
||||
qdel(R)
|
||||
data_core.security.Cut()
|
||||
temp = "All Security records deleted."
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
|
||||
if("Add Entry")
|
||||
if(!( istype(active2, /datum/data/record) ))
|
||||
return
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
var/a2 = active2
|
||||
var/t1 = stripped_multiline_input("Add Comment:", "Secure. records", null, null)
|
||||
if(!canUseSecurityRecordsConsole(usr, t1, null, a2))
|
||||
@@ -713,6 +724,7 @@ What a mess.*/
|
||||
if("Delete Record (ALL) Execute")
|
||||
if(active1)
|
||||
investigate_log("[usr.name] ([usr.key]) has deleted all records for [active1.fields["name"]].", "records")
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
for(var/datum/data/record/R in data_core.medical)
|
||||
if((R.fields["name"] == active1.fields["name"] || R.fields["id"] == active1.fields["id"]))
|
||||
data_core.medical -= R
|
||||
|
||||
@@ -33,6 +33,7 @@ var/list/possible_uplinker_IDs = list("Alfa","Bravo","Charlie","Delta","Echo","F
|
||||
/obj/machinery/computer/telecrystals/uplinker/attackby(obj/item/O, mob/user, params)
|
||||
if(uplinkholder)
|
||||
user << "<span class='notice'>The [src] already has an uplink in it.</span>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
return
|
||||
if(O.hidden_uplink)
|
||||
var/obj/item/I = user.get_active_hand()
|
||||
@@ -43,8 +44,10 @@ var/list/possible_uplinker_IDs = list("Alfa","Bravo","Charlie","Delta","Echo","F
|
||||
I.add_fingerprint(user)
|
||||
update_icon()
|
||||
updateUsrDialog()
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
else
|
||||
user << "<span class='notice'>The [O] doesn't appear to be an uplink...</span>"
|
||||
playsound(src, 'sound/machines/terminal_error.ogg', 50, 0)
|
||||
|
||||
/obj/machinery/computer/telecrystals/uplinker/update_icon()
|
||||
..()
|
||||
@@ -55,6 +58,7 @@ var/list/possible_uplinker_IDs = list("Alfa","Bravo","Charlie","Delta","Echo","F
|
||||
if(uplinkholder)
|
||||
uplinkholder.loc = get_turf(src.loc)
|
||||
uplinkholder = null
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/computer/telecrystals/uplinker/proc/donateTC(amt, addLog = 1)
|
||||
@@ -62,6 +66,7 @@ var/list/possible_uplinker_IDs = list("Alfa","Bravo","Charlie","Delta","Echo","F
|
||||
if(amt <= uplinkholder.hidden_uplink.telecrystals)
|
||||
uplinkholder.hidden_uplink.telecrystals -= amt
|
||||
linkedboss.storedcrystals += amt
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
if(addLog)
|
||||
linkedboss.logTransfer("[src] donated [amt] telecrystals to [linkedboss].")
|
||||
|
||||
@@ -70,6 +75,7 @@ var/list/possible_uplinker_IDs = list("Alfa","Bravo","Charlie","Delta","Echo","F
|
||||
if(amt <= linkedboss.storedcrystals)
|
||||
uplinkholder.hidden_uplink.telecrystals += amt
|
||||
linkedboss.storedcrystals -= amt
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
if(addLog)
|
||||
linkedboss.logTransfer("[src] received [amt] telecrystals from [linkedboss].")
|
||||
|
||||
@@ -80,6 +86,7 @@ var/list/possible_uplinker_IDs = list("Alfa","Bravo","Charlie","Delta","Echo","F
|
||||
return
|
||||
src.add_fingerprint(user)
|
||||
user.set_machine(src)
|
||||
playsound(src, 'sound/machines/terminal_on.ogg', 50, 0)
|
||||
|
||||
var/dat = ""
|
||||
if(linkedboss)
|
||||
@@ -212,6 +219,7 @@ var/list/possible_uplinker_IDs = list("Alfa","Bravo","Charlie","Delta","Echo","F
|
||||
A.giveTC(1,0)
|
||||
sanity++
|
||||
logTransfer("[src] evenly distributed telecrystals.")
|
||||
playsound(src, 'sound/machines/terminal_select.ogg', 50, 0)
|
||||
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
|
||||
@@ -219,5 +219,3 @@
|
||||
|
||||
/obj/proc/CanAStarPass()
|
||||
. = !density
|
||||
|
||||
|
||||
|
||||
@@ -138,4 +138,4 @@
|
||||
|
||||
/proc/playsound_global(file, repeat=0, wait, channel, volume)
|
||||
for(var/V in clients)
|
||||
V << sound(file, repeat, wait, channel, volume)
|
||||
V << sound(file, repeat, wait, channel, volume)
|
||||
|
||||
Binary file not shown.
BIN
sound/machines/terminal_displaying.ogg
Normal file
BIN
sound/machines/terminal_displaying.ogg
Normal file
Binary file not shown.
BIN
sound/machines/terminal_emagged.ogg
Normal file
BIN
sound/machines/terminal_emagged.ogg
Normal file
Binary file not shown.
BIN
sound/machines/terminal_error.ogg
Normal file
BIN
sound/machines/terminal_error.ogg
Normal file
Binary file not shown.
BIN
sound/machines/terminal_insert_disc.ogg
Normal file
BIN
sound/machines/terminal_insert_disc.ogg
Normal file
Binary file not shown.
BIN
sound/machines/terminal_off.ogg
Normal file
BIN
sound/machines/terminal_off.ogg
Normal file
Binary file not shown.
BIN
sound/machines/terminal_on.ogg
Normal file
BIN
sound/machines/terminal_on.ogg
Normal file
Binary file not shown.
BIN
sound/machines/terminal_processing.ogg
Normal file
BIN
sound/machines/terminal_processing.ogg
Normal file
Binary file not shown.
BIN
sound/machines/terminal_select.ogg
Normal file
BIN
sound/machines/terminal_select.ogg
Normal file
Binary file not shown.
BIN
sound/machines/terminal_success.ogg
Normal file
BIN
sound/machines/terminal_success.ogg
Normal file
Binary file not shown.
Reference in New Issue
Block a user