mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-24 17:11:40 +00:00
laptop vending part 1. and more cleanup.
This commit is contained in:
@@ -1338,6 +1338,7 @@
|
|||||||
#include "code\WorkInProgress\computer3\computer3_notes.dm"
|
#include "code\WorkInProgress\computer3\computer3_notes.dm"
|
||||||
#include "code\WorkInProgress\computer3\file.dm"
|
#include "code\WorkInProgress\computer3\file.dm"
|
||||||
#include "code\WorkInProgress\computer3\laptop.dm"
|
#include "code\WorkInProgress\computer3\laptop.dm"
|
||||||
|
#include "code\WorkInProgress\computer3\lapvend.dm"
|
||||||
#include "code\WorkInProgress\computer3\networking.dm"
|
#include "code\WorkInProgress\computer3\networking.dm"
|
||||||
#include "code\WorkInProgress\computer3\NTOS.dm"
|
#include "code\WorkInProgress\computer3\NTOS.dm"
|
||||||
#include "code\WorkInProgress\computer3\program.dm"
|
#include "code\WorkInProgress\computer3\program.dm"
|
||||||
@@ -1350,10 +1351,16 @@
|
|||||||
#include "code\WorkInProgress\computer3\computers\card.dm"
|
#include "code\WorkInProgress\computer3\computers\card.dm"
|
||||||
#include "code\WorkInProgress\computer3\computers\communications.dm"
|
#include "code\WorkInProgress\computer3\computers\communications.dm"
|
||||||
#include "code\WorkInProgress\computer3\computers\crew.dm"
|
#include "code\WorkInProgress\computer3\computers\crew.dm"
|
||||||
|
#include "code\WorkInProgress\computer3\computers\customs.dm"
|
||||||
#include "code\WorkInProgress\computer3\computers\HolodeckControl.dm"
|
#include "code\WorkInProgress\computer3\computers\HolodeckControl.dm"
|
||||||
#include "code\WorkInProgress\computer3\computers\law.dm"
|
#include "code\WorkInProgress\computer3\computers\law.dm"
|
||||||
#include "code\WorkInProgress\computer3\computers\medical.dm"
|
#include "code\WorkInProgress\computer3\computers\medical.dm"
|
||||||
|
#include "code\WorkInProgress\computer3\computers\Operating.dm"
|
||||||
|
#include "code\WorkInProgress\computer3\computers\power.dm"
|
||||||
|
#include "code\WorkInProgress\computer3\computers\prisoner.dm"
|
||||||
|
#include "code\WorkInProgress\computer3\computers\robot.dm"
|
||||||
#include "code\WorkInProgress\computer3\computers\security.dm"
|
#include "code\WorkInProgress\computer3\computers\security.dm"
|
||||||
|
#include "code\WorkInProgress\computer3\computers\welcome.dm"
|
||||||
#include "code\WorkInProgress\kilakk\fax.dm"
|
#include "code\WorkInProgress\kilakk\fax.dm"
|
||||||
#include "code\WorkInProgress\Mini\atmos_control.dm"
|
#include "code\WorkInProgress\Mini\atmos_control.dm"
|
||||||
#include "code\WorkInProgress\Ported\policetape.dm"
|
#include "code\WorkInProgress\Ported\policetape.dm"
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
/datum/file/program/ntos
|
/datum/file/program/ntos
|
||||||
name = "Nanotrasen Operating System"
|
name = "Nanotrasen Operating System"
|
||||||
extension = "prog"
|
extension = "prog"
|
||||||
active_state = "NTOS"
|
active_state = "ntos"
|
||||||
var/obj/item/part/computer/storage/current // the drive being viewed, null for desktop/computer
|
var/obj/item/part/computer/storage/current // the drive being viewed, null for desktop/computer
|
||||||
var/fileop = "runfile"
|
var/fileop = "runfile"
|
||||||
|
|
||||||
|
|||||||
@@ -127,6 +127,9 @@
|
|||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
|
|
||||||
|
proc/update_spawn_files()
|
||||||
|
for(var/typekey in spawn_files)
|
||||||
|
hdd.addfile(new typekey,1)
|
||||||
|
|
||||||
proc/spawn_parts()
|
proc/spawn_parts()
|
||||||
for(var/typekey in spawn_parts)
|
for(var/typekey in spawn_parts)
|
||||||
|
|||||||
@@ -31,28 +31,85 @@
|
|||||||
// the list of jobs won't change after all...
|
// the list of jobs won't change after all...
|
||||||
proc/scriptblock()
|
proc/scriptblock()
|
||||||
var/global/dat = null
|
var/global/dat = null
|
||||||
if(!dat)
|
var/counter = 0
|
||||||
var/jobs_all = ""
|
var jobs_all = ""
|
||||||
for(var/job in list_jobs())
|
jobs_all += "<table><tr><td></td><td><b>Command</b></td>"
|
||||||
jobs_all += topic_link(src,"assign=[job]",replacetext(job," "," ")) + " "//make sure there isn't a line break in the middle of a job
|
|
||||||
|
jobs_all += "</tr><tr height='20'><td><b>Special</b></font></td>"//Captain in special because he is head of heads ~Intercross21
|
||||||
|
jobs_all += "<td weight='100'><a href='?src=\ref[src];;assign=Captain'>Captain</a></td>"
|
||||||
|
jobs_all += "<td weight='100'><a href='?src=\ref[src];;assign=Custom'>Custom</a></td>"
|
||||||
|
|
||||||
|
counter = 0
|
||||||
|
jobs_all += "</tr><tr><td><font color='#A50000'><b>Security</b></font></td>"//Red
|
||||||
|
for(var/job in security_positions)
|
||||||
|
counter++
|
||||||
|
if(counter >= 6)
|
||||||
|
jobs_all += "</tr><tr height='20'><td></td><td></td>"
|
||||||
|
counter = 0
|
||||||
|
jobs_all += "<td height='20' weight='100'><a href='?src=\ref[src];assign=[job]'>[replacetext(job, " ", " ")]</a></td>"
|
||||||
|
|
||||||
|
counter = 0
|
||||||
|
jobs_all += "</tr><tr><td><font color='#FFA500'><b>Engineering</b></font></td>"//Orange
|
||||||
|
for(var/job in engineering_positions)
|
||||||
|
counter++
|
||||||
|
if(counter >= 6)
|
||||||
|
jobs_all += "</tr><tr height='20'><td></td><td></td>"
|
||||||
|
counter = 0
|
||||||
|
jobs_all += "<td height='20' weight='100'><a href='?src=\ref[src];assign=[job]'>[replacetext(job, " ", " ")]</a></td>"
|
||||||
|
|
||||||
|
counter = 0
|
||||||
|
jobs_all += "</tr><tr height='20'><td><font color='#008000'><b>Medical</b></font></td>"//Green
|
||||||
|
for(var/job in medical_positions)
|
||||||
|
counter++
|
||||||
|
if(counter >= 6)
|
||||||
|
jobs_all += "</tr><tr height='20'><td></td><td></td>"
|
||||||
|
counter = 0
|
||||||
|
jobs_all += "<td weight='100'><a href='?src=\ref[src];assign=[job]'>[replacetext(job, " ", " ")]</a></td>"
|
||||||
|
|
||||||
|
counter = 0
|
||||||
|
jobs_all += "</tr><tr height='20'><td><font color='#800080'><b>Science</b></font></td>"//Purple
|
||||||
|
for(var/job in science_positions)
|
||||||
|
counter++
|
||||||
|
if(counter >= 6)
|
||||||
|
jobs_all += "</tr><tr height='20'><td></td><td></td>"
|
||||||
|
counter = 0
|
||||||
|
jobs_all += "<td weight='100'><a href='?src=\ref[src];assign=[job]'>[replacetext(job, " ", " ")]</a></td>"
|
||||||
|
|
||||||
|
counter = 0
|
||||||
|
jobs_all += "</tr><tr height='20'><td><font color='#808080'><b>Civilian</b></font></td>"//Grey
|
||||||
|
for(var/job in civilian_positions)
|
||||||
|
counter++
|
||||||
|
if(counter >= 6)
|
||||||
|
jobs_all += "</tr><tr height='20'><td></td><td></td>"
|
||||||
|
counter = 0
|
||||||
|
jobs_all += "<td weight='100'><a href='?src=\ref[src];assign=[job]'>[replacetext(job, " ", " ")]</a></td>"
|
||||||
|
|
||||||
dat = {"<script type="text/javascript">
|
dat = {"<script type="text/javascript">
|
||||||
function markRed(){
|
function markRed(){
|
||||||
var nameField = document.getElementById('namefield');
|
var nameField = document.getElementById('namefield');
|
||||||
nameField.style.backgroundColor = "#FFDDDD";
|
nameField.style.backgroundColor = "#FFDDDD";
|
||||||
}
|
}
|
||||||
function markGreen(){
|
function markGreen(){
|
||||||
var nameField = document.getElementById('namefield');
|
var nameField = document.getElementById('namefield');
|
||||||
nameField.style.backgroundColor = "#DDFFDD";
|
nameField.style.backgroundColor = "#DDFFDD";
|
||||||
}
|
}
|
||||||
function showAll(){
|
function markAccountGreen(){
|
||||||
var allJobsSlot = document.getElementById('alljobsslot');
|
var nameField = document.getElementById('accountfield');
|
||||||
allJobsSlot.innerHTML = "<a href='#' onclick='hideAll()'>hide</a><br>[jobs_all]";
|
nameField.style.backgroundColor = "#DDFFDD";
|
||||||
}
|
}
|
||||||
function hideAll(){
|
function markAccountRed(){
|
||||||
var allJobsSlot = document.getElementById('alljobsslot');
|
var nameField = document.getElementById('accountfield');
|
||||||
allJobsSlot.innerHTML = "<a href='#' onclick='showAll()'>change</a>";
|
nameField.style.backgroundColor = "#FFDDDD";
|
||||||
}
|
}
|
||||||
</script>"}
|
function showAll(){
|
||||||
|
var allJobsSlot = document.getElementById('alljobsslot');
|
||||||
|
allJobsSlot.innerHTML = "<a href='#' onclick='hideAll()'>hide</a><br>"+ "[jobs_all]";
|
||||||
|
}
|
||||||
|
function hideAll(){
|
||||||
|
var allJobsSlot = document.getElementById('alljobsslot');
|
||||||
|
allJobsSlot.innerHTML = "<a href='#' onclick='showAll()'>[(writer.assignment) ? writer.assignment : "Unassgied"]</a>";
|
||||||
|
}
|
||||||
|
</script>"}
|
||||||
return dat
|
return dat
|
||||||
|
|
||||||
// creates the list of access rights on the card
|
// creates the list of access rights on the card
|
||||||
|
|||||||
@@ -11,6 +11,11 @@
|
|||||||
default_prog = /datum/file/program/med_data
|
default_prog = /datum/file/program/med_data
|
||||||
spawn_parts = list(/obj/item/part/computer/storage/hdd,/obj/item/part/computer/cardslot,/obj/item/part/computer/networking/radio)
|
spawn_parts = list(/obj/item/part/computer/storage/hdd,/obj/item/part/computer/cardslot,/obj/item/part/computer/networking/radio)
|
||||||
|
|
||||||
|
|
||||||
|
/obj/machinery/computer3/laptop/medical
|
||||||
|
spawn_parts = list(/obj/item/part/computer/storage/hdd,/obj/item/part/computer/cardslot,/obj/item/part/computer/networking/radio)
|
||||||
|
spawn_files = list(/datum/file/program/arcade,/datum/file/program/crew,/datum/file/program/med_data)
|
||||||
|
|
||||||
/datum/file/program/med_data
|
/datum/file/program/med_data
|
||||||
name = "Medical Records"
|
name = "Medical Records"
|
||||||
desc = "This can be used to check medical records."
|
desc = "This can be used to check medical records."
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
default_prog = /datum/file/program/message_mon
|
default_prog = /datum/file/program/message_mon
|
||||||
spawn_parts = list(/obj/item/part/computer/storage/hdd,/obj/item/part/computer/networking/prox)
|
spawn_parts = list(/obj/item/part/computer/storage/hdd,/obj/item/part/computer/networking/prox)
|
||||||
|
|
||||||
|
|
||||||
|
//BROKEN AS HELL, DON'T USE UNTIL FIXED
|
||||||
|
|
||||||
/datum/file/program/message_mon
|
/datum/file/program/message_mon
|
||||||
name = "Message Monitor Console"
|
name = "Message Monitor Console"
|
||||||
desc = "Used to Monitor the crew's messages, that are sent via PDA. Can also be used to view Request Console messages."
|
desc = "Used to Monitor the crew's messages, that are sent via PDA. Can also be used to view Request Console messages."
|
||||||
@@ -35,6 +38,13 @@
|
|||||||
var/custommessage = "This is a test, please ignore."
|
var/custommessage = "This is a test, please ignore."
|
||||||
|
|
||||||
|
|
||||||
|
procinitialize()
|
||||||
|
if(!linkedServer)
|
||||||
|
if(message_servers && message_servers.len > 0)
|
||||||
|
linkedServer = message_servers[1]
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
update_icon()
|
update_icon()
|
||||||
if(emag || hacking)
|
if(emag || hacking)
|
||||||
overlay.icon_state = hack_icon
|
overlay.icon_state = hack_icon
|
||||||
@@ -45,12 +55,12 @@
|
|||||||
interact()
|
interact()
|
||||||
if(!interactable())
|
if(!interactable())
|
||||||
return
|
return
|
||||||
|
|
||||||
//If the computer is being hacked or is emagged, display the reboot message.
|
//If the computer is being hacked or is emagged, display the reboot message.
|
||||||
if(hacking || emag)
|
if(hacking || emag)
|
||||||
message = rebootmsg
|
message = rebootmsg
|
||||||
|
var/dat = "<head><title>Message Monitor Console</title></head><body>"
|
||||||
var/dat = "<center><font color='blue'[message]</font>/</center>"
|
dat += "<center><h2>Message Monitor Console</h2></center><hr>"
|
||||||
|
dat += "<center><h4><font color='blue'[message]</h5></center>"
|
||||||
|
|
||||||
if(auth)
|
if(auth)
|
||||||
dat += "<h4><dd><A href='?src=\ref[src];auth=1'>	<font color='green'>\[Authenticated\]</font></a>	/"
|
dat += "<h4><dd><A href='?src=\ref[src];auth=1'>	<font color='green'>\[Authenticated\]</font></a>	/"
|
||||||
@@ -61,12 +71,9 @@
|
|||||||
|
|
||||||
if(hacking || emag)
|
if(hacking || emag)
|
||||||
screen = 2
|
screen = 2
|
||||||
else
|
else if(!auth || !linkedServer || (linkedServer.stat & (NOPOWER|BROKEN)))
|
||||||
if(!auth)
|
if(!linkedServer || (linkedServer.stat & (NOPOWER|BROKEN))) message = noserver
|
||||||
screen = 0
|
screen = 0
|
||||||
if( !linkedServer || (linkedServer.stat & (NOPOWER|BROKEN)) )
|
|
||||||
message = noserver
|
|
||||||
screen = 0
|
|
||||||
|
|
||||||
switch(screen)
|
switch(screen)
|
||||||
//Main menu
|
//Main menu
|
||||||
@@ -202,9 +209,11 @@
|
|||||||
<td width='15%'>[rc.rec_dpt]</td><td width='300px'>[rc.message]</td><td width='15%'>[rc.stamp]</td><td width='15%'>[rc.id_auth]</td><td width='15%'>[rc.priority]</td></tr>"}
|
<td width='15%'>[rc.rec_dpt]</td><td width='300px'>[rc.message]</td><td width='15%'>[rc.stamp]</td><td width='15%'>[rc.id_auth]</td><td width='15%'>[rc.priority]</td></tr>"}
|
||||||
dat += "</table>"
|
dat += "</table>"
|
||||||
|
|
||||||
message = defaultmsg
|
|
||||||
|
|
||||||
|
popup.width = 700
|
||||||
|
popup.height = 700
|
||||||
popup.set_content(dat)
|
popup.set_content(dat)
|
||||||
|
popup.set_title_image(usr.browse_rsc_icon(computer.icon, computer.icon_state))
|
||||||
popup.open()
|
popup.open()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -1,218 +0,0 @@
|
|||||||
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
|
|
||||||
|
|
||||||
/obj/machinery/computer3/pod
|
|
||||||
name = "Pod Launch Control"
|
|
||||||
desc = "A controll for launching pods. Some people prefer firing Mechas."
|
|
||||||
icon_state = "computer_generic"
|
|
||||||
var/id = 1.0
|
|
||||||
var/obj/machinery/mass_driver/connected = null
|
|
||||||
var/timing = 0.0
|
|
||||||
var/time = 30.0
|
|
||||||
var/title = "Mass Driver Controls"
|
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/computer3/pod/New()
|
|
||||||
..()
|
|
||||||
spawn( 5 )
|
|
||||||
for(var/obj/machinery/mass_driver/M in world)
|
|
||||||
if(M.id == id)
|
|
||||||
connected = M
|
|
||||||
else
|
|
||||||
return
|
|
||||||
return
|
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/computer3/pod/proc/alarm()
|
|
||||||
if(stat & (NOPOWER|BROKEN))
|
|
||||||
return
|
|
||||||
|
|
||||||
if(!( connected ))
|
|
||||||
viewers(null, null) << "Cannot locate mass driver connector. Cancelling firing sequence!"
|
|
||||||
return
|
|
||||||
|
|
||||||
for(var/obj/machinery/door/poddoor/M in world)
|
|
||||||
if(M.id == id)
|
|
||||||
M.open()
|
|
||||||
return
|
|
||||||
sleep(20)
|
|
||||||
|
|
||||||
for(var/obj/machinery/mass_driver/M in world)
|
|
||||||
if(M.id == id)
|
|
||||||
M.power = connected.power
|
|
||||||
M.drive()
|
|
||||||
|
|
||||||
sleep(50)
|
|
||||||
for(var/obj/machinery/door/poddoor/M in world)
|
|
||||||
if(M.id == id)
|
|
||||||
M.close()
|
|
||||||
return
|
|
||||||
return
|
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/computer3/pod/attackby(I as obj, user as mob)
|
|
||||||
if(istype(I, /obj/item/tool/screwdriver))
|
|
||||||
playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
|
||||||
if(do_after(user, 20))
|
|
||||||
if(stat & BROKEN)
|
|
||||||
user << "\blue The broken glass falls out."
|
|
||||||
var/obj/structure/computerframe/A = new /obj/structure/computerframe( loc )
|
|
||||||
new /obj/item/trash/shard( loc )
|
|
||||||
|
|
||||||
//generate appropriate circuitboard. Accounts for /pod/old computer types
|
|
||||||
var/obj/item/part/board/circuit/pod/M = null
|
|
||||||
if(istype(src, /obj/machinery/computer/pod/old))
|
|
||||||
M = new /obj/item/part/board/circuit/olddoor( A )
|
|
||||||
if(istype(src, /obj/machinery/computer/pod/old/syndicate))
|
|
||||||
M = new /obj/item/part/board/circuit/syndicatedoor( A )
|
|
||||||
if(istype(src, /obj/machinery/computer/pod/old/swf))
|
|
||||||
M = new /obj/item/part/board/circuit/swfdoor( A )
|
|
||||||
else //it's not an old computer. Generate standard pod circuitboard.
|
|
||||||
M = new /obj/item/part/board/circuit/pod( A )
|
|
||||||
|
|
||||||
for (var/obj/C in src)
|
|
||||||
C.loc = loc
|
|
||||||
M.id = id
|
|
||||||
A.circuit = M
|
|
||||||
A.state = 3
|
|
||||||
A.icon_state = "3"
|
|
||||||
A.anchored = 1
|
|
||||||
del(src)
|
|
||||||
else
|
|
||||||
user << "\blue You disconnect the monitor."
|
|
||||||
var/obj/structure/computerframe/A = new /obj/structure/computerframe( loc )
|
|
||||||
|
|
||||||
//generate appropriate circuitboard. Accounts for /pod/old computer types
|
|
||||||
var/obj/item/part/board/circuit/pod/M = null
|
|
||||||
if(istype(src, /obj/machinery/computer/pod/old))
|
|
||||||
M = new /obj/item/part/board/circuit/olddoor( A )
|
|
||||||
if(istype(src, /obj/machinery/computer/pod/old/syndicate))
|
|
||||||
M = new /obj/item/part/board/circuit/syndicatedoor( A )
|
|
||||||
if(istype(src, /obj/machinery/computer/pod/old/swf))
|
|
||||||
M = new /obj/item/part/board/circuit/swfdoor( A )
|
|
||||||
else //it's not an old computer. Generate standard pod circuitboard.
|
|
||||||
M = new /obj/item/part/board/circuit/pod( A )
|
|
||||||
|
|
||||||
for (var/obj/C in src)
|
|
||||||
C.loc = loc
|
|
||||||
M.id = id
|
|
||||||
A.circuit = M
|
|
||||||
A.state = 4
|
|
||||||
A.icon_state = "4"
|
|
||||||
A.anchored = 1
|
|
||||||
del(src)
|
|
||||||
else
|
|
||||||
attack_hand(user)
|
|
||||||
return
|
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/computer3/pod/attack_ai(var/mob/user as mob)
|
|
||||||
return attack_hand(user)
|
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/computer3/pod/attack_paw(var/mob/user as mob)
|
|
||||||
return attack_hand(user)
|
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/computer3/pod/attack_hand(var/mob/user as mob)
|
|
||||||
if(..())
|
|
||||||
return
|
|
||||||
|
|
||||||
var/dat = ""
|
|
||||||
user.set_machine(src)
|
|
||||||
if(connected)
|
|
||||||
var/d2
|
|
||||||
if(timing) //door controls do not need timers.
|
|
||||||
d2 = "<A href='?src=\ref[src];time=0'>Stop Time Launch</A>"
|
|
||||||
else
|
|
||||||
d2 = "<A href='?src=\ref[src];time=1'>Initiate Time Launch</A>"
|
|
||||||
var/second = time % 60
|
|
||||||
var/minute = (time - second) / 60
|
|
||||||
dat += "<HR>\nTimer System: [d2]\nTime Left: [minute ? "[minute]:" : null][second] <A href='?src=\ref[src];tp=-30'>-</A> <A href='?src=\ref[src];tp=-1'>-</A> <A href='?src=\ref[src];tp=1'>+</A> <A href='?src=\ref[src];tp=30'>+</A>"
|
|
||||||
var/temp = ""
|
|
||||||
var/list/L = list( 0.25, 0.5, 1, 2, 4, 8, 16 )
|
|
||||||
for(var/t in L)
|
|
||||||
if(t == connected.power)
|
|
||||||
temp += "[t] "
|
|
||||||
else
|
|
||||||
temp += "<A href = '?src=\ref[src];power=[t]'>[t]</A> "
|
|
||||||
dat += "<HR>\nPower Level: [temp]<BR>\n<A href = '?src=\ref[src];alarm=1'>Firing Sequence</A><BR>\n<A href = '?src=\ref[src];drive=1'>Test Fire Driver</A><BR>\n<A href = '?src=\ref[src];door=1'>Toggle Outer Door</A><BR>"
|
|
||||||
else
|
|
||||||
dat += "<BR>\n<A href = '?src=\ref[src];door=1'>Toggle Outer Door</A><BR>"
|
|
||||||
dat += "<BR><BR><A href='?src=\ref[user];mach_close=computer'>Close</A>"
|
|
||||||
add_fingerprint(usr)
|
|
||||||
//user << browse(dat, "window=computer;size=400x500")
|
|
||||||
//onclose(user, "computer")
|
|
||||||
var/datum/browser/popup = new(user, "computer", title, 400, 500)
|
|
||||||
popup.set_content(dat)
|
|
||||||
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
|
||||||
popup.open()
|
|
||||||
return
|
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/computer3/pod/process()
|
|
||||||
if(!..())
|
|
||||||
return
|
|
||||||
if(timing)
|
|
||||||
if(time > 0)
|
|
||||||
time = round(time) - 1
|
|
||||||
else
|
|
||||||
alarm()
|
|
||||||
time = 0
|
|
||||||
timing = 0
|
|
||||||
updateDialog()
|
|
||||||
return
|
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/computer3/pod/Topic(href, href_list)
|
|
||||||
if(..())
|
|
||||||
return
|
|
||||||
if((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (istype(usr, /mob/living/silicon)))
|
|
||||||
usr.set_machine(src)
|
|
||||||
if(href_list["power"])
|
|
||||||
var/t = text2num(href_list["power"])
|
|
||||||
t = min(max(0.25, t), 16)
|
|
||||||
if(connected)
|
|
||||||
connected.power = t
|
|
||||||
if(href_list["alarm"])
|
|
||||||
alarm()
|
|
||||||
if(href_list["time"])
|
|
||||||
timing = text2num(href_list["time"])
|
|
||||||
if(href_list["tp"])
|
|
||||||
var/tp = text2num(href_list["tp"])
|
|
||||||
time += tp
|
|
||||||
time = min(max(round(time), 0), 120)
|
|
||||||
if(href_list["door"])
|
|
||||||
for(var/obj/machinery/door/poddoor/M in world)
|
|
||||||
if(M.id == id)
|
|
||||||
if(M.density)
|
|
||||||
M.open()
|
|
||||||
else
|
|
||||||
M.close()
|
|
||||||
updateUsrDialog()
|
|
||||||
return
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/computer3/pod/old
|
|
||||||
icon_state = "old"
|
|
||||||
name = "DoorMex Control Console"
|
|
||||||
title = "Door Controls"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/computer3/pod/old/syndicate
|
|
||||||
name = "ProComp Executive IIc"
|
|
||||||
desc = "The Syndicate operate on a tight budget. Operates external airlocks."
|
|
||||||
title = "External Airlock Controls"
|
|
||||||
req_access = list(access_syndicate)
|
|
||||||
|
|
||||||
/obj/machinery/computer3/pod/old/syndicate/attack_hand(var/mob/user as mob)
|
|
||||||
if(!allowed(user))
|
|
||||||
user << "\red Access Denied"
|
|
||||||
return
|
|
||||||
else
|
|
||||||
..()
|
|
||||||
|
|
||||||
/obj/machinery/computer3/pod/old/swf
|
|
||||||
name = "Magix System IV"
|
|
||||||
desc = "An arcane artifact that holds much magic. Running E-Knock 2.2: Sorceror's Edition"
|
|
||||||
@@ -11,7 +11,8 @@
|
|||||||
proc/format(var/obj/machinery/power/apc/A)
|
proc/format(var/obj/machinery/power/apc/A)
|
||||||
var/static/list/S = list(" Off","AOff"," On", " AOn")
|
var/static/list/S = list(" Off","AOff"," On", " AOn")
|
||||||
var/static/list/chg = list("N","C","F")
|
var/static/list/chg = list("N","C","F")
|
||||||
return "[copytext(add_tspace("\The [A.area]", 30), 1, 30)] [S[A.equipment+1]] [S[A.lighting+1]] [S[A.environ+1]] [add_lspace(A.lastused_total, 6)] [A.cell ? "[add_lspace(round(A.cell.percent()), 3)]% [chg[A.charging+1]]" : " N/C"]<BR>"
|
return "[copytext(add_tspace("\The [A.area]", 30), 1, 30)] [S[A.equipment+1]] [S[A.lighting+1]] [S[A.environ+1]] \
|
||||||
|
[add_lspace(A.lastused_total, 6)] [A.cell ? "[add_lspace(round(A.cell.percent()), 3)]% [chg[A.charging+1]]" : " N/C"]<BR>"
|
||||||
|
|
||||||
interact()
|
interact()
|
||||||
if(!interactable())
|
if(!interactable())
|
||||||
@@ -23,7 +24,7 @@
|
|||||||
var/t = ""
|
var/t = ""
|
||||||
t += "<A href='?src=\ref[src]'>Refresh</A><br /><br />"
|
t += "<A href='?src=\ref[src]'>Refresh</A><br /><br />"
|
||||||
if(!L || !L.len)
|
if(!L || !L.len)
|
||||||
t += "\red No connection"
|
t += "No connection"
|
||||||
else
|
else
|
||||||
var/datum/powernet/powernet = computer.net.connect_to(/datum/powernet,null)
|
var/datum/powernet/powernet = computer.net.connect_to(/datum/powernet,null)
|
||||||
if(powernet)
|
if(powernet)
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
|
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
|
||||||
|
|
||||||
/obj/machinery/computer3/prisoner
|
/obj/machinery/computer3/prisoner
|
||||||
|
default_prog = /datum/file/program/prisoner
|
||||||
|
spawn_parts = list(/obj/item/part/computer/storage/hdd,/obj/item/part/computer/networking/radio)
|
||||||
|
icon_state = "frame-sec"
|
||||||
|
|
||||||
|
/datum/file/program/prisoner
|
||||||
name = "Prisoner Management Comsole"
|
name = "Prisoner Management Comsole"
|
||||||
icon = 'icons/obj/computer.dmi'
|
active_state = "explosive"
|
||||||
icon_state = "explosive"
|
|
||||||
req_access = list(access_armory)
|
req_access = list(access_armory)
|
||||||
circuit = "/obj/item/part/board/circuit/prisoner"
|
|
||||||
var/id = 0.0
|
var/id = 0.0
|
||||||
var/temp = null
|
var/temp = null
|
||||||
var/status = 0
|
var/status = 0
|
||||||
@@ -14,18 +17,9 @@
|
|||||||
var/screen = 0 // 0 - No Access Denied, 1 - Access allowed
|
var/screen = 0 // 0 - No Access Denied, 1 - Access allowed
|
||||||
|
|
||||||
|
|
||||||
attack_ai(var/mob/user as mob)
|
interact()
|
||||||
return src.attack_hand(user)
|
if(!interactable())
|
||||||
|
|
||||||
|
|
||||||
attack_paw(var/mob/user as mob)
|
|
||||||
return
|
|
||||||
|
|
||||||
|
|
||||||
attack_hand(var/mob/user as mob)
|
|
||||||
if(..())
|
|
||||||
return
|
return
|
||||||
user.set_machine(src)
|
|
||||||
var/dat
|
var/dat
|
||||||
dat += "<B>Prisoner Implant Manager System</B><BR>"
|
dat += "<B>Prisoner Implant Manager System</B><BR>"
|
||||||
if(screen == 0)
|
if(screen == 0)
|
||||||
@@ -35,7 +29,7 @@
|
|||||||
var/turf/Tr = null
|
var/turf/Tr = null
|
||||||
for(var/obj/item/weapon/implant/chem/C in world)
|
for(var/obj/item/weapon/implant/chem/C in world)
|
||||||
Tr = get_turf(C)
|
Tr = get_turf(C)
|
||||||
if((Tr) && (Tr.z != src.z)) continue//Out of range
|
if((Tr) && (Tr.z != computer.z)) continue//Out of range
|
||||||
if(!C.implanted) continue
|
if(!C.implanted) continue
|
||||||
dat += "[C.imp_in.name] | Remaining Units: [C.reagents.total_volume] | Inject: "
|
dat += "[C.imp_in.name] | Remaining Units: [C.reagents.total_volume] | Inject: "
|
||||||
dat += "<A href='?src=\ref[src];inject1=\ref[C]'>(<font color=red>(1)</font>)</A>"
|
dat += "<A href='?src=\ref[src];inject1=\ref[C]'>(<font color=red>(1)</font>)</A>"
|
||||||
@@ -45,7 +39,7 @@
|
|||||||
dat += "<HR>Tracking Implants<BR>"
|
dat += "<HR>Tracking Implants<BR>"
|
||||||
for(var/obj/item/weapon/implant/tracking/T in world)
|
for(var/obj/item/weapon/implant/tracking/T in world)
|
||||||
Tr = get_turf(T)
|
Tr = get_turf(T)
|
||||||
if((Tr) && (Tr.z != src.z)) continue//Out of range
|
if((Tr) && (Tr.z != computer.z)) continue//Out of range
|
||||||
if(!T.implanted) continue
|
if(!T.implanted) continue
|
||||||
var/loc_display = "Unknown"
|
var/loc_display = "Unknown"
|
||||||
var/mob/living/carbon/M = T.imp_in
|
var/mob/living/carbon/M = T.imp_in
|
||||||
@@ -55,55 +49,52 @@
|
|||||||
if(T.malfunction)
|
if(T.malfunction)
|
||||||
loc_display = pick(teleportlocs)
|
loc_display = pick(teleportlocs)
|
||||||
dat += "ID: [T.id] | Location: [loc_display]<BR>"
|
dat += "ID: [T.id] | Location: [loc_display]<BR>"
|
||||||
dat += "<A href='?src=\ref[src];warn=\ref[T]'>(<font color=red><i>Message Holder</i></font>)</A> |<BR>"
|
dat += "<A href='?src=\ref[src];warn=\ref[T]'>(<i>Send Message</i></font>)</A> |<BR>"
|
||||||
dat += "********************************<BR>"
|
dat += "********************************<BR>"
|
||||||
dat += "<HR><A href='?src=\ref[src];lock=1'>Lock Console</A>"
|
dat += "<HR><A href='?src=\ref[src];lock=1'>Lock Console</A>"
|
||||||
|
|
||||||
user << browse(dat, "window=computer;size=400x500")
|
popup.width = 400
|
||||||
onclose(user, "computer")
|
popup.height = 500
|
||||||
|
popup.set_content(dat)
|
||||||
|
popup.set_title_image(usr.browse_rsc_icon(computer.icon, computer.icon_state))
|
||||||
|
popup.open()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
process()
|
process()
|
||||||
if(!..())
|
if(!..())
|
||||||
src.updateDialog()
|
interact()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
Topic(href, href_list)
|
Topic(href, href_list)
|
||||||
if(..())
|
if(!interactable() || ..(href,href_list))
|
||||||
return
|
return
|
||||||
if((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
|
|
||||||
usr.set_machine(src)
|
|
||||||
|
|
||||||
if(href_list["inject1"])
|
if(href_list["inject1"])
|
||||||
var/obj/item/weapon/implant/I = locate(href_list["inject1"])
|
var/obj/item/weapon/implant/I = locate(href_list["inject1"])
|
||||||
if(I) I.activate(1)
|
if(I) I.activate(1)
|
||||||
|
|
||||||
else if(href_list["inject5"])
|
else if(href_list["inject5"])
|
||||||
var/obj/item/weapon/implant/I = locate(href_list["inject5"])
|
var/obj/item/weapon/implant/I = locate(href_list["inject5"])
|
||||||
if(I) I.activate(5)
|
if(I) I.activate(5)
|
||||||
|
|
||||||
else if(href_list["inject10"])
|
else if(href_list["inject10"])
|
||||||
var/obj/item/weapon/implant/I = locate(href_list["inject10"])
|
var/obj/item/weapon/implant/I = locate(href_list["inject10"])
|
||||||
if(I) I.activate(10)
|
if(I) I.activate(10)
|
||||||
|
|
||||||
else if(href_list["lock"])
|
else if(href_list["lock"])
|
||||||
if(src.allowed(usr))
|
screen = !screen
|
||||||
screen = !screen
|
|
||||||
else
|
|
||||||
usr << "Unauthorized Access."
|
|
||||||
|
|
||||||
else if(href_list["warn"])
|
else if(href_list["warn"])
|
||||||
var/warning = copytext(sanitize(input(usr,"Message:","Enter your message here!","")),1,MAX_MESSAGE_LEN)
|
var/warning = copytext(sanitize(input(usr,"Message:","Enter your message here!","")),1,MAX_MESSAGE_LEN)
|
||||||
if(!warning) return
|
if(!warning) return
|
||||||
var/obj/item/weapon/implant/I = locate(href_list["warn"])
|
var/obj/item/weapon/implant/I = locate(href_list["warn"])
|
||||||
if((I)&&(I.imp_in))
|
if((I)&&(I.imp_in))
|
||||||
var/mob/living/carbon/R = I.imp_in
|
var/mob/living/carbon/R = I.imp_in
|
||||||
R << "\green You hear a voice in your head saying: '[warning]'"
|
R << "\green You hear a voice in your head saying: '[warning]'"
|
||||||
|
|
||||||
src.add_fingerprint(usr)
|
interact()
|
||||||
src.updateUsrDialog()
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -74,9 +74,9 @@
|
|||||||
dat += " Independent from AI |"
|
dat += " Independent from AI |"
|
||||||
if (istype(usr, /mob/living/silicon))
|
if (istype(usr, /mob/living/silicon))
|
||||||
if(issilicon(usr) && is_special_character(usr) && !R.emagged)
|
if(issilicon(usr) && is_special_character(usr) && !R.emagged)
|
||||||
dat += "<A href='?src=\ref[src];magbot=\ref[R]'>(<font color=blue><i>Hack</i></font>)</A> "
|
dat += "<A href='?src=\ref[src];magbot=\ref[R]'>(<i>Hack</i>)</A> "
|
||||||
dat += "<A href='?src=\ref[src];stopbot=\ref[R]'>(<font color=green><i>[R.canmove ? "Lockdown" : "Release"]</i></font>)</A> "
|
dat += "<A href='?src=\ref[src];stopbot=\ref[R]'>(<i>[R.canmove ? "Lockdown" : "Release"]</i>)</A> "
|
||||||
dat += "<A href='?src=\ref[src];killbot=\ref[R]'>(<font color=red><i>Destroy</i></font>)</A>"
|
dat += "<A href='?src=\ref[src];killbot=\ref[R]'>(<i>Destroy</i>)</A>"
|
||||||
dat += "<BR>"
|
dat += "<BR>"
|
||||||
dat += "<A href='?src=\ref[src];screen=0'>(Return to Main Menu)</A><BR>"
|
dat += "<A href='?src=\ref[src];screen=0'>(Return to Main Menu)</A><BR>"
|
||||||
if(screen == 2)
|
if(screen == 2)
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
icon_state = "laptop"
|
icon_state = "laptop"
|
||||||
|
|
||||||
|
|
||||||
/datum/file/program/secure_data//TODO:SANITY
|
/datum/file/program/secure_data
|
||||||
name = "Security Records"
|
name = "Security Records"
|
||||||
desc = "Used to view and edit personnel's security records"
|
desc = "Used to view and edit personnel's security records"
|
||||||
active_state = "security"
|
active_state = "security"
|
||||||
|
|||||||
@@ -1,33 +1,23 @@
|
|||||||
|
|
||||||
/obj/machinery/computer3/station_alert
|
/obj/machinery/computer3/station_alert
|
||||||
|
default_prog = /datum/file/program/station_alert
|
||||||
|
spawn_parts = list(/obj/item/part/computer/storage/hdd,/obj/item/part/computer/networking/radio)
|
||||||
|
icon_state = "frame-eng"
|
||||||
|
|
||||||
|
|
||||||
|
/datum/file/program/station_alert
|
||||||
name = "Station Alert Console"
|
name = "Station Alert Console"
|
||||||
desc = "Used to access the station's automated alert system."
|
desc = "Used to access the station's automated alert system."
|
||||||
icon_state = "alert:0"
|
active_state = "alert:0"
|
||||||
circuit = "/obj/item/part/board/circuit/stationalert"
|
|
||||||
var/alarms = list("Fire"=list(), "Atmosphere"=list(), "Power"=list())
|
var/alarms = list("Fire"=list(), "Atmosphere"=list(), "Power"=list())
|
||||||
|
|
||||||
|
|
||||||
attack_ai(mob/user)
|
|
||||||
add_fingerprint(user)
|
|
||||||
if(stat & (BROKEN|NOPOWER))
|
|
||||||
return
|
|
||||||
interact(user)
|
|
||||||
return
|
|
||||||
|
|
||||||
|
|
||||||
attack_hand(mob/user)
|
|
||||||
add_fingerprint(user)
|
|
||||||
if(stat & (BROKEN|NOPOWER))
|
|
||||||
return
|
|
||||||
interact(user)
|
|
||||||
return
|
|
||||||
|
|
||||||
|
|
||||||
interact(mob/user)
|
interact(mob/user)
|
||||||
usr.set_machine(src)
|
usr.set_machine(src)
|
||||||
var/dat = ""
|
if(!interactable())
|
||||||
|
return
|
||||||
|
var/dat = "<HEAD><TITLE>Current Station Alerts</TITLE><META HTTP-EQUIV='Refresh' CONTENT='10'></HEAD><BODY>\n"
|
||||||
|
dat += "<A HREF='?src=\ref[user];mach_close=alerts'>Close</A><br><br>"
|
||||||
for (var/cat in src.alarms)
|
for (var/cat in src.alarms)
|
||||||
dat += text("<h2>[]</h2>", cat)
|
dat += text("<B>[]</B><BR>\n", cat)
|
||||||
var/list/L = src.alarms[cat]
|
var/list/L = src.alarms[cat]
|
||||||
if (L.len)
|
if (L.len)
|
||||||
for (var/alarm in L)
|
for (var/alarm in L)
|
||||||
@@ -36,7 +26,7 @@
|
|||||||
var/list/sources = alm[3]
|
var/list/sources = alm[3]
|
||||||
dat += "<NOBR>"
|
dat += "<NOBR>"
|
||||||
dat += "• "
|
dat += "• "
|
||||||
dat += "[format_text(A.name)]"
|
dat += "[A.name]"
|
||||||
if (sources.len > 1)
|
if (sources.len > 1)
|
||||||
dat += text(" - [] sources", sources.len)
|
dat += text(" - [] sources", sources.len)
|
||||||
dat += "</NOBR><BR>\n"
|
dat += "</NOBR><BR>\n"
|
||||||
@@ -45,11 +35,10 @@
|
|||||||
dat += "<BR>\n"
|
dat += "<BR>\n"
|
||||||
//user << browse(dat, "window=alerts")
|
//user << browse(dat, "window=alerts")
|
||||||
//onclose(user, "alerts")
|
//onclose(user, "alerts")
|
||||||
var/datum/browser/popup = new(user, "alerts", "Current Station Alerts")
|
|
||||||
popup.add_head_content("<META HTTP-EQUIV='Refresh' CONTENT='10'>")
|
|
||||||
popup.set_content(dat)
|
popup.set_content(dat)
|
||||||
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
popup.set_title_image(usr.browse_rsc_icon(computer.icon, computer.icon_state))
|
||||||
popup.open()
|
popup.open()
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
Topic(href, href_list)
|
Topic(href, href_list)
|
||||||
@@ -59,8 +48,6 @@
|
|||||||
|
|
||||||
|
|
||||||
proc/triggerAlarm(var/class, area/A, var/O, var/alarmsource)
|
proc/triggerAlarm(var/class, area/A, var/O, var/alarmsource)
|
||||||
if(stat & (BROKEN))
|
|
||||||
return
|
|
||||||
var/list/L = src.alarms[class]
|
var/list/L = src.alarms[class]
|
||||||
for (var/I in L)
|
for (var/I in L)
|
||||||
if (I == A.name)
|
if (I == A.name)
|
||||||
@@ -82,8 +69,6 @@
|
|||||||
|
|
||||||
|
|
||||||
proc/cancelAlarm(var/class, area/A as area, obj/origin)
|
proc/cancelAlarm(var/class, area/A as area, obj/origin)
|
||||||
if(stat & (BROKEN))
|
|
||||||
return
|
|
||||||
var/list/L = src.alarms[class]
|
var/list/L = src.alarms[class]
|
||||||
var/cleared = 0
|
var/cleared = 0
|
||||||
for (var/I in L)
|
for (var/I in L)
|
||||||
@@ -98,17 +83,15 @@
|
|||||||
return !cleared
|
return !cleared
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
process()
|
process()
|
||||||
if(stat & (BROKEN|NOPOWER))
|
|
||||||
icon_state = "atmos0"
|
|
||||||
return
|
|
||||||
var/active_alarms = 0
|
var/active_alarms = 0
|
||||||
for (var/cat in src.alarms)
|
for (var/cat in src.alarms)
|
||||||
var/list/L = src.alarms[cat]
|
var/list/L = src.alarms[cat]
|
||||||
if(L.len) active_alarms = 1
|
if(L.len) active_alarms = 1
|
||||||
if(active_alarms)
|
if(active_alarms)
|
||||||
icon_state = "alert:2"
|
active_state = "alert:2"
|
||||||
else
|
else
|
||||||
icon_state = "alert:0"
|
active_state = "alert:0"
|
||||||
..()
|
..()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
item_state = "laptop-inhand"
|
item_state = "laptop-inhand"
|
||||||
pixel_x = 2
|
pixel_x = 2
|
||||||
pixel_y = -3
|
pixel_y = -3
|
||||||
w_class = 4
|
w_class = 3
|
||||||
|
|
||||||
var/obj/machinery/computer3/laptop/stored_computer = null
|
var/obj/machinery/computer3/laptop/stored_computer = null
|
||||||
|
|
||||||
|
|||||||
@@ -281,7 +281,7 @@ Programs are a file that can be executed
|
|||||||
|
|
||||||
/datum/file/program/Genetics
|
/datum/file/program/Genetics
|
||||||
name = "Genetics Suite"
|
name = "Genetics Suite"
|
||||||
image = 'icons/nots/genetics.png'
|
image = 'icons/ntos/genetics.png'
|
||||||
desc = "A sophisticated software suite containing read-only genetics hardware specifications and a highly compressed genome databank."
|
desc = "A sophisticated software suite containing read-only genetics hardware specifications and a highly compressed genome databank."
|
||||||
active_state = "dna"
|
active_state = "dna"
|
||||||
volume = 8000
|
volume = 8000
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
Reference in New Issue
Block a user