mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-03 05:51:56 +00:00
fixed lockdown computer.
Signed-off-by: caelaislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
@@ -127,8 +127,8 @@
|
||||
desc = "Used to control blast doors."
|
||||
icon_state = "lockdown"
|
||||
circuit = "/obj/item/weapon/circuitboard/lockdown"
|
||||
var/connected_doors[0][0]
|
||||
var/department //each department has a hardcoded list of possible door networks
|
||||
var/list/connected_doors
|
||||
var/department //each department has a hardcoded list of possible door networks
|
||||
|
||||
/obj/machinery/computer/crew
|
||||
name = "Crew monitoring computer"
|
||||
|
||||
@@ -7,14 +7,12 @@
|
||||
desc = "Used to control blast doors."
|
||||
icon_state = "lockdown"
|
||||
circuit = "/obj/item/weapon/circuitboard/lockdown"
|
||||
var/connectedDoorIds[0][0]
|
||||
var/department = ""
|
||||
var/connected_doors[0][0]
|
||||
var/connected_doors[0][0]
|
||||
var/connected_doors
|
||||
var/department*/
|
||||
|
||||
New()
|
||||
..()
|
||||
connected_doors = new/list()
|
||||
//only load blast doors for map-defined departments for the moment
|
||||
//door networks are hardcoded here.
|
||||
switch(department)
|
||||
@@ -47,11 +45,15 @@
|
||||
connected_doors.Add("Patient Room 2 Shutters")
|
||||
connected_doors.Add("Patient Room 3 Shutters")
|
||||
|
||||
for(var/net in connected_doors)
|
||||
connected_doors[net] = new/list()
|
||||
world << "network: [net]"
|
||||
|
||||
//loop through the world, grabbing all the relevant doors
|
||||
spawn(1)
|
||||
for(var/obj/machinery/door/poddoor/D in world)
|
||||
if(D.lockdownNetwork in connected_doors)
|
||||
var/list/L = connected_doors[D.lockdownNetwork]
|
||||
if(D.id in connected_doors)
|
||||
var/list/L = connected_doors[D.id]
|
||||
L.Add(D)
|
||||
|
||||
attack_ai(mob/user)
|
||||
@@ -61,19 +63,46 @@
|
||||
add_fingerprint(user)
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
return
|
||||
interact(user)
|
||||
|
||||
power_change()
|
||||
if(stat & BROKEN)
|
||||
icon_state = "broken"
|
||||
else
|
||||
if( powered() )
|
||||
icon_state = initial(icon_state)
|
||||
stat &= ~NOPOWER
|
||||
else
|
||||
spawn(rand(0, 15))
|
||||
src.icon_state = "c_unpowered"
|
||||
stat |= NOPOWER
|
||||
if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) )
|
||||
if (!istype(user, /mob/living/silicon))
|
||||
user.machine = null
|
||||
user << browse(null, "window=lockdown")
|
||||
return
|
||||
|
||||
var/t = "<B>Lockdown Control</B><BR>"
|
||||
t += "<A href='?src=\ref[src];close=1'>Close</A><hr>"
|
||||
t += "<table border=1>"
|
||||
var/empty = 1
|
||||
for(var/curNetId in connected_doors)
|
||||
var/list/L = connected_doors[curNetId]
|
||||
if(!L || L.len == 0)
|
||||
continue
|
||||
empty = 0
|
||||
t += "<tr>"
|
||||
t += "<td><b>" + curNetId + "<b></td>"
|
||||
t += "<td><b><a href='?src=\ref[src];open_net=[curNetId]'>Disable lockdown</a> / <a href='?src=\ref[src];close_net=[curNetId]'>Enable lockdown</a></b></td>"
|
||||
t += "</tr>"
|
||||
|
||||
for(var/obj/machinery/door/poddoor/D in connected_doors[curNetId])
|
||||
t += "<tr>"
|
||||
if(istype(D,/obj/machinery/door/poddoor/shutters))
|
||||
t += "<td> Shutter</td>"
|
||||
else
|
||||
t += "<td> Blast door</td>"
|
||||
if(D.density)
|
||||
//t += "<td><a href='?src=\ref[D];open=1'>Open</a> - Close</td>"
|
||||
t += "Closed"
|
||||
else
|
||||
//t += "<td>Open - <a href='?src=\ref[D];close=1'>Close</a></td>"
|
||||
t += "Open"
|
||||
t += "</tr>"
|
||||
t += "</table>"
|
||||
if(empty)
|
||||
t += "\red No networks connected.<br>"
|
||||
t += "<A href='?src=\ref[src];close=1'>Close</A><BR>"
|
||||
user << browse(t, "window=lockdown;size=500x800")
|
||||
onclose(user, "lockdown")
|
||||
|
||||
Topic(href, href_list)
|
||||
..()
|
||||
@@ -82,87 +111,40 @@
|
||||
usr.machine = null
|
||||
return
|
||||
|
||||
if( href_list["openDoor"] )
|
||||
var/obj/machinery/door/poddoor/D = href_list["door"]
|
||||
if(D.density)
|
||||
D.open()
|
||||
if( href_list["open_net"] )
|
||||
var/netTag = href_list["open_net"]
|
||||
for(var/obj/machinery/door/poddoor/D in connected_doors[netTag])
|
||||
if(D.density) //for some reason, there's no var saying whether the door is open or not >.>
|
||||
spawn(0)
|
||||
D.open()
|
||||
src.updateDialog()
|
||||
return
|
||||
|
||||
if( href_list["closeDoor"] )
|
||||
var/obj/machinery/door/poddoor/D = href_list["door"]
|
||||
if(!D.density)
|
||||
D.close()
|
||||
if( href_list["close_net"] )
|
||||
var/netTag = href_list["close_net"]
|
||||
for(var/obj/machinery/door/poddoor/D in connected_doors[netTag])
|
||||
if(!D.density)
|
||||
spawn(0)
|
||||
D.close()
|
||||
src.updateDialog()
|
||||
return
|
||||
|
||||
if( href_list["close_all"] )
|
||||
if(href_list["networkTag"] == "all")
|
||||
for(var/netTag in connected_doors)
|
||||
for(var/obj/machinery/door/poddoor/D in connected_doors[netTag])
|
||||
if(D.doorTag == href_list["doorTag"])
|
||||
if(!D.density)
|
||||
spawn(0)
|
||||
D.close()
|
||||
else if(href_list["networkTag"] in connected_doors)
|
||||
for(var/obj/machinery/door/poddoor/D in connected_doors[href_list["networkTag"]])
|
||||
if(D.doorTag == href_list["doorTag"])
|
||||
if(!D.density)
|
||||
spawn(0)
|
||||
D.close()
|
||||
for(var/netTag in connected_doors)
|
||||
for(var/obj/machinery/door/poddoor/D in connected_doors[netTag])
|
||||
if(!D.density)
|
||||
spawn(0)
|
||||
D.close()
|
||||
src.updateDialog()
|
||||
return
|
||||
|
||||
if( href_list["open_all"] )
|
||||
if(href_list["networkTag"] == "all")
|
||||
for(var/netTag in connected_doors)
|
||||
for(var/obj/machinery/door/poddoor/D in connected_doors[netTag])
|
||||
if(D.doorTag == href_list["doorTag"])
|
||||
if(D.density)
|
||||
spawn(0)
|
||||
D.open()
|
||||
else if(href_list["networkTag"] in connected_doors)
|
||||
for(var/obj/machinery/door/poddoor/D in connected_doors[href_list["networkTag"]])
|
||||
if(D.doorTag == href_list["doorTag"])
|
||||
if(D.density)
|
||||
spawn(0)
|
||||
D.open()
|
||||
for(var/netTag in connected_doors)
|
||||
for(var/obj/machinery/door/poddoor/D in connected_doors[netTag])
|
||||
if(D.density)
|
||||
spawn(0)
|
||||
D.open()
|
||||
src.updateDialog()
|
||||
return
|
||||
|
||||
if(href_list["update"])
|
||||
src.updateDialog()
|
||||
return
|
||||
|
||||
proc
|
||||
interact(mob/user)
|
||||
if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) )
|
||||
if (!istype(user, /mob/living/silicon))
|
||||
user.machine = null
|
||||
user << browse(null, "window=lockdown")
|
||||
return
|
||||
var/t = "<B>Lockdown Control</B><BR>"
|
||||
t += "<A href='?src=\ref[src];close=1'>Close</A><BR>"
|
||||
t += "<table border=1>"
|
||||
for(var/curNetId in connected_doors)
|
||||
var/list/L = connected_doors[curNetId]
|
||||
if(L.len == 0)
|
||||
continue
|
||||
t += "<tr>"
|
||||
t += "<td><b>" + curNetId + "<b></td>"
|
||||
t += "<td><b><a href='?src=\ref[src];open_all=1;networkTag=[curNetId]'>Open All</a> / <a href='?src=\ref[src];close_all=1;networkTag=[curNetId]'>Close All</a></b></td>"
|
||||
t += "</tr>"
|
||||
|
||||
for(var/obj/machinery/door/poddoor/D in connected_doors[curNetId])
|
||||
if(D.id == curNetId )
|
||||
t += "<tr>"
|
||||
t += "<td> [D.networkTag]</td>"
|
||||
if(D.density)
|
||||
t += "<td><a href='?src=\ref[D];open=1'>Open</a> - Close</td>"
|
||||
else
|
||||
t += "<td>Open - <a href='?src=\ref[D];close=1'>Close</a></td>"
|
||||
t += "</tr>"
|
||||
t += "</table>"
|
||||
t += "<A href='?src=\ref[src];close=1'>Close</A><BR>"
|
||||
user << browse(t, "window=lockdown;size=500x800")
|
||||
onclose(user, "lockdown")
|
||||
src.updateDialog()
|
||||
|
||||
@@ -3,10 +3,7 @@
|
||||
desc = "A type of powerful blast door."
|
||||
icon = 'rapid_pdoor.dmi'
|
||||
icon_state = "pdoor1"
|
||||
var/lockdownNetwork
|
||||
var/doorTag
|
||||
var/id = 1.0
|
||||
var/networkTag = ""
|
||||
var/id = ""
|
||||
|
||||
/obj/machinery/door/poddoor/Bumped(atom/AM)
|
||||
if(!density)
|
||||
|
||||
@@ -209,7 +209,7 @@
|
||||
if(src.vent_network == C.comp_id)
|
||||
compressors.Add(C)
|
||||
for(var/obj/machinery/door/poddoor/D in world)
|
||||
if(src.vent_network == D.networkTag)
|
||||
if(src.vent_network == D.id)
|
||||
doors.Add(D)
|
||||
|
||||
process()
|
||||
|
||||
Reference in New Issue
Block a user