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
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user