mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-24 12:37:50 +01:00
Computers are now overlay based.
Computers now use an overlay based system, instead of demanding a full set of icons (on, off, broken) for every different computer. Partially ports ParadiseSS13/Paradise#1468 which is a port of tgstation/-tg-station#9931.
This commit is contained in:
@@ -221,7 +221,8 @@
|
||||
name = "DNA Modifier Access Console"
|
||||
desc = "Scand DNA."
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "scanner"
|
||||
icon_keyboard = "med_key"
|
||||
icon_screen = "dna"
|
||||
density = 1
|
||||
circuit = /obj/item/weapon/circuitboard/scan_consolenew
|
||||
var/selected_ui_block = 1.0
|
||||
@@ -273,21 +274,9 @@
|
||||
return
|
||||
|
||||
/obj/machinery/computer/scan_consolenew/blob_act()
|
||||
|
||||
if(prob(75))
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/computer/scan_consolenew/power_change()
|
||||
..()
|
||||
if(stat & BROKEN)
|
||||
icon_state = "broken"
|
||||
else
|
||||
if (stat & NOPOWER)
|
||||
spawn(rand(0, 15))
|
||||
src.icon_state = "c_unpowered"
|
||||
else
|
||||
icon_state = initial(icon_state)
|
||||
|
||||
/obj/machinery/computer/scan_consolenew/New()
|
||||
..()
|
||||
for(var/i=0;i<3;i++)
|
||||
|
||||
@@ -74,7 +74,8 @@ obj/machinery/air_sensor/Destroy()
|
||||
|
||||
/obj/machinery/computer/general_air_control
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "tank"
|
||||
icon_keyboard = "atmos_key"
|
||||
icon_screen = "tank"
|
||||
|
||||
name = "Computer"
|
||||
|
||||
@@ -158,7 +159,6 @@ obj/machinery/computer/general_air_control/Destroy()
|
||||
|
||||
/obj/machinery/computer/general_air_control/large_tank_control
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "tank"
|
||||
|
||||
frequency = 1441
|
||||
var/input_tag
|
||||
@@ -278,7 +278,6 @@ Max Output Pressure: [output_pressure] kPa<BR>"}
|
||||
|
||||
/obj/machinery/computer/general_air_control/supermatter_core
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "tank"
|
||||
|
||||
frequency = 1438
|
||||
var/input_tag
|
||||
@@ -398,7 +397,7 @@ Min Core Pressure: [pressure_limit] kPa<BR>"}
|
||||
|
||||
/obj/machinery/computer/general_air_control/fuel_injection
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "atmos"
|
||||
icon_screen = "alert:0"
|
||||
|
||||
var/device_tag
|
||||
var/list/device_info
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
/obj/machinery/computer/area_atmos
|
||||
name = "Area Air Control"
|
||||
desc = "A computer used to control the stationary scrubbers and pumps in the area."
|
||||
icon_state = "area_atmos"
|
||||
icon_keyboard = "atmos_key"
|
||||
icon_screen = "area_atmos"
|
||||
light_color = "#e6ffff"
|
||||
circuit = "/obj/item/weapon/circuitboard/area_atmos"
|
||||
circuit = /obj/item/weapon/circuitboard/area_atmos
|
||||
|
||||
var/list/connectedscrubbers = new()
|
||||
var/status = ""
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
name = "patient monitoring console"
|
||||
density = 1
|
||||
anchored = 1.0
|
||||
icon_state = "operating"
|
||||
light_color = "#315ab4"
|
||||
circuit = "/obj/item/weapon/circuitboard/operating"
|
||||
icon_keyboard = "med_key"
|
||||
icon_screen = "crew"
|
||||
circuit = /obj/item/weapon/circuitboard/operating
|
||||
var/mob/living/carbon/human/victim = null
|
||||
var/obj/machinery/optable/table = null
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
/obj/machinery/computer/rcon
|
||||
name = "\improper RCON console"
|
||||
desc = "Console used to remotely control machinery on the station."
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "ai-fixer"
|
||||
icon_keyboard = "power_key"
|
||||
icon_screen = "ai-fixer"
|
||||
light_color = "#a97faa"
|
||||
circuit = /obj/item/weapon/circuitboard/rcon_console
|
||||
req_one_access = list(access_engine)
|
||||
@@ -19,6 +19,11 @@
|
||||
..()
|
||||
rcon = new(src)
|
||||
|
||||
/obj/machinery/computer/rcon/Destroy()
|
||||
qdel(rcon)
|
||||
rcon = null
|
||||
..()
|
||||
|
||||
// Proc: attack_hand()
|
||||
// Parameters: 1 (user - Person which clicked this computer)
|
||||
// Description: Opens UI of this machine.
|
||||
@@ -31,3 +36,8 @@
|
||||
// Description: Uses dark magic (NanoUI) to render this machine's UI
|
||||
/obj/machinery/computer/rcon/ui_interact(mob/user, ui_key = "rcon", var/datum/nanoui/ui = null, var/force_open = 1)
|
||||
rcon.ui_interact(user, ui_key, ui, force_open)
|
||||
|
||||
/obj/machinery/computer/rcon/update_icon()
|
||||
..()
|
||||
if(!(stat & (NOPOWER|BROKEN)))
|
||||
overlays += image('icons/obj/computer.dmi', "ai-fixer-empty", overlay_layer)
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
/obj/machinery/computer/aifixer
|
||||
name = "\improper AI system integrity restorer"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "ai-fixer"
|
||||
icon_keyboard = "rd_key"
|
||||
icon_screen = "ai-fixer"
|
||||
light_color = "#a97faa"
|
||||
circuit = /obj/item/weapon/circuitboard/aifixer
|
||||
req_one_access = list(access_robotics, access_heads)
|
||||
@@ -128,16 +129,13 @@
|
||||
|
||||
/obj/machinery/computer/aifixer/update_icon()
|
||||
..()
|
||||
|
||||
overlays.Cut()
|
||||
|
||||
if((stat & BROKEN) || (stat & NOPOWER))
|
||||
return
|
||||
|
||||
if(occupant)
|
||||
if(occupant.stat)
|
||||
overlays += image('icons/obj/computer.dmi', "ai-fixer-404")
|
||||
overlays += image('icons/obj/computer.dmi', "ai-fixer-404", overlay_layer)
|
||||
else
|
||||
overlays += image('icons/obj/computer.dmi', "ai-fixer-full")
|
||||
overlays += image('icons/obj/computer.dmi', "ai-fixer-full", overlay_layer)
|
||||
else
|
||||
overlays += image('icons/obj/computer.dmi', "ai-fixer-empty")
|
||||
overlays += image('icons/obj/computer.dmi', "ai-fixer-empty", overlay_layer)
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
desc = "Does not support pinball."
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "arcade"
|
||||
circuit = "/obj/item/weapon/circuitboard/arcade"
|
||||
icon_keyboard = null
|
||||
icon_screen = "invaders"
|
||||
circuit = /obj/item/weapon/circuitboard/arcade
|
||||
var/enemy_name = "Space Villian"
|
||||
var/temp = "Winners Don't Use Spacedrugs" //Temporary message, for attack messages, etc
|
||||
var/player_hp = 30 //Player health/attack points
|
||||
|
||||
@@ -7,8 +7,9 @@ var/global/list/minor_air_alarms = list()
|
||||
/obj/machinery/computer/atmos_alert
|
||||
name = "atmospheric alert computer"
|
||||
desc = "Used to access the station's atmospheric sensors."
|
||||
circuit = "/obj/item/weapon/circuitboard/atmos_alert"
|
||||
icon_state = "alert:0"
|
||||
circuit = /obj/item/weapon/circuitboard/atmos_alert
|
||||
icon_keyboard = "atmos_key"
|
||||
icon_screen = "alert:0"
|
||||
light_color = "#e6ffff"
|
||||
|
||||
/obj/machinery/computer/atmos_alert/New()
|
||||
@@ -44,19 +45,17 @@ var/global/list/minor_air_alarms = list()
|
||||
ui.set_auto_update(1)
|
||||
|
||||
/obj/machinery/computer/atmos_alert/update_icon()
|
||||
..()
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
var/list/alarms = atmosphere_alarm.major_alarms()
|
||||
if(alarms.len)
|
||||
icon_state = "alert:2"
|
||||
else
|
||||
alarms = atmosphere_alarm.minor_alarms()
|
||||
if(!(stat & (NOPOWER|BROKEN)))
|
||||
var/list/alarms = atmosphere_alarm.major_alarms()
|
||||
if(alarms.len)
|
||||
icon_state = "alert:1"
|
||||
icon_screen = "alert:2"
|
||||
else
|
||||
icon_state = initial(icon_state)
|
||||
return
|
||||
alarms = atmosphere_alarm.minor_alarms()
|
||||
if(alarms.len)
|
||||
icon_screen = "alert:1"
|
||||
else
|
||||
icon_screen = initial(icon_screen)
|
||||
..()
|
||||
|
||||
/obj/machinery/computer/atmos_alert/Topic(href, href_list)
|
||||
if(..())
|
||||
|
||||
@@ -5,11 +5,12 @@
|
||||
/obj/machinery/computer/atmoscontrol
|
||||
name = "\improper Central Atmospherics Computer"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "computer_generic"
|
||||
icon_keyboard = "generic_key"
|
||||
icon_screen = "comm_logs"
|
||||
light_color = "#00b000"
|
||||
density = 1
|
||||
anchored = 1.0
|
||||
circuit = "/obj/item/weapon/circuitboard/atmoscontrol"
|
||||
circuit = /obj/item/weapon/circuitboard/atmoscontrol
|
||||
req_access = list(access_ce)
|
||||
var/list/monitored_alarm_ids = null
|
||||
var/datum/nano_module/atmos_control/atmos_control
|
||||
@@ -20,7 +21,8 @@
|
||||
/obj/machinery/computer/atmoscontrol/laptop
|
||||
name = "Atmospherics Laptop"
|
||||
desc = "Cheap Nanotrasen Laptop."
|
||||
icon_state = "medlaptop"
|
||||
icon_state = "laptop"
|
||||
icon_keyboard = "laptop_key"
|
||||
density = 0
|
||||
|
||||
/obj/machinery/computer/atmoscontrol/attack_ai(var/mob/user as mob)
|
||||
|
||||
@@ -8,7 +8,8 @@
|
||||
/obj/machinery/computer/security
|
||||
name = "security camera monitor"
|
||||
desc = "Used to access the various cameras on the station."
|
||||
icon_state = "cameras"
|
||||
icon_keyboard = "security_key"
|
||||
icon_screen = "cameras"
|
||||
light_color = "#a91515"
|
||||
var/obj/machinery/camera/current = null
|
||||
var/last_pic = 1.0
|
||||
@@ -71,7 +72,7 @@
|
||||
ui.add_template("mapContent", "sec_camera_map_content.tmpl")
|
||||
// adding a template with the key "mapHeader" replaces the map header content
|
||||
ui.add_template("mapHeader", "sec_camera_map_header.tmpl")
|
||||
|
||||
|
||||
ui.set_initial_data(data)
|
||||
ui.open()
|
||||
ui.set_auto_update(1)
|
||||
@@ -201,23 +202,19 @@
|
||||
/obj/machinery/computer/security/telescreen
|
||||
name = "Telescreen"
|
||||
desc = "Used for watching an empty arena."
|
||||
icon = 'icons/obj/stationobjs.dmi'
|
||||
icon_state = "telescreen"
|
||||
icon_state = "wallframe"
|
||||
icon_keyboard = null
|
||||
icon_screen = null
|
||||
light_range_on = 0
|
||||
network = list("thunder")
|
||||
density = 0
|
||||
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
|
||||
name = "entertainment monitor"
|
||||
desc = "Damn, why do they never have anything interesting on these things?"
|
||||
icon = 'icons/obj/status_display.dmi'
|
||||
icon_state = "entertainment"
|
||||
icon_screen = "entertainment"
|
||||
light_color = "#FFEEDB"
|
||||
light_range_on = 2
|
||||
circuit = null
|
||||
@@ -225,7 +222,9 @@
|
||||
/obj/machinery/computer/security/wooden_tv
|
||||
name = "security camera monitor"
|
||||
desc = "An old TV hooked into the stations camera network."
|
||||
icon_state = "security_det"
|
||||
icon_state = "television"
|
||||
icon_keyboard = null
|
||||
icon_screen = "detective_tv"
|
||||
circuit = null
|
||||
light_color = "#3848B3"
|
||||
light_power_on = 0.5
|
||||
@@ -233,7 +232,8 @@
|
||||
/obj/machinery/computer/security/mining
|
||||
name = "outpost camera monitor"
|
||||
desc = "Used to access the various cameras on the outpost."
|
||||
icon_state = "miningcameras"
|
||||
icon_keyboard = "mining_key"
|
||||
icon_screen = "mining"
|
||||
network = list("MINE")
|
||||
circuit = /obj/item/weapon/circuitboard/security/mining
|
||||
light_color = "#F9BBFC"
|
||||
@@ -241,7 +241,8 @@
|
||||
/obj/machinery/computer/security/engineering
|
||||
name = "engineering camera monitor"
|
||||
desc = "Used to monitor fires and breaches."
|
||||
icon_state = "engineeringcameras"
|
||||
icon_keyboard = "power_key"
|
||||
icon_screen = "engie_cams"
|
||||
circuit = /obj/item/weapon/circuitboard/security/engineering
|
||||
light_color = "#FAC54B"
|
||||
|
||||
|
||||
@@ -3,10 +3,11 @@
|
||||
/obj/machinery/computer/card
|
||||
name = "\improper ID card modification console"
|
||||
desc = "Terminal for programming NanoTrasen employee ID cards to access parts of the station."
|
||||
icon_state = "id"
|
||||
icon_keyboard = "id_key"
|
||||
icon_screen = "id"
|
||||
light_color = "#0099ff"
|
||||
req_access = list(access_change_ids)
|
||||
circuit = "/obj/item/weapon/circuitboard/card"
|
||||
circuit = /obj/item/weapon/circuitboard/card
|
||||
var/obj/item/weapon/card/id/scan = null
|
||||
var/obj/item/weapon/card/id/modify = null
|
||||
var/mode = 0.0
|
||||
@@ -284,7 +285,7 @@
|
||||
|
||||
/obj/machinery/computer/card/centcom
|
||||
name = "\improper CentCom ID card modification console"
|
||||
circuit = "/obj/item/weapon/circuitboard/card/centcom"
|
||||
circuit = /obj/item/weapon/circuitboard/card/centcom
|
||||
req_access = list(access_cent_captain)
|
||||
|
||||
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
/obj/machinery/computer/cloning
|
||||
name = "cloning control console"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "dna"
|
||||
icon_keyboard = "med_key"
|
||||
icon_screen = "dna"
|
||||
light_color = "#315ab4"
|
||||
circuit = "/obj/item/weapon/circuitboard/cloning"
|
||||
circuit = /obj/item/weapon/circuitboard/cloning
|
||||
req_access = list(access_heads) //Only used for record deletion right now.
|
||||
var/obj/machinery/dna_scannernew/scanner = null //Linked scanner. For scanning.
|
||||
var/list/pods = list() //Linked cloning pods.
|
||||
@@ -408,15 +409,3 @@
|
||||
selected_record = R
|
||||
break
|
||||
return selected_record
|
||||
|
||||
/obj/machinery/computer/cloning/update_icon()
|
||||
|
||||
if(stat & BROKEN)
|
||||
icon_state = "commb"
|
||||
else
|
||||
if(stat & NOPOWER)
|
||||
src.icon_state = "c_unpowered"
|
||||
stat |= NOPOWER
|
||||
else
|
||||
icon_state = initial(icon_state)
|
||||
stat &= ~NOPOWER
|
||||
|
||||
@@ -4,10 +4,11 @@
|
||||
/obj/machinery/computer/communications
|
||||
name = "command and communications console"
|
||||
desc = "Used to command and control the station. Can relay long-range communications."
|
||||
icon_state = "comm"
|
||||
icon_keyboard = "tech_key"
|
||||
icon_screen = "comm"
|
||||
light_color = "#0099ff"
|
||||
req_access = list(access_heads)
|
||||
circuit = "/obj/item/weapon/circuitboard/communications"
|
||||
circuit = /obj/item/weapon/circuitboard/communications
|
||||
var/prints_intercept = 1
|
||||
var/authenticated = 0
|
||||
var/list/messagetitle = list()
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/obj/machinery/computer
|
||||
name = "computer"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "computer"
|
||||
density = 1
|
||||
anchored = 1.0
|
||||
use_power = 1
|
||||
@@ -9,11 +10,19 @@
|
||||
var/circuit = null //The path to the circuit board type. If circuit==null, the computer can't be disassembled.
|
||||
var/processing = 0
|
||||
|
||||
var/light_range_on = 3
|
||||
var/icon_keyboard = "generic_key"
|
||||
var/icon_screen = " generic"
|
||||
var/light_range_on = 2
|
||||
var/light_power_on = 1
|
||||
var/overlay_layer
|
||||
|
||||
/obj/machinery/computer/New()
|
||||
overlay_layer = layer
|
||||
..()
|
||||
|
||||
/obj/machinery/computer/initialize()
|
||||
power_change()
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/computer/process()
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
@@ -63,18 +72,22 @@
|
||||
density = 0
|
||||
|
||||
/obj/machinery/computer/update_icon()
|
||||
..()
|
||||
icon_state = initial(icon_state)
|
||||
// Broken
|
||||
overlays.Cut()
|
||||
if(stat & NOPOWER)
|
||||
set_light(0)
|
||||
if(icon_keyboard)
|
||||
overlays += image(icon,"[icon_keyboard]_off", overlay_layer)
|
||||
return
|
||||
else
|
||||
set_light(light_range_on, light_power_on)
|
||||
|
||||
if(stat & BROKEN)
|
||||
icon_state += "b"
|
||||
|
||||
// Powered
|
||||
else if(stat & NOPOWER)
|
||||
icon_state = initial(icon_state)
|
||||
icon_state += "0"
|
||||
|
||||
overlays += image(icon,"[icon_state]_broken", overlay_layer)
|
||||
else
|
||||
overlays += image(icon,icon_screen, overlay_layer)
|
||||
|
||||
if(icon_keyboard)
|
||||
overlays += image(icon, icon_keyboard, overlay_layer)
|
||||
|
||||
/obj/machinery/computer/power_change()
|
||||
..()
|
||||
|
||||
@@ -1,24 +1,27 @@
|
||||
/obj/machinery/computer/crew
|
||||
name = "crew monitoring computer"
|
||||
desc = "Used to monitor active health sensors built into most of the crew's uniforms."
|
||||
icon_state = "crew"
|
||||
icon_keyboard = "med_key"
|
||||
icon_screen = "crew"
|
||||
light_color = "#315ab4"
|
||||
use_power = 1
|
||||
idle_power_usage = 250
|
||||
active_power_usage = 500
|
||||
circuit = "/obj/item/weapon/circuitboard/crew"
|
||||
circuit = /obj/item/weapon/circuitboard/crew
|
||||
var/datum/nano_module/crew_monitor/crew_monitor
|
||||
|
||||
/obj/machinery/computer/crew/New()
|
||||
crew_monitor = new(src)
|
||||
..()
|
||||
|
||||
/obj/machinery/computer/crew/Destroy()
|
||||
qdel(crew_monitor)
|
||||
crew_monitor = null
|
||||
..()
|
||||
|
||||
/obj/machinery/computer/crew/attack_ai(mob/user)
|
||||
attack_hand(user)
|
||||
ui_interact(user)
|
||||
|
||||
|
||||
/obj/machinery/computer/crew/attack_hand(mob/user)
|
||||
add_fingerprint(user)
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
@@ -28,17 +31,5 @@
|
||||
/obj/machinery/computer/crew/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
|
||||
crew_monitor.ui_interact(user, ui_key, ui, force_open)
|
||||
|
||||
/obj/machinery/computer/crew/update_icon()
|
||||
|
||||
if(stat & BROKEN)
|
||||
icon_state = "crewb"
|
||||
else
|
||||
if(stat & NOPOWER)
|
||||
src.icon_state = "c_unpowered"
|
||||
stat |= NOPOWER
|
||||
else
|
||||
icon_state = initial(icon_state)
|
||||
stat &= ~NOPOWER
|
||||
|
||||
/obj/machinery/computer/crew/interact(mob/user)
|
||||
crew_monitor.ui_interact(user)
|
||||
|
||||
@@ -43,9 +43,10 @@
|
||||
/obj/machinery/computer/guestpass
|
||||
name = "guest pass terminal"
|
||||
icon_state = "guest"
|
||||
icon_keyboard = null
|
||||
icon_screen = "pass"
|
||||
density = 0
|
||||
|
||||
|
||||
var/obj/item/weapon/card/id/giver
|
||||
var/list/accesses = list()
|
||||
var/giv_name = "NOT SPECIFIED"
|
||||
|
||||
@@ -3,8 +3,9 @@
|
||||
/obj/machinery/computer/aiupload
|
||||
name = "\improper AI upload console"
|
||||
desc = "Used to upload laws to the AI."
|
||||
icon_state = "command"
|
||||
circuit = "/obj/item/weapon/circuitboard/aiupload"
|
||||
icon_keyboard = "rd_key"
|
||||
icon_screen = "command"
|
||||
circuit = /obj/item/weapon/circuitboard/aiupload
|
||||
var/mob/living/silicon/ai/current = null
|
||||
var/opened = 0
|
||||
|
||||
@@ -50,7 +51,7 @@
|
||||
else
|
||||
usr << "[src.current.name] selected for law changes."
|
||||
return
|
||||
|
||||
|
||||
attack_ghost(user as mob)
|
||||
return 1
|
||||
|
||||
@@ -58,8 +59,9 @@
|
||||
/obj/machinery/computer/borgupload
|
||||
name = "cyborg upload console"
|
||||
desc = "Used to upload laws to Cyborgs."
|
||||
icon_state = "command"
|
||||
circuit = "/obj/item/weapon/circuitboard/borgupload"
|
||||
icon_keyboard = "rd_key"
|
||||
icon_screen = "command"
|
||||
circuit = /obj/item/weapon/circuitboard/borgupload
|
||||
var/mob/living/silicon/robot/current = null
|
||||
|
||||
|
||||
|
||||
@@ -1,153 +0,0 @@
|
||||
//this computer displays status and remotely activates multiple shutters / blast doors
|
||||
//todo: lock / electrify specified area doors? might be a bit gamebreaking
|
||||
|
||||
/obj/machinery/computer/lockdown
|
||||
//for reference
|
||||
/*name = "lockdown control"
|
||||
desc = "Used to control blast doors."
|
||||
icon_state = "lockdown"
|
||||
circuit = "/obj/item/weapon/circuitboard/lockdown"
|
||||
var/connected_doors
|
||||
var/department*/
|
||||
var/list/displayedNetworks
|
||||
|
||||
New()
|
||||
..()
|
||||
connected_doors = new/list()
|
||||
displayedNetworks = new/list()
|
||||
//only load blast doors for map-defined departments for the moment
|
||||
//door networks are hardcoded here.
|
||||
switch(department)
|
||||
if("Engineering")
|
||||
connected_doors.Add("Engineering")
|
||||
//Antiqua Engineering
|
||||
connected_doors.Add("Reactor core")
|
||||
connected_doors.Add("Control Room")
|
||||
connected_doors.Add("Vent Seal")
|
||||
connected_doors.Add("Rig Storage")
|
||||
connected_doors.Add("Fore Port Shutters")
|
||||
connected_doors.Add("Fore Starboard Shutters")
|
||||
connected_doors.Add("Electrical Storage Shutters")
|
||||
connected_doors.Add("Locker Room Shutters")
|
||||
connected_doors.Add("Breakroom Shutters")
|
||||
connected_doors.Add("Observation Shutters")
|
||||
//exodus engineering
|
||||
if("Medbay")
|
||||
//Exodus Medbay
|
||||
connected_doors.Add("Genetics Outer Shutters")
|
||||
connected_doors.Add("Genetics Inner Shutters")
|
||||
connected_doors.Add("Chemistry Outer Shutters")
|
||||
connected_doors.Add("Observation Shutters")
|
||||
connected_doors.Add("Patient Room 1 Shutters")
|
||||
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()
|
||||
|
||||
//loop through the world, grabbing all the relevant doors
|
||||
spawn(1)
|
||||
ConnectDoors()
|
||||
|
||||
proc/ConnectDoors()
|
||||
for(var/list/L in connected_doors)
|
||||
for(var/item in L)
|
||||
L.Remove(item)
|
||||
//
|
||||
for(var/obj/machinery/door/poddoor/D in world)
|
||||
if(D.network in connected_doors)
|
||||
var/list/L = connected_doors[D.network]
|
||||
L.Add(D)
|
||||
|
||||
attack_ai(mob/user)
|
||||
attack_hand(user)
|
||||
|
||||
attack_hand(mob/user)
|
||||
add_fingerprint(user)
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
return
|
||||
|
||||
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];refresh=1'>Refresh</A><BR>"
|
||||
t += "<A href='?src=\ref[src];close=1'>Close</A><BR>"
|
||||
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>"
|
||||
if(curNetId in displayedNetworks)
|
||||
t += "<td><a href='?src=\ref[src];hide_net=[curNetId]'>\[-\]</a><b> " + curNetId + "<b></td>"
|
||||
t += "<td colspan=\"2\"><b><a href='?src=\ref[src];open_net=[curNetId]'>Open all</a> / <a href='?src=\ref[src];close_net=[curNetId]'>Close all</a></b></td>"
|
||||
t += "</tr>"
|
||||
|
||||
for(var/obj/machinery/door/poddoor/D in connected_doors[curNetId])
|
||||
t += "<tr>"
|
||||
t += "<td>[D.id]</td>"
|
||||
|
||||
if(istype(D,/obj/machinery/door/poddoor/shutters))
|
||||
t += "<td>Shutter ([D.density ? "Closed" : "Open"])</td>"
|
||||
else
|
||||
t += "<td>Blast door ([D.density ? "Closed" : "Open"])</td>"
|
||||
t += "<td><b><a href='?src=\ref[D];toggle=1'>Toggle</a></b></td>"
|
||||
t += "</tr>"
|
||||
else
|
||||
t += "<td><a href='?src=\ref[src];show_net=[curNetId]'>\[+\]</a> <b>" + curNetId + "<b></td>"
|
||||
t += "</table>"
|
||||
if(empty)
|
||||
t += "<span class='warning'>No networks connected.</span><br>"
|
||||
t += "<A href='?src=\ref[src];refresh=1'>Refresh</A><BR>"
|
||||
t += "<A href='?src=\ref[src];close=1'>Close</A><BR>"
|
||||
user << browse(t, "window=lockdown;size=550x600")
|
||||
onclose(user, "lockdown")
|
||||
|
||||
Topic(href, href_list)
|
||||
if(..()) return 1
|
||||
|
||||
if( href_list["close"] )
|
||||
usr << browse(null, "window=lockdown")
|
||||
usr.machine = null
|
||||
|
||||
if( href_list["show_net"] )
|
||||
displayedNetworks.Add(href_list["show_net"])
|
||||
updateDialog()
|
||||
|
||||
if( href_list["hide_net"] )
|
||||
if(href_list["hide_net"] in displayedNetworks)
|
||||
displayedNetworks.Remove(href_list["hide_net"])
|
||||
updateDialog()
|
||||
|
||||
if( href_list["toggle_id"] )
|
||||
var/idTag = href_list["toggle_id"]
|
||||
for(var/net in connected_doors)
|
||||
for(var/obj/machinery/door/poddoor/D in connected_doors[net])
|
||||
if(D.id == idTag)
|
||||
if(D.density)
|
||||
D.open()
|
||||
else
|
||||
D.close()
|
||||
break
|
||||
|
||||
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()
|
||||
|
||||
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()
|
||||
@@ -3,10 +3,11 @@
|
||||
/obj/machinery/computer/med_data//TODO:SANITY
|
||||
name = "medical records console"
|
||||
desc = "Used to view, edit and maintain medical records."
|
||||
icon_state = "medcomp"
|
||||
icon_keyboard = "med_key"
|
||||
icon_screen = "medcomp"
|
||||
light_color = "#315ab4"
|
||||
req_one_access = list(access_medical, access_forensics_lockers)
|
||||
circuit = "/obj/item/weapon/circuitboard/med_data"
|
||||
circuit = /obj/item/weapon/circuitboard/med_data
|
||||
var/obj/item/weapon/card/id/scan = null
|
||||
var/authenticated = null
|
||||
var/rank = null
|
||||
@@ -552,4 +553,6 @@
|
||||
/obj/machinery/computer/med_data/laptop
|
||||
name = "Medical Laptop"
|
||||
desc = "Cheap Nanotrasen Laptop."
|
||||
icon_state = "medlaptop"
|
||||
icon_state = "laptop"
|
||||
icon_keyboard = "laptop_key"
|
||||
icon_screen = "medlaptop"
|
||||
|
||||
@@ -3,11 +3,10 @@
|
||||
/obj/machinery/computer/message_monitor
|
||||
name = "messaging monitor console"
|
||||
desc = "Used to access and maintain data on messaging servers. Allows you to view PDA and request console messages."
|
||||
icon_state = "comm_logs"
|
||||
icon_screen = "comm_logs"
|
||||
light_color = "#00b000"
|
||||
var/hack_icon = "comm_logsc"
|
||||
var/normal_icon = "comm_logs"
|
||||
circuit = "/obj/item/weapon/circuitboard/message_monitor"
|
||||
var/hack_icon = "error"
|
||||
circuit = /obj/item/weapon/circuitboard/message_monitor
|
||||
//Server linked to.
|
||||
var/obj/machinery/message_server/linkedServer = null
|
||||
//Sparks effect - For emag
|
||||
@@ -50,7 +49,6 @@
|
||||
// It'll take more time if there's more characters in the password..
|
||||
if(!emag && operable())
|
||||
if(!isnull(src.linkedServer))
|
||||
icon_state = hack_icon // An error screen I made in the computers.dmi
|
||||
emag = 1
|
||||
screen = 2
|
||||
spark_system.set_up(5, 0, src)
|
||||
@@ -61,18 +59,17 @@
|
||||
MK.info += "<br><br><font color='red'>£%@%(*$%&(£&?*(%&£/{}</font>"
|
||||
spawn(100*length(src.linkedServer.decryptkey)) UnmagConsole()
|
||||
message = rebootmsg
|
||||
update_icon()
|
||||
return 1
|
||||
else
|
||||
user << "<span class='notice'>A no server error appears on the screen.</span>"
|
||||
|
||||
/obj/machinery/computer/message_monitor/update_icon()
|
||||
..()
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
return
|
||||
if(emag || hacking)
|
||||
icon_state = hack_icon
|
||||
icon_screen = hack_icon
|
||||
else
|
||||
icon_state = normal_icon
|
||||
icon_screen = initial(icon_screen)
|
||||
..()
|
||||
|
||||
/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.
|
||||
@@ -271,12 +268,12 @@
|
||||
var/currentKey = src.linkedServer.decryptkey
|
||||
user << "<span class='warning'>Brute-force completed! The key is '[currentKey]'.</span>"
|
||||
src.hacking = 0
|
||||
src.icon_state = normal_icon
|
||||
update_icon()
|
||||
src.screen = 0 // Return the screen back to normal
|
||||
|
||||
/obj/machinery/computer/message_monitor/proc/UnmagConsole()
|
||||
src.icon_state = normal_icon
|
||||
src.emag = 0
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/computer/message_monitor/proc/ResetMessage()
|
||||
customsender = "System Administrator"
|
||||
@@ -368,7 +365,7 @@
|
||||
if((istype(usr, /mob/living/silicon/ai) || istype(usr, /mob/living/silicon/robot)) && (usr.mind.special_role && usr.mind.original == usr))
|
||||
src.hacking = 1
|
||||
src.screen = 2
|
||||
src.icon_state = hack_icon
|
||||
update_icon()
|
||||
//Time it takes to bruteforce is dependant on the password length.
|
||||
spawn(100*length(src.linkedServer.decryptkey))
|
||||
if(src && src.linkedServer && usr)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/obj/machinery/computer/pod
|
||||
name = "pod launch control console"
|
||||
desc = "A control console for launching pods. Some people prefer firing Mechas."
|
||||
icon_state = "computer_generic"
|
||||
icon_screen = "mass_driver"
|
||||
light_color = "#00b000"
|
||||
circuit = /obj/item/weapon/circuitboard/pod
|
||||
var/id = 1.0
|
||||
@@ -194,7 +194,9 @@
|
||||
|
||||
|
||||
/obj/machinery/computer/pod/old
|
||||
icon_state = "old"
|
||||
icon_state = "oldcomp"
|
||||
icon_keyboard = null
|
||||
icon_screen = "library"
|
||||
name = "DoorMex Control Computer"
|
||||
title = "Door Controls"
|
||||
|
||||
|
||||
@@ -3,10 +3,11 @@
|
||||
/obj/machinery/computer/prisoner
|
||||
name = "prisoner management console"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "explosive"
|
||||
icon_keyboard = "security_key"
|
||||
icon_screen = "explosive"
|
||||
light_color = "#a91515"
|
||||
req_access = list(access_armory)
|
||||
circuit = "/obj/item/weapon/circuitboard/prisoner"
|
||||
circuit = /obj/item/weapon/circuitboard/prisoner
|
||||
var/id = 0.0
|
||||
var/temp = null
|
||||
var/status = 0
|
||||
|
||||
@@ -13,10 +13,11 @@ var/prison_shuttle_timeleft = 0
|
||||
/obj/machinery/computer/prison_shuttle
|
||||
name = "prison shuttle control console"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "shuttle"
|
||||
icon_keyboard = "security_key"
|
||||
icon_screen = "syndishuttle"
|
||||
light_color = "#00ffff"
|
||||
req_access = list(access_security)
|
||||
circuit = "/obj/item/weapon/circuitboard/prison_shuttle"
|
||||
circuit = /obj/item/weapon/circuitboard/prison_shuttle
|
||||
var/temp = null
|
||||
var/hacked = 0
|
||||
var/allowedtocall = 0
|
||||
|
||||
@@ -2,10 +2,11 @@
|
||||
name = "robotics control console"
|
||||
desc = "Used to remotely lockdown or detonate linked cyborgs."
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "robot"
|
||||
icon_keyboard = "tech_key"
|
||||
icon_screen = "robot"
|
||||
light_color = "#a97faa"
|
||||
req_access = list(access_robotics)
|
||||
circuit = "/obj/item/weapon/circuitboard/robotics"
|
||||
circuit = /obj/item/weapon/circuitboard/robotics
|
||||
|
||||
var/safety = 1
|
||||
|
||||
|
||||
@@ -3,10 +3,11 @@
|
||||
/obj/machinery/computer/secure_data//TODO:SANITY
|
||||
name = "security records console"
|
||||
desc = "Used to view, edit and maintain security records"
|
||||
icon_state = "security"
|
||||
icon_keyboard = "security_key"
|
||||
icon_screen = "security"
|
||||
light_color = "#a91515"
|
||||
req_one_access = list(access_security, access_forensics_lockers)
|
||||
circuit = "/obj/item/weapon/circuitboard/secure_data"
|
||||
circuit = /obj/item/weapon/circuitboard/secure_data
|
||||
var/obj/item/weapon/card/id/scan = null
|
||||
var/authenticated = null
|
||||
var/rank = null
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
/obj/machinery/computer/shuttle
|
||||
name = "Shuttle"
|
||||
desc = "For shuttle control."
|
||||
icon_state = "shuttle"
|
||||
icon_keyboard = "tech_key"
|
||||
icon_screen = "shuttle"
|
||||
light_color = "#00ffff"
|
||||
var/auth_need = 3.0
|
||||
var/list/authorized = list( )
|
||||
|
||||
@@ -3,10 +3,12 @@
|
||||
/obj/machinery/computer/skills//TODO:SANITY
|
||||
name = "employment records console"
|
||||
desc = "Used to view, edit and maintain employment records."
|
||||
icon_state = "medlaptop"
|
||||
icon_keyboard = "laptop_key"
|
||||
icon_screen = "medlaptop"
|
||||
icon_state = "laptop"
|
||||
light_color = "#00b000"
|
||||
req_one_access = list(access_heads)
|
||||
circuit = "/obj/item/weapon/circuitboard/skills"
|
||||
circuit = /obj/item/weapon/circuitboard/skills
|
||||
var/obj/item/weapon/card/id/scan = null
|
||||
var/authenticated = null
|
||||
var/rank = null
|
||||
|
||||
@@ -14,7 +14,8 @@ var/specops_shuttle_timeleft = 0
|
||||
/obj/machinery/computer/specops_shuttle
|
||||
name = "special operations shuttle control console"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "shuttle"
|
||||
icon_keyboard = "security_key"
|
||||
icon_screen = "syndishuttle"
|
||||
light_color = "#00ffff"
|
||||
req_access = list(access_cent_specops)
|
||||
// req_access = list(ACCESS_CENT_SPECOPS)
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
/obj/machinery/computer/station_alert
|
||||
name = "Station Alert Console"
|
||||
desc = "Used to access the station's automated alert system."
|
||||
icon_state = "alert:0"
|
||||
icon_keyboard = "tech_key"
|
||||
icon_screen = "alert:0"
|
||||
light_color = "#e6ffff"
|
||||
circuit = /obj/item/weapon/circuitboard/stationalert_engineering
|
||||
var/datum/nano_module/alarm_monitor/alarm_monitor
|
||||
@@ -44,13 +45,10 @@
|
||||
alarm_monitor.ui_interact(user)
|
||||
|
||||
/obj/machinery/computer/station_alert/update_icon()
|
||||
if(!(stat & (BROKEN|NOPOWER)))
|
||||
var/list/alarms = alarm_monitor.major_alarms()
|
||||
if(alarms.len)
|
||||
icon_screen = "alert:2"
|
||||
else
|
||||
icon_screen = initial(icon_screen)
|
||||
..()
|
||||
if(stat & (BROKEN|NOPOWER))
|
||||
return
|
||||
|
||||
var/list/alarms = alarm_monitor.major_alarms()
|
||||
if(alarms.len)
|
||||
icon_state = "alert:2"
|
||||
else
|
||||
icon_state = initial(icon_state)
|
||||
return
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
/obj/machinery/computer/supplycomp
|
||||
name = "supply control console"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "supply"
|
||||
icon_keyboard = "tech_key"
|
||||
icon_screen = "supply"
|
||||
light_color = "#b88b2e"
|
||||
req_access = list(access_cargo)
|
||||
circuit = "/obj/item/weapon/circuitboard/supplycomp"
|
||||
circuit = /obj/item/weapon/circuitboard/supplycomp
|
||||
var/temp = null
|
||||
var/reqtime = 0 //Cooldown for requisitions - Quarxink
|
||||
var/hacked = 0
|
||||
@@ -14,8 +15,8 @@
|
||||
/obj/machinery/computer/ordercomp
|
||||
name = "supply ordering console"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "request"
|
||||
circuit = "/obj/item/weapon/circuitboard/ordercomp"
|
||||
icon_screen = "request"
|
||||
circuit = /obj/item/weapon/circuitboard/ordercomp
|
||||
var/temp = null
|
||||
var/reqtime = 0 //Cooldown for requisitions - Quarxink
|
||||
var/last_viewed_group = "categories"
|
||||
|
||||
@@ -13,7 +13,8 @@ var/syndicate_elite_shuttle_timeleft = 0
|
||||
/obj/machinery/computer/syndicate_elite_shuttle
|
||||
name = "elite syndicate squad shuttle control console"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "syndishuttle"
|
||||
icon_keyboard = "syndie_key"
|
||||
icon_screen = "syndishuttle"
|
||||
light_color = "#00ffff"
|
||||
req_access = list(access_cent_specops)
|
||||
var/temp = null
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
name = "AI Upload"
|
||||
desc = "Used to upload laws to the AI."
|
||||
icon_state = "frame-rnd"
|
||||
circuit = "/obj/item/part/board/circuit/aiupload"
|
||||
circuit = /obj/item/weapon/circuitboard/aiupload
|
||||
var/mob/living/silicon/ai/current = null
|
||||
var/opened = 0
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
name = "Cyborg Upload"
|
||||
desc = "Used to upload laws to Cyborgs."
|
||||
icon_state = "frame-rnd"
|
||||
circuit = "/obj/item/part/board/circuit/borgupload"
|
||||
circuit = /obj/item/weapon/circuitboard/borgupload
|
||||
var/mob/living/silicon/robot/current = null
|
||||
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
desc = "An interface between crew and the cryogenic storage oversight systems."
|
||||
icon = 'icons/obj/Cryogenic2.dmi'
|
||||
icon_state = "cellconsole"
|
||||
circuit = "/obj/item/weapon/circuitboard/cryopodcontrol"
|
||||
circuit = /obj/item/weapon/circuitboard/cryopodcontrol
|
||||
density = 0
|
||||
interact_offline = 1
|
||||
var/mode = null
|
||||
@@ -32,7 +32,7 @@
|
||||
desc = "An interface between crew and the robotic storage systems"
|
||||
icon = 'icons/obj/robot_storage.dmi'
|
||||
icon_state = "console"
|
||||
circuit = "/obj/item/weapon/circuitboard/robotstoragecontrol"
|
||||
circuit = /obj/item/weapon/circuitboard/robotstoragecontrol
|
||||
|
||||
storage_type = "cyborgs"
|
||||
storage_name = "Robotic Storage Control"
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
/obj/machinery/computer/teleporter
|
||||
name = "Teleporter Control Console"
|
||||
desc = "Used to control a linked teleportation Hub and Station."
|
||||
icon_state = "teleport"
|
||||
circuit = "/obj/item/weapon/circuitboard/teleporter"
|
||||
icon_keyboard = "teleport_key"
|
||||
icon_screen = "teleport"
|
||||
circuit = /obj/item/weapon/circuitboard/teleporter
|
||||
dir = 4
|
||||
var/obj/item/locked = null
|
||||
var/id = null
|
||||
|
||||
@@ -140,7 +140,7 @@
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "recharge_comp"
|
||||
light_color = "#a97faa"
|
||||
circuit = "/obj/item/weapon/circuitboard/mech_bay_power_console"
|
||||
circuit = /obj/item/weapon/circuitboard/mech_bay_power_console
|
||||
var/autostart = 1
|
||||
var/voltage = 45
|
||||
var/turf/simulated/floor/mech_bay_recharge_floor/recharge_floor
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
icon_state = "mecha"
|
||||
light_color = "#a97faa"
|
||||
req_access = list(access_robotics)
|
||||
circuit = "/obj/item/weapon/circuitboard/mecha_control"
|
||||
circuit = /obj/item/weapon/circuitboard/mecha_control
|
||||
var/list/located = list()
|
||||
var/screen = 0
|
||||
var/stored_data
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
/obj/machinery/computer/HolodeckControl
|
||||
name = "holodeck control console"
|
||||
desc = "A computer used to control a nearby holodeck."
|
||||
icon_state = "holocontrol"
|
||||
icon_keyboard = "tech_key"
|
||||
icon_screen = "holocontrol"
|
||||
|
||||
use_power = 1
|
||||
active_power_usage = 8000 //8kW for the scenery + 500W per holoitem
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "power"
|
||||
req_access = list(access_engine_equip)
|
||||
circuit = "/obj/item/weapon/circuitboard/drone_control"
|
||||
circuit = /obj/item/weapon/circuitboard/drone_control
|
||||
|
||||
//Used when pinging drones.
|
||||
var/drone_call_area = "Engineering"
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
/obj/machinery/computer/shuttle_control
|
||||
name = "shuttle control console"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "shuttle"
|
||||
icon_keyboard = "atmos_key"
|
||||
icon_screen = "shuttle"
|
||||
circuit = null
|
||||
|
||||
var/shuttle_tag // Used to coordinate data in shuttle controller.
|
||||
@@ -15,7 +16,7 @@
|
||||
if(!allowed(user))
|
||||
user << "\red Access Denied."
|
||||
return 1
|
||||
|
||||
|
||||
ui_interact(user)
|
||||
|
||||
/obj/machinery/computer/shuttle_control/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
|
||||
|
||||
@@ -34,12 +34,12 @@
|
||||
destination_dock_controllers[destination] = docking_controller
|
||||
else
|
||||
var/datum/computer/file/embedded_program/docking/C = locate(controller_tag)
|
||||
|
||||
|
||||
if(!istype(C))
|
||||
world << "<span class='danger'>warning: shuttle with docking tag [controller_tag] could not find it's controller!</span>"
|
||||
else
|
||||
destination_dock_controllers[destination] = C
|
||||
|
||||
|
||||
//might as well set this up here.
|
||||
if(origin) last_departed = origin
|
||||
last_location = start_location
|
||||
@@ -70,7 +70,8 @@
|
||||
|
||||
|
||||
/obj/machinery/computer/shuttle_control/multi
|
||||
icon_state = "syndishuttle"
|
||||
icon_keyboard = "syndie_key"
|
||||
icon_screen = "syndishuttle"
|
||||
|
||||
/obj/machinery/computer/shuttle_control/multi/attack_hand(user as mob)
|
||||
|
||||
@@ -99,7 +100,7 @@
|
||||
dat += "<br><b><A href='?src=\ref[src];toggle_cloak=[1]'>Toggle cloaking field</A></b><br>"
|
||||
dat += "<b><A href='?src=\ref[src];move_multi=[1]'>Move ship</A></b><br>"
|
||||
dat += "<b><A href='?src=\ref[src];start=[1]'>Return to base</A></b></center>"
|
||||
|
||||
|
||||
//Docking
|
||||
dat += "<center><br><br>"
|
||||
if(MS.skip_docking_checks())
|
||||
@@ -107,7 +108,7 @@
|
||||
else
|
||||
var/override_en = MS.docking_controller.override_enabled
|
||||
var/docking_status = MS.docking_controller.get_docking_status()
|
||||
|
||||
|
||||
dat += "Docking Status: "
|
||||
switch(docking_status)
|
||||
if("undocked")
|
||||
@@ -118,11 +119,11 @@
|
||||
dat += "<font color='[override_en? "red" : "yellow"]'>Undocking</font>"
|
||||
if("docked")
|
||||
dat += "<font color='[override_en? "red" : "green"]'>Docked</font>"
|
||||
|
||||
|
||||
if(override_en) dat += " <font color='red'>(Override Enabled)</font>"
|
||||
|
||||
|
||||
dat += ". <A href='?src=\ref[src];refresh=[1]'>\[Refresh\]</A><br><br>"
|
||||
|
||||
|
||||
switch(docking_status)
|
||||
if("undocked")
|
||||
dat += "<b><A href='?src=\ref[src];dock_command=[1]'>Dock</A></b></center>"
|
||||
@@ -139,11 +140,11 @@
|
||||
var/choice = alert("The shuttle is currently docked! Please undock before continuing.","Error","Cancel","Force Launch")
|
||||
if(choice == "Cancel")
|
||||
return 0
|
||||
|
||||
|
||||
choice = alert("Forcing a shuttle launch while docked may result in severe injury, death and/or damage to property. Are you sure you wish to continue?", "Force Launch", "Force Launch", "Cancel")
|
||||
if(choice == "Cancel")
|
||||
return 0
|
||||
|
||||
|
||||
return 1
|
||||
|
||||
/obj/machinery/computer/shuttle_control/multi/Topic(href, href_list)
|
||||
@@ -165,11 +166,11 @@
|
||||
if (MS.moving_status != SHUTTLE_IDLE)
|
||||
usr << "\blue [shuttle_tag] vessel is moving."
|
||||
return
|
||||
|
||||
|
||||
if(href_list["dock_command"])
|
||||
MS.dock()
|
||||
return
|
||||
|
||||
|
||||
if(href_list["undock_command"])
|
||||
MS.undock()
|
||||
return
|
||||
@@ -178,7 +179,7 @@
|
||||
if(MS.at_origin)
|
||||
usr << "\red You are already at your home base."
|
||||
return
|
||||
|
||||
|
||||
if((MS.last_move + MS.cooldown*10) > world.time)
|
||||
usr << "\red The ship's drive is inoperable while the engines are charging."
|
||||
return
|
||||
@@ -186,7 +187,7 @@
|
||||
if(!check_docking(MS))
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
|
||||
if(!MS.return_warning)
|
||||
usr << "\red Returning to your home base will end your mission. If you are sure, press the button again."
|
||||
//TODO: Actually end the mission.
|
||||
@@ -207,11 +208,11 @@
|
||||
if((MS.last_move + MS.cooldown*10) > world.time)
|
||||
usr << "\red The ship's drive is inoperable while the engines are charging."
|
||||
return
|
||||
|
||||
|
||||
if(!check_docking(MS))
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
|
||||
var/choice = input("Select a destination.") as null|anything in MS.destinations
|
||||
if(!choice) return
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
/obj/machinery/computer/diseasesplicer
|
||||
name = "disease splicer"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "crew"
|
||||
icon_keyboard = "med_key"
|
||||
icon_screen = "crew"
|
||||
|
||||
var/datum/disease2/effectholder/memorybank = null
|
||||
var/list/species_buffer = null
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 40 KiB |
Reference in New Issue
Block a user