mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-21 15:42:53 +00:00
98 lines
2.7 KiB
Plaintext
98 lines
2.7 KiB
Plaintext
/obj/machinery/computer/crew
|
|
New()
|
|
tracked = list()
|
|
..()
|
|
|
|
|
|
attack_ai(mob/user)
|
|
attack_hand(user)
|
|
interact(user)
|
|
|
|
|
|
attack_hand(mob/user)
|
|
add_fingerprint(user)
|
|
if(stat & (BROKEN|NOPOWER))
|
|
return
|
|
interact(user)
|
|
|
|
|
|
process()
|
|
return
|
|
|
|
|
|
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
|
|
|
|
|
|
Topic(href, href_list)
|
|
..()
|
|
if( href_list["close"] )
|
|
usr << browse(null, "window=crewcomp")
|
|
usr.machine = null
|
|
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=powcomp")
|
|
return
|
|
user.machine = src
|
|
src.scan()
|
|
var/t = "<TT><B>Crew Monitoring</B><HR>"
|
|
t += "<BR><A href='?src=\ref[src];update=1'>Refresh</A>"
|
|
t += "<BR><A href='?src=\ref[src];close=1'>Close</A>"
|
|
t += "<table><tr><td>Name</td><td>Vitals</td><td>Position</td></tr>"
|
|
for(var/obj/item/clothing/under/C in src.tracked)
|
|
if((C) && (C.has_sensor) && (C.loc) && (C.loc.z == 1))
|
|
if(istype(C.loc, /mob/living/carbon/human))
|
|
var/mob/living/carbon/human/H = C.loc
|
|
var/dam1 = round(H.getOxyLoss(),1)
|
|
var/dam2 = round(H.getToxLoss(),1)
|
|
var/dam3 = round(H.getFireLoss(),1)
|
|
var/dam4 = round(H.getBruteLoss(),1)
|
|
switch(C.sensor_mode)
|
|
if(1)
|
|
if(H.wear_id)
|
|
t += "<tr><td>[H.wear_id.name]</td><td>"
|
|
else
|
|
t += "<tr><td>Unknown:</td><td>"
|
|
t+= "[H.stat > 1 ? "<font color=red>Deceased</font>" : "Living"]</td><td>Not Available</td></tr>"
|
|
if(2)
|
|
if(H.wear_id)
|
|
t += "<tr><td>[H.wear_id.name]</td><td>"
|
|
else
|
|
t += "<tr><td>Unknown:</td><td>"
|
|
t += "[H.stat > 1 ? "<font color=red>Deceased</font>" : "Living"], [dam1] - [dam2] - [dam3] - [dam4]</td><td>Not Available</td></tr>"
|
|
if(3)
|
|
t += "<tr><td>[H.name]</td><td>[H.stat > 1 ? "<font color=red>Deceased</font>" : "Living"], [dam2] - [dam2] - [dam3] - [dam4]</td><td>[get_area(H)] ([H.x], [H.y])</td></tr>"
|
|
t += "</table>"
|
|
t += "</FONT></PRE></TT>"
|
|
user << browse(t, "window=crewcomp;size=500x800")
|
|
onclose(user, "crewcomp")
|
|
|
|
scan()
|
|
for(var/obj/item/clothing/under/C in world)
|
|
if((C.has_sensor) && (istype(C.loc, /mob/living/carbon/human)))
|
|
var/check = 0
|
|
for(var/O in src.tracked)
|
|
if(O == C)
|
|
check = 1
|
|
break
|
|
if(!check)
|
|
src.tracked.Add(C)
|
|
return 1 |