mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
-Cleaned up computers. Fixes Issue 1195
-Made computers use idle_power_usage and active_power_usage that it used from the MC. I'm sure something is likely to break because I removed a lot of snowflake code. I tried to test all the computers with what I can but if you find something odd then please tell me. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5369 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -87,6 +87,8 @@ obj/machinery/computer/general_air_control
|
|||||||
var/datum/radio_frequency/radio_connection
|
var/datum/radio_frequency/radio_connection
|
||||||
|
|
||||||
attack_hand(mob/user)
|
attack_hand(mob/user)
|
||||||
|
if(..(user))
|
||||||
|
return
|
||||||
user << browse(return_text(),"window=computer")
|
user << browse(return_text(),"window=computer")
|
||||||
user.set_machine(src)
|
user.set_machine(src)
|
||||||
onclose(user, "computer")
|
onclose(user, "computer")
|
||||||
@@ -95,39 +97,6 @@ obj/machinery/computer/general_air_control
|
|||||||
..()
|
..()
|
||||||
src.updateDialog()
|
src.updateDialog()
|
||||||
|
|
||||||
attackby(I as obj, user as mob)
|
|
||||||
if(istype(I, /obj/item/weapon/screwdriver))
|
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
|
||||||
if(do_after(user, 20))
|
|
||||||
if (src.stat & BROKEN)
|
|
||||||
user << "\blue The broken glass falls out."
|
|
||||||
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
|
|
||||||
new /obj/item/weapon/shard( src.loc )
|
|
||||||
var/obj/item/weapon/circuitboard/air_management/M = new /obj/item/weapon/circuitboard/air_management( A )
|
|
||||||
for (var/obj/C in src)
|
|
||||||
C.loc = src.loc
|
|
||||||
M.frequency = src.frequency
|
|
||||||
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( src.loc )
|
|
||||||
var/obj/item/weapon/circuitboard/air_management/M = new /obj/item/weapon/circuitboard/air_management( A )
|
|
||||||
for (var/obj/C in src)
|
|
||||||
C.loc = src.loc
|
|
||||||
M.frequency = src.frequency
|
|
||||||
A.circuit = M
|
|
||||||
A.state = 4
|
|
||||||
A.icon_state = "4"
|
|
||||||
A.anchored = 1
|
|
||||||
del(src)
|
|
||||||
else
|
|
||||||
src.attack_hand(user)
|
|
||||||
return
|
|
||||||
|
|
||||||
receive_signal(datum/signal/signal)
|
receive_signal(datum/signal/signal)
|
||||||
if(!signal || signal.encryption) return
|
if(!signal || signal.encryption) return
|
||||||
|
|
||||||
@@ -294,38 +263,6 @@ Max Output Pressure: [output_pressure] kPa<BR>"}
|
|||||||
var/cutoff_temperature = 2000
|
var/cutoff_temperature = 2000
|
||||||
var/on_temperature = 1200
|
var/on_temperature = 1200
|
||||||
|
|
||||||
attackby(I as obj, user as mob)
|
|
||||||
if(istype(I, /obj/item/weapon/screwdriver))
|
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
|
||||||
if(do_after(user, 20))
|
|
||||||
if (src.stat & BROKEN)
|
|
||||||
user << "\blue The broken glass falls out."
|
|
||||||
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
|
|
||||||
new /obj/item/weapon/shard( src.loc )
|
|
||||||
var/obj/item/weapon/circuitboard/injector_control/M = new /obj/item/weapon/circuitboard/injector_control( A )
|
|
||||||
for (var/obj/C in src)
|
|
||||||
C.loc = src.loc
|
|
||||||
M.frequency = src.frequency
|
|
||||||
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( src.loc )
|
|
||||||
var/obj/item/weapon/circuitboard/injector_control/M = new /obj/item/weapon/circuitboard/injector_control( A )
|
|
||||||
for (var/obj/C in src)
|
|
||||||
C.loc = src.loc
|
|
||||||
M.frequency = src.frequency
|
|
||||||
A.circuit = M
|
|
||||||
A.state = 4
|
|
||||||
A.icon_state = "4"
|
|
||||||
A.anchored = 1
|
|
||||||
del(src)
|
|
||||||
else
|
|
||||||
src.attack_hand(user)
|
|
||||||
return
|
|
||||||
|
|
||||||
process()
|
process()
|
||||||
if(automation)
|
if(automation)
|
||||||
|
|||||||
@@ -25,6 +25,8 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
attack_hand(var/mob/user as mob)
|
attack_hand(var/mob/user as mob)
|
||||||
|
if(..(user))
|
||||||
|
return
|
||||||
src.add_fingerprint(usr)
|
src.add_fingerprint(usr)
|
||||||
var/dat = {"
|
var/dat = {"
|
||||||
<html>
|
<html>
|
||||||
|
|||||||
@@ -198,6 +198,8 @@
|
|||||||
|
|
||||||
/obj/machinery/computer/HolodeckControl/process()
|
/obj/machinery/computer/HolodeckControl/process()
|
||||||
|
|
||||||
|
if(!..())
|
||||||
|
return
|
||||||
if(active)
|
if(active)
|
||||||
|
|
||||||
if(!checkInteg(linkedholodeck))
|
if(!checkInteg(linkedholodeck))
|
||||||
|
|||||||
@@ -76,7 +76,5 @@
|
|||||||
|
|
||||||
|
|
||||||
/obj/machinery/computer/operating/process()
|
/obj/machinery/computer/operating/process()
|
||||||
if(!(stat & (NOPOWER|BROKEN)) )
|
if(..())
|
||||||
use_power(500)
|
src.updateDialog()
|
||||||
|
|
||||||
src.updateDialog()
|
|
||||||
|
|||||||
@@ -108,12 +108,10 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
/obj/machinery/computer/aifixer/process()
|
/obj/machinery/computer/aifixer/process()
|
||||||
if(stat & (NOPOWER|BROKEN))
|
if(..())
|
||||||
|
src.updateDialog()
|
||||||
return
|
return
|
||||||
|
|
||||||
src.updateDialog()
|
|
||||||
return
|
|
||||||
|
|
||||||
/obj/machinery/computer/aifixer/Topic(href, href_list)
|
/obj/machinery/computer/aifixer/Topic(href, href_list)
|
||||||
if(..())
|
if(..())
|
||||||
return
|
return
|
||||||
@@ -144,3 +142,19 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
/obj/machinery/computer/aifixer/update_icon()
|
||||||
|
..()
|
||||||
|
// Broken / Unpowered
|
||||||
|
if((stat & BROKEN) || (stat & NOPOWER))
|
||||||
|
overlays = null
|
||||||
|
|
||||||
|
// Working / Powered
|
||||||
|
else
|
||||||
|
if (occupant)
|
||||||
|
switch (occupant.stat)
|
||||||
|
if (0)
|
||||||
|
overlays += image('icons/obj/computer.dmi', "ai-fixer-full")
|
||||||
|
if (2)
|
||||||
|
overlays += image('icons/obj/computer.dmi', "ai-fixer-404")
|
||||||
|
else
|
||||||
|
overlays += image('icons/obj/computer.dmi', "ai-fixer-empty")
|
||||||
|
|||||||
@@ -219,18 +219,6 @@
|
|||||||
src.blocked = 0
|
src.blocked = 0
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/machinery/computer/arcade/power_change()
|
|
||||||
|
|
||||||
if(stat & BROKEN)
|
|
||||||
icon_state = "arcadeb"
|
|
||||||
else
|
|
||||||
if( powered() )
|
|
||||||
icon_state = initial(icon_state)
|
|
||||||
stat &= ~NOPOWER
|
|
||||||
else
|
|
||||||
spawn(rand(0, 15))
|
|
||||||
src.icon_state = "arcade0"
|
|
||||||
stat |= NOPOWER
|
|
||||||
|
|
||||||
/obj/machinery/computer/arcade/attackby(I as obj, user as mob)
|
/obj/machinery/computer/arcade/attackby(I as obj, user as mob)
|
||||||
if(istype(I, /obj/item/weapon/card/emag) && !emagged)
|
if(istype(I, /obj/item/weapon/card/emag) && !emagged)
|
||||||
|
|||||||
@@ -12,71 +12,77 @@
|
|||||||
var/datum/radio_frequency/radio_connection
|
var/datum/radio_frequency/radio_connection
|
||||||
|
|
||||||
|
|
||||||
initialize()
|
/obj/machinery/computer/atmos_alert/initialize()
|
||||||
set_frequency(receive_frequency)
|
..()
|
||||||
|
set_frequency(receive_frequency)
|
||||||
|
|
||||||
receive_signal(datum/signal/signal)
|
/obj/machinery/computer/atmos_alert/receive_signal(datum/signal/signal)
|
||||||
if(!signal || signal.encryption) return
|
if(!signal || signal.encryption) return
|
||||||
|
|
||||||
var/zone = signal.data["zone"]
|
var/zone = signal.data["zone"]
|
||||||
var/severity = signal.data["alert"]
|
var/severity = signal.data["alert"]
|
||||||
|
|
||||||
if(!zone || !severity) return
|
if(!zone || !severity) return
|
||||||
|
|
||||||
minor_alarms -= zone
|
minor_alarms -= zone
|
||||||
priority_alarms -= zone
|
priority_alarms -= zone
|
||||||
if(severity=="severe")
|
if(severity=="severe")
|
||||||
priority_alarms += zone
|
priority_alarms += zone
|
||||||
else if (severity=="minor")
|
else if (severity=="minor")
|
||||||
minor_alarms += zone
|
minor_alarms += zone
|
||||||
update_icon()
|
update_icon()
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
/obj/machinery/computer/atmos_alert/proc/set_frequency(new_frequency)
|
||||||
|
radio_controller.remove_object(src, receive_frequency)
|
||||||
|
receive_frequency = new_frequency
|
||||||
|
radio_connection = radio_controller.add_object(src, receive_frequency, RADIO_ATMOSIA)
|
||||||
|
|
||||||
|
|
||||||
|
/obj/machinery/computer/atmos_alert/attack_hand(mob/user)
|
||||||
|
if(..(user))
|
||||||
return
|
return
|
||||||
|
user << browse(return_text(),"window=computer")
|
||||||
|
user.set_machine(src)
|
||||||
|
onclose(user, "computer")
|
||||||
|
|
||||||
|
/obj/machinery/computer/atmos_alert/process()
|
||||||
proc/set_frequency(new_frequency)
|
if(..())
|
||||||
radio_controller.remove_object(src, receive_frequency)
|
|
||||||
receive_frequency = new_frequency
|
|
||||||
radio_connection = radio_controller.add_object(src, receive_frequency, RADIO_ATMOSIA)
|
|
||||||
|
|
||||||
|
|
||||||
attack_hand(mob/user)
|
|
||||||
user << browse(return_text(),"window=computer")
|
|
||||||
user.set_machine(src)
|
|
||||||
onclose(user, "computer")
|
|
||||||
|
|
||||||
process()
|
|
||||||
..()
|
|
||||||
src.updateDialog()
|
src.updateDialog()
|
||||||
|
|
||||||
update_icon()
|
/obj/machinery/computer/atmos_alert/update_icon()
|
||||||
if(priority_alarms.len)
|
..()
|
||||||
icon_state = "alert:2"
|
if(stat & (NOPOWER|BROKEN))
|
||||||
|
|
||||||
else if(minor_alarms.len)
|
|
||||||
icon_state = "alert:1"
|
|
||||||
|
|
||||||
else
|
|
||||||
icon_state = "alert:0"
|
|
||||||
return
|
return
|
||||||
|
if(priority_alarms.len)
|
||||||
|
icon_state = "alert:2"
|
||||||
|
|
||||||
|
else if(minor_alarms.len)
|
||||||
|
icon_state = "alert:1"
|
||||||
|
|
||||||
|
else
|
||||||
|
icon_state = "alert:0"
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
proc/return_text()
|
/obj/machinery/computer/atmos_alert/proc/return_text()
|
||||||
var/priority_text
|
var/priority_text
|
||||||
var/minor_text
|
var/minor_text
|
||||||
|
|
||||||
if(priority_alarms.len)
|
if(priority_alarms.len)
|
||||||
for(var/zone in priority_alarms)
|
for(var/zone in priority_alarms)
|
||||||
priority_text += "<FONT color='red'><B>[zone]</B></FONT> <A href='?src=\ref[src];priority_clear=[ckey(zone)]'>X</A><BR>"
|
priority_text += "<FONT color='red'><B>[zone]</B></FONT> <A href='?src=\ref[src];priority_clear=[ckey(zone)]'>X</A><BR>"
|
||||||
else
|
else
|
||||||
priority_text = "No priority alerts detected.<BR>"
|
priority_text = "No priority alerts detected.<BR>"
|
||||||
|
|
||||||
if(minor_alarms.len)
|
if(minor_alarms.len)
|
||||||
for(var/zone in minor_alarms)
|
for(var/zone in minor_alarms)
|
||||||
minor_text += "<B>[zone]</B> <A href='?src=\ref[src];minor_clear=[ckey(zone)]'>X</A><BR>"
|
minor_text += "<B>[zone]</B> <A href='?src=\ref[src];minor_clear=[ckey(zone)]'>X</A><BR>"
|
||||||
else
|
else
|
||||||
minor_text = "No minor alerts detected.<BR>"
|
minor_text = "No minor alerts detected.<BR>"
|
||||||
|
|
||||||
var/output = {"<B>[name]</B><HR>
|
var/output = {"<B>[name]</B><HR>
|
||||||
<B>Priority Alerts:</B><BR>
|
<B>Priority Alerts:</B><BR>
|
||||||
[priority_text]
|
[priority_text]
|
||||||
<BR>
|
<BR>
|
||||||
@@ -85,46 +91,23 @@
|
|||||||
[minor_text]
|
[minor_text]
|
||||||
<BR>"}
|
<BR>"}
|
||||||
|
|
||||||
return output
|
return output
|
||||||
|
|
||||||
|
|
||||||
Topic(href, href_list)
|
/obj/machinery/computer/atmos_alert/Topic(href, href_list)
|
||||||
if(..())
|
if(..())
|
||||||
return
|
|
||||||
|
|
||||||
if(href_list["priority_clear"])
|
|
||||||
var/removing_zone = href_list["priority_clear"]
|
|
||||||
for(var/zone in priority_alarms)
|
|
||||||
if(ckey(zone) == removing_zone)
|
|
||||||
priority_alarms -= zone
|
|
||||||
|
|
||||||
if(href_list["minor_clear"])
|
|
||||||
var/removing_zone = href_list["minor_clear"]
|
|
||||||
for(var/zone in minor_alarms)
|
|
||||||
if(ckey(zone) == removing_zone)
|
|
||||||
minor_alarms -= zone
|
|
||||||
update_icon()
|
|
||||||
return
|
return
|
||||||
|
|
||||||
attackby(I as obj, user as mob)
|
if(href_list["priority_clear"])
|
||||||
if(istype(I, /obj/item/weapon/screwdriver))
|
var/removing_zone = href_list["priority_clear"]
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
for(var/zone in priority_alarms)
|
||||||
if(do_after(user, 20))
|
if(ckey(zone) == removing_zone)
|
||||||
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
|
priority_alarms -= zone
|
||||||
var/obj/item/weapon/circuitboard/atmos_alert/M = new /obj/item/weapon/circuitboard/atmos_alert( A )
|
|
||||||
for (var/obj/C in src)
|
|
||||||
C.loc = src.loc
|
|
||||||
A.circuit = M
|
|
||||||
A.anchored = 1
|
|
||||||
|
|
||||||
if (src.stat & BROKEN)
|
if(href_list["minor_clear"])
|
||||||
user << "\blue The broken glass falls out."
|
var/removing_zone = href_list["minor_clear"]
|
||||||
new /obj/item/weapon/shard( src.loc )
|
for(var/zone in minor_alarms)
|
||||||
A.state = 3
|
if(ckey(zone) == removing_zone)
|
||||||
A.icon_state = "3"
|
minor_alarms -= zone
|
||||||
else
|
update_icon()
|
||||||
user << "\blue You disconnect the monitor."
|
return
|
||||||
A.state = 4
|
|
||||||
A.icon_state = "4"
|
|
||||||
|
|
||||||
del(src)
|
|
||||||
|
|||||||
@@ -88,6 +88,12 @@
|
|||||||
density = 0
|
density = 0
|
||||||
circuit = null
|
circuit = null
|
||||||
|
|
||||||
|
/obj/machinery/computer/security/telescreen/update_icon()
|
||||||
|
icon_state = initial(icon_state)
|
||||||
|
if(stat & BROKEN)
|
||||||
|
icon_state += "b"
|
||||||
|
return
|
||||||
|
|
||||||
/obj/machinery/computer/security/telescreen/entertainment
|
/obj/machinery/computer/security/telescreen/entertainment
|
||||||
name = "entertainment monitor"
|
name = "entertainment monitor"
|
||||||
desc = "Damn, they better have /tg/thechannel on these things."
|
desc = "Damn, they better have /tg/thechannel on these things."
|
||||||
|
|||||||
@@ -454,15 +454,14 @@
|
|||||||
break
|
break
|
||||||
return selected_record
|
return selected_record
|
||||||
|
|
||||||
/obj/machinery/computer/cloning/power_change()
|
/obj/machinery/computer/cloning/update_icon()
|
||||||
|
|
||||||
if(stat & BROKEN)
|
if(stat & BROKEN)
|
||||||
icon_state = "commb"
|
icon_state = "commb"
|
||||||
else
|
else
|
||||||
if( powered() )
|
if(stat & NOPOWER)
|
||||||
icon_state = initial(icon_state)
|
src.icon_state = "c_unpowered"
|
||||||
stat &= ~NOPOWER
|
stat |= NOPOWER
|
||||||
else
|
else
|
||||||
spawn(rand(0, 15))
|
icon_state = initial(icon_state)
|
||||||
src.icon_state = "c_unpowered"
|
stat &= ~NOPOWER
|
||||||
stat |= NOPOWER
|
|
||||||
@@ -35,9 +35,9 @@
|
|||||||
|
|
||||||
|
|
||||||
/obj/machinery/computer/communications/process()
|
/obj/machinery/computer/communications/process()
|
||||||
..()
|
if(..())
|
||||||
if(state != STATE_STATUSDISPLAY)
|
if(state != STATE_STATUSDISPLAY)
|
||||||
src.updateDialog()
|
src.updateDialog()
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/computer/communications/Topic(href, href_list)
|
/obj/machinery/computer/communications/Topic(href, href_list)
|
||||||
|
|||||||
@@ -3,131 +3,122 @@
|
|||||||
icon = 'icons/obj/computer.dmi'
|
icon = 'icons/obj/computer.dmi'
|
||||||
density = 1
|
density = 1
|
||||||
anchored = 1.0
|
anchored = 1.0
|
||||||
var/obj/item/weapon/circuitboard/circuit = null //if circuit==null, computer can't disassemble
|
use_power = 1
|
||||||
|
idle_power_usage = 300
|
||||||
|
active_power_usage = 300
|
||||||
|
var/obj/item/weapon/circuitboard/circuit = null //if circuit==null, computer can't disassembly
|
||||||
|
var/processing = 0
|
||||||
|
|
||||||
|
/obj/machinery/computer/New()
|
||||||
|
..()
|
||||||
|
if(ticker)
|
||||||
|
initialize()
|
||||||
|
|
||||||
|
|
||||||
New()
|
/obj/machinery/computer/initialize()
|
||||||
..()
|
power_change()
|
||||||
spawn(2)
|
|
||||||
power_change()
|
/obj/machinery/computer/process()
|
||||||
|
if(stat & (NOPOWER|BROKEN))
|
||||||
|
return 0
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/machinery/computer/meteorhit(var/obj/O as obj)
|
||||||
|
for(var/x in verbs)
|
||||||
|
verbs -= x
|
||||||
|
set_broken()
|
||||||
|
var/datum/effect/effect/system/harmless_smoke_spread/smoke = new /datum/effect/effect/system/harmless_smoke_spread()
|
||||||
|
smoke.set_up(5, 0, src)
|
||||||
|
smoke.start()
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
meteorhit(var/obj/O as obj)
|
/obj/machinery/computer/emp_act(severity)
|
||||||
|
if(prob(20/severity)) set_broken()
|
||||||
|
..()
|
||||||
|
|
||||||
|
|
||||||
|
/obj/machinery/computer/ex_act(severity)
|
||||||
|
switch(severity)
|
||||||
|
if(1.0)
|
||||||
|
del(src)
|
||||||
|
return
|
||||||
|
if(2.0)
|
||||||
|
if (prob(25))
|
||||||
|
del(src)
|
||||||
|
return
|
||||||
|
if (prob(50))
|
||||||
|
for(var/x in verbs)
|
||||||
|
verbs -= x
|
||||||
|
set_broken()
|
||||||
|
if(3.0)
|
||||||
|
if (prob(25))
|
||||||
|
for(var/x in verbs)
|
||||||
|
verbs -= x
|
||||||
|
set_broken()
|
||||||
|
else
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/machinery/computer/bullet_act(var/obj/item/projectile/Proj)
|
||||||
|
if(prob(Proj.damage))
|
||||||
|
set_broken()
|
||||||
|
..()
|
||||||
|
|
||||||
|
|
||||||
|
/obj/machinery/computer/blob_act()
|
||||||
|
if (prob(75))
|
||||||
for(var/x in verbs)
|
for(var/x in verbs)
|
||||||
verbs -= x
|
verbs -= x
|
||||||
set_broken()
|
set_broken()
|
||||||
var/datum/effect/effect/system/harmless_smoke_spread/smoke = new /datum/effect/effect/system/harmless_smoke_spread()
|
density = 0
|
||||||
smoke.set_up(5, 0, src)
|
|
||||||
smoke.start()
|
|
||||||
return
|
|
||||||
|
|
||||||
|
/obj/machinery/computer/update_icon()
|
||||||
emp_act(severity)
|
..()
|
||||||
if(prob(20/severity)) set_broken()
|
icon_state = initial(icon_state)
|
||||||
..()
|
// Broken
|
||||||
|
if(stat & BROKEN)
|
||||||
|
|
||||||
ex_act(severity)
|
|
||||||
switch(severity)
|
|
||||||
if(1.0)
|
|
||||||
del(src)
|
|
||||||
return
|
|
||||||
if(2.0)
|
|
||||||
if (prob(25))
|
|
||||||
del(src)
|
|
||||||
return
|
|
||||||
if (prob(50))
|
|
||||||
for(var/x in verbs)
|
|
||||||
verbs -= x
|
|
||||||
set_broken()
|
|
||||||
if(3.0)
|
|
||||||
if (prob(25))
|
|
||||||
for(var/x in verbs)
|
|
||||||
verbs -= x
|
|
||||||
set_broken()
|
|
||||||
else
|
|
||||||
return
|
|
||||||
|
|
||||||
bullet_act(var/obj/item/projectile/Proj)
|
|
||||||
if(prob(Proj.damage))
|
|
||||||
set_broken()
|
|
||||||
..()
|
|
||||||
|
|
||||||
|
|
||||||
blob_act()
|
|
||||||
if (prob(75))
|
|
||||||
for(var/x in verbs)
|
|
||||||
verbs -= x
|
|
||||||
set_broken()
|
|
||||||
density = 0
|
|
||||||
|
|
||||||
|
|
||||||
power_change()
|
|
||||||
if(!istype(src,/obj/machinery/computer/security/telescreen))
|
|
||||||
if(stat & BROKEN)
|
|
||||||
icon_state = initial(icon_state)
|
|
||||||
icon_state += "b"
|
|
||||||
if (istype(src,/obj/machinery/computer/aifixer))
|
|
||||||
overlays = null
|
|
||||||
|
|
||||||
else if(powered())
|
|
||||||
icon_state = initial(icon_state)
|
|
||||||
stat &= ~NOPOWER
|
|
||||||
if (istype(src,/obj/machinery/computer/aifixer))
|
|
||||||
var/obj/machinery/computer/aifixer/O = src
|
|
||||||
if (O.occupant)
|
|
||||||
switch (O.occupant.stat)
|
|
||||||
if (0)
|
|
||||||
overlays += image('icons/obj/computer.dmi', "ai-fixer-full")
|
|
||||||
if (2)
|
|
||||||
overlays += image('icons/obj/computer.dmi', "ai-fixer-404")
|
|
||||||
else
|
|
||||||
overlays += image('icons/obj/computer.dmi', "ai-fixer-empty")
|
|
||||||
else
|
|
||||||
spawn(rand(0, 15))
|
|
||||||
//icon_state = "c_unpowered"
|
|
||||||
icon_state = initial(icon_state)
|
|
||||||
icon_state += "0"
|
|
||||||
stat |= NOPOWER
|
|
||||||
if (istype(src,/obj/machinery/computer/aifixer))
|
|
||||||
overlays = null
|
|
||||||
|
|
||||||
|
|
||||||
process()
|
|
||||||
if(stat & (NOPOWER|BROKEN))
|
|
||||||
return
|
|
||||||
use_power(250)
|
|
||||||
|
|
||||||
|
|
||||||
proc/set_broken()
|
|
||||||
icon_state = initial(icon_state)
|
|
||||||
icon_state += "b"
|
icon_state += "b"
|
||||||
stat |= BROKEN
|
|
||||||
|
// Powered
|
||||||
|
else if(stat & NOPOWER)
|
||||||
|
icon_state = initial(icon_state)
|
||||||
|
icon_state += "0"
|
||||||
|
|
||||||
|
|
||||||
attackby(I as obj, user as mob)
|
|
||||||
if(istype(I, /obj/item/weapon/screwdriver) && circuit)
|
/obj/machinery/computer/power_change()
|
||||||
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
..()
|
||||||
if(do_after(user, 20))
|
update_icon()
|
||||||
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
|
|
||||||
var/obj/item/weapon/circuitboard/M = new circuit( A )
|
|
||||||
A.circuit = M
|
/obj/machinery/computer/proc/set_broken()
|
||||||
A.anchored = 1
|
stat |= BROKEN
|
||||||
for (var/obj/C in src)
|
update_icon()
|
||||||
C.loc = src.loc
|
|
||||||
if (src.stat & BROKEN)
|
|
||||||
user << "\blue The broken glass falls out."
|
/obj/machinery/computer/attackby(I as obj, user as mob)
|
||||||
new /obj/item/weapon/shard( src.loc )
|
if(istype(I, /obj/item/weapon/screwdriver) && circuit)
|
||||||
A.state = 3
|
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
|
||||||
A.icon_state = "3"
|
if(do_after(user, 20))
|
||||||
else
|
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
|
||||||
user << "\blue You disconnect the monitor."
|
var/obj/item/weapon/circuitboard/M = new circuit( A )
|
||||||
A.state = 4
|
A.circuit = M
|
||||||
A.icon_state = "4"
|
A.anchored = 1
|
||||||
del(src)
|
for (var/obj/C in src)
|
||||||
else
|
C.loc = src.loc
|
||||||
src.attack_hand(user)
|
if (src.stat & BROKEN)
|
||||||
return
|
user << "\blue The broken glass falls out."
|
||||||
|
new /obj/item/weapon/shard( src.loc )
|
||||||
|
A.state = 3
|
||||||
|
A.icon_state = "3"
|
||||||
|
else
|
||||||
|
user << "\blue You disconnect the monitor."
|
||||||
|
A.state = 4
|
||||||
|
A.icon_state = "4"
|
||||||
|
del(src)
|
||||||
|
else
|
||||||
|
src.attack_hand(user)
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,110 +9,111 @@
|
|||||||
var/list/tracked = list( )
|
var/list/tracked = list( )
|
||||||
|
|
||||||
|
|
||||||
New()
|
/obj/machinery/computer/crew/New()
|
||||||
tracked = list()
|
tracked = list()
|
||||||
..()
|
..()
|
||||||
|
|
||||||
|
|
||||||
attack_ai(mob/user)
|
/obj/machinery/computer/crew/attack_ai(mob/user)
|
||||||
attack_hand(user)
|
attack_hand(user)
|
||||||
interact(user)
|
interact(user)
|
||||||
|
|
||||||
|
|
||||||
attack_hand(mob/user)
|
/obj/machinery/computer/crew/attack_hand(mob/user)
|
||||||
add_fingerprint(user)
|
add_fingerprint(user)
|
||||||
if(stat & (BROKEN|NOPOWER))
|
if(stat & (BROKEN|NOPOWER))
|
||||||
return
|
return
|
||||||
interact(user)
|
interact(user)
|
||||||
|
|
||||||
|
|
||||||
power_change()
|
/obj/machinery/computer/crew/update_icon()
|
||||||
if(stat & BROKEN)
|
|
||||||
icon_state = "broken"
|
if(stat & BROKEN)
|
||||||
|
icon_state = "broken"
|
||||||
|
else
|
||||||
|
if(stat & NOPOWER)
|
||||||
|
src.icon_state = "c_unpowered"
|
||||||
|
stat |= NOPOWER
|
||||||
else
|
else
|
||||||
if( powered() )
|
icon_state = initial(icon_state)
|
||||||
icon_state = initial(icon_state)
|
stat &= ~NOPOWER
|
||||||
stat &= ~NOPOWER
|
|
||||||
else
|
|
||||||
spawn(rand(0, 15))
|
|
||||||
src.icon_state = "c_unpowered"
|
|
||||||
stat |= NOPOWER
|
|
||||||
|
|
||||||
|
|
||||||
Topic(href, href_list)
|
/obj/machinery/computer/crew/Topic(href, href_list)
|
||||||
if(..()) return
|
if(..()) return
|
||||||
if (src.z > 6)
|
if (src.z > 6)
|
||||||
usr << "\red <b>Unable to establish a connection</b>: \black You're too far away from the station!"
|
usr << "\red <b>Unable to establish a connection</b>: \black You're too far away from the station!"
|
||||||
return
|
return
|
||||||
if( href_list["close"] )
|
if( href_list["close"] )
|
||||||
usr << browse(null, "window=crewcomp")
|
usr << browse(null, "window=crewcomp")
|
||||||
usr.unset_machine()
|
usr.unset_machine()
|
||||||
return
|
return
|
||||||
if(href_list["update"])
|
if(href_list["update"])
|
||||||
src.updateDialog()
|
src.updateDialog()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
interact(mob/user)
|
/obj/machinery/computer/crew/interact(mob/user)
|
||||||
if( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) )
|
if(stat & (BROKEN|NOPOWER))
|
||||||
if(!istype(user, /mob/living/silicon))
|
return
|
||||||
user.unset_machine()
|
if(!istype(user, /mob/living/silicon) && get_dist(src, user) > 1)
|
||||||
user << browse(null, "window=powcomp")
|
user.unset_machine()
|
||||||
return
|
user << browse(null, "window=powcomp")
|
||||||
user.set_machine(src)
|
return
|
||||||
src.scan()
|
user.set_machine(src)
|
||||||
var/t = "<TT><B>Crew Monitoring</B><HR>"
|
src.scan()
|
||||||
t += "<BR><A href='?src=\ref[src];update=1'>Refresh</A> "
|
var/t = "<TT><B>Crew Monitoring</B><HR>"
|
||||||
t += "<A href='?src=\ref[src];close=1'>Close</A><BR>"
|
t += "<BR><A href='?src=\ref[src];update=1'>Refresh</A> "
|
||||||
t += "<table><tr><td width='40%'>Name</td><td width='20%'>Vitals</td><td width='40%'>Position</td></tr>"
|
t += "<A href='?src=\ref[src];close=1'>Close</A><BR>"
|
||||||
var/list/logs = list()
|
t += "<table><tr><td width='40%'>Name</td><td width='20%'>Vitals</td><td width='40%'>Position</td></tr>"
|
||||||
for(var/obj/item/clothing/under/C in src.tracked)
|
var/list/logs = list()
|
||||||
var/log = ""
|
for(var/obj/item/clothing/under/C in src.tracked)
|
||||||
var/turf/pos = get_turf(C)
|
var/log = ""
|
||||||
if((C) && (C.has_sensor) && (pos) && (pos.z == src.z) && C.sensor_mode)
|
var/turf/pos = get_turf(C)
|
||||||
if(istype(C.loc, /mob/living/carbon/human))
|
if((C) && (C.has_sensor) && (pos) && (pos.z == src.z) && C.sensor_mode)
|
||||||
|
if(istype(C.loc, /mob/living/carbon/human))
|
||||||
|
|
||||||
var/mob/living/carbon/human/H = C.loc
|
var/mob/living/carbon/human/H = C.loc
|
||||||
|
|
||||||
var/dam1 = round(H.getOxyLoss(),1)
|
var/dam1 = round(H.getOxyLoss(),1)
|
||||||
var/dam2 = round(H.getToxLoss(),1)
|
var/dam2 = round(H.getToxLoss(),1)
|
||||||
var/dam3 = round(H.getFireLoss(),1)
|
var/dam3 = round(H.getFireLoss(),1)
|
||||||
var/dam4 = round(H.getBruteLoss(),1)
|
var/dam4 = round(H.getBruteLoss(),1)
|
||||||
|
|
||||||
var/life_status = "[H.stat > 1 ? "<font color=red>Deceased</font>" : "Living"]"
|
var/life_status = "[H.stat > 1 ? "<font color=red>Deceased</font>" : "Living"]"
|
||||||
var/damage_report = "(<font color='blue'>[dam1]</font>/<font color='green'>[dam2]</font>/<font color='orange'>[dam3]</font>/<font color='red'>[dam4]</font>)"
|
var/damage_report = "(<font color='blue'>[dam1]</font>/<font color='green'>[dam2]</font>/<font color='orange'>[dam3]</font>/<font color='red'>[dam4]</font>)"
|
||||||
|
|
||||||
if(H.wear_id)
|
if(H.wear_id)
|
||||||
log += "<tr><td width='40%'>[H.wear_id.name]</td>"
|
log += "<tr><td width='40%'>[H.wear_id.name]</td>"
|
||||||
else
|
else
|
||||||
log += "<tr><td width='40%'>Unknown</td>"
|
log += "<tr><td width='40%'>Unknown</td>"
|
||||||
|
|
||||||
switch(C.sensor_mode)
|
switch(C.sensor_mode)
|
||||||
if(1)
|
if(1)
|
||||||
log += "<td width='15%'>[life_status]</td><td width='40%'>Not Available</td></tr>"
|
log += "<td width='15%'>[life_status]</td><td width='40%'>Not Available</td></tr>"
|
||||||
if(2)
|
if(2)
|
||||||
log += "<td width='20%'>[life_status] [damage_report]</td><td width='40%'>Not Available</td></tr>"
|
log += "<td width='20%'>[life_status] [damage_report]</td><td width='40%'>Not Available</td></tr>"
|
||||||
if(3)
|
if(3)
|
||||||
var/area/player_area = get_area(H)
|
var/area/player_area = get_area(H)
|
||||||
log += "<td width='20%'>[life_status] [damage_report]</td><td width='40%'>[player_area.name] ([pos.x], [pos.y])</td></tr>"
|
log += "<td width='20%'>[life_status] [damage_report]</td><td width='40%'>[player_area.name] ([pos.x], [pos.y])</td></tr>"
|
||||||
logs += log
|
logs += log
|
||||||
logs = sortList(logs)
|
logs = sortList(logs)
|
||||||
for(var/log in logs)
|
for(var/log in logs)
|
||||||
t += log
|
t += log
|
||||||
t += "</table>"
|
t += "</table>"
|
||||||
t += "</FONT></PRE></TT>"
|
t += "</FONT></PRE></TT>"
|
||||||
user << browse(t, "window=crewcomp;size=900x600")
|
user << browse(t, "window=crewcomp;size=900x600")
|
||||||
onclose(user, "crewcomp")
|
onclose(user, "crewcomp")
|
||||||
|
|
||||||
|
|
||||||
proc/scan()
|
/obj/machinery/computer/crew/proc/scan()
|
||||||
for(var/obj/item/clothing/under/C in world)
|
for(var/obj/item/clothing/under/C in world)
|
||||||
if((C.has_sensor) && (istype(C.loc, /mob/living/carbon/human)))
|
if((C.has_sensor) && (istype(C.loc, /mob/living/carbon/human)))
|
||||||
var/check = 0
|
var/check = 0
|
||||||
for(var/O in src.tracked)
|
for(var/O in src.tracked)
|
||||||
if(O == C)
|
if(O == C)
|
||||||
check = 1
|
check = 1
|
||||||
break
|
break
|
||||||
if(!check)
|
if(!check)
|
||||||
src.tracked.Add(C)
|
src.tracked.Add(C)
|
||||||
return 1
|
return 1
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
..()
|
..()
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/machinery/computer/message_monitor/power_change()
|
/obj/machinery/computer/message_monitor/update_icon()
|
||||||
..()
|
..()
|
||||||
if(stat & (NOPOWER|BROKEN))
|
if(stat & (NOPOWER|BROKEN))
|
||||||
return
|
return
|
||||||
@@ -74,7 +74,7 @@
|
|||||||
else
|
else
|
||||||
icon_state = normal_icon
|
icon_state = normal_icon
|
||||||
|
|
||||||
/obj/machinery/computer/message_monitor/process()
|
/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.
|
//Is the server isn't linked to a server, and there's a server available, default it to the first one in the list.
|
||||||
if(!linkedServer)
|
if(!linkedServer)
|
||||||
if(message_servers && message_servers.len > 0)
|
if(message_servers && message_servers.len > 0)
|
||||||
|
|||||||
@@ -146,7 +146,8 @@
|
|||||||
|
|
||||||
|
|
||||||
/obj/machinery/computer/pod/process()
|
/obj/machinery/computer/pod/process()
|
||||||
..()
|
if(!..())
|
||||||
|
return
|
||||||
if(timing)
|
if(timing)
|
||||||
if(time > 0)
|
if(time > 0)
|
||||||
time = round(time) - 1
|
time = round(time) - 1
|
||||||
|
|||||||
@@ -126,10 +126,6 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/power/monitor/process()
|
|
||||||
if(!(stat & (NOPOWER|BROKEN)) )
|
|
||||||
use_power(250)
|
|
||||||
|
|
||||||
/obj/machinery/power/monitor/power_change()
|
/obj/machinery/power/monitor/power_change()
|
||||||
|
|
||||||
if(stat & BROKEN)
|
if(stat & BROKEN)
|
||||||
|
|||||||
@@ -63,10 +63,8 @@
|
|||||||
|
|
||||||
|
|
||||||
process()
|
process()
|
||||||
if(stat & (NOPOWER|BROKEN))
|
if(!..())
|
||||||
return
|
src.updateDialog()
|
||||||
use_power(500)
|
|
||||||
src.updateDialog()
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -116,6 +116,8 @@ proc/move_mining_shuttle()
|
|||||||
var/location = 0 //0 = station, 1 = mining base
|
var/location = 0 //0 = station, 1 = mining base
|
||||||
|
|
||||||
/obj/machinery/computer/mining_shuttle/attack_hand(user as mob)
|
/obj/machinery/computer/mining_shuttle/attack_hand(user as mob)
|
||||||
|
if(..(user))
|
||||||
|
return
|
||||||
src.add_fingerprint(usr)
|
src.add_fingerprint(usr)
|
||||||
var/dat
|
var/dat
|
||||||
dat = text("<center>Mining shuttle:<br> <b><A href='?src=\ref[src];move=[1]'>Send</A></b></center>")
|
dat = text("<center>Mining shuttle:<br> <b><A href='?src=\ref[src];move=[1]'>Send</A></b></center>")
|
||||||
|
|||||||
Reference in New Issue
Block a user