From 45ff6d2cf6ec0f9099492e44fd1736506888bce6 Mon Sep 17 00:00:00 2001 From: Lethal Ghost Date: Tue, 5 Dec 2017 12:53:13 +0600 Subject: [PATCH] Machinery (#12) * Make arcade to machine instead computer * Power stuff * Machinery power and building update. --- baystation12.dme | 6 +- .../components/binary_devices/dp_vent_pump.dm | 7 - .../components/binary_devices/pump.dm | 6 - .../components/omni_devices/omni_base.dm | 6 - .../components/trinary_devices/filter.dm | 6 - .../components/trinary_devices/mixer.dm | 6 - code/ATMOSPHERICS/components/tvalve.dm | 18 +- .../components/unary/outlet_injector.dm | 24 +- .../components/unary/vent_pump.dm | 6 - .../components/unary/vent_scrubber.dm | 6 - code/ATMOSPHERICS/components/valve.dm | 9 +- code/__defines/machinery.dm | 3 + code/game/dna/dna_modifier.dm | 22 +- code/game/machinery/PDApainter.dm | 7 +- code/game/machinery/adv_med.dm | 3 +- code/game/machinery/ai_slipper.dm | 4 - code/game/machinery/alarm.dm | 12 - code/game/machinery/{computer => }/arcade.dm | 40 +++- code/game/machinery/atmo_control.dm | 9 +- .../atmoalter/area_atmos_computer.dm | 2 +- code/game/machinery/atmoalter/scrubber.dm | 8 +- code/game/machinery/computer/Operating.dm | 2 +- code/game/machinery/computer/RCON_Console.dm | 2 +- code/game/machinery/computer/aifixer.dm | 12 +- code/game/machinery/computer/atmos_alert.dm | 22 +- code/game/machinery/computer/atmos_control.dm | 2 +- .../game/machinery/computer/buildandrepair.dm | 226 +++++++++++------- code/game/machinery/computer/camera.dm | 33 ++- code/game/machinery/computer/card.dm | 2 +- code/game/machinery/computer/cloning.dm | 14 +- .../game/machinery/computer/communications.dm | 2 +- code/game/machinery/computer/computer.dm | 59 +++-- code/game/machinery/computer/crew.dm | 14 +- code/game/machinery/computer/law.dm | 4 +- code/game/machinery/computer/medical.dm | 6 +- code/game/machinery/computer/message.dm | 13 +- code/game/machinery/computer/pod.dm | 12 +- code/game/machinery/computer/prisoner.dm | 3 +- code/game/machinery/computer/prisonshuttle.dm | 2 +- code/game/machinery/computer/robot.dm | 2 +- code/game/machinery/computer/security.dm | 5 +- code/game/machinery/computer/shuttle.dm | 2 +- code/game/machinery/computer/skills.dm | 7 +- .../machinery/computer/specops_shuttle.dm | 2 +- code/game/machinery/computer/station_alert.dm | 17 +- code/game/machinery/computer/supply.dm | 4 +- .../computer/syndicate_specops_shuttle.dm | 2 +- code/game/machinery/computer3/lapvend.dm | 3 - code/game/machinery/cryopod.dm | 9 + code/game/machinery/door_control.dm | 4 - code/game/machinery/doors/airlock.dm | 1 - code/game/machinery/doors/brigdoors.dm | 7 - code/game/machinery/doppler_array.dm | 3 +- code/game/machinery/flasher.dm | 3 +- .../machinery/{computer => }/guestpass.dm | 32 ++- code/game/machinery/holosign.dm | 1 + code/game/machinery/igniter.dm | 22 +- code/game/machinery/kitchen/smartfridge.dm | 6 - code/game/machinery/machinery.dm | 4 +- code/game/machinery/newscaster.dm | 32 +-- code/game/machinery/portable_turret.dm | 9 - code/game/machinery/records_scanner.dm | 6 +- code/game/machinery/requests_console.dm | 4 - code/game/machinery/status_display_ai.dm | 14 +- code/game/machinery/telecomms/logbrowser.dm | 2 +- code/game/machinery/telecomms/telemonitor.dm | 2 +- .../machinery/telecomms/traffic_control.dm | 2 +- code/game/machinery/teleporter.dm | 5 +- code/game/machinery/vending.dm | 4 - code/game/mecha/mech_bay.dm | 27 +-- code/game/mecha/mecha_control_console.dm | 2 +- .../circuitboards/computer/computer.dm | 5 - .../weapons/circuitboards/machinery/arcade.dm | 6 + code/game/objects/structures/window.dm | 2 +- code/modules/economy/Accounts_DB.dm | 2 +- code/modules/holodeck/HolodeckControl.dm | 5 +- code/modules/materials/material_recipes.dm | 3 +- .../silicon/robot/drone/drone_console.dm | 2 +- .../silicon/robot/drone/drone_manufacturer.dm | 10 +- .../overmap/ships/computers/engine_control.dm | 2 +- code/modules/overmap/ships/computers/helm.dm | 2 +- code/modules/power/antimatter/control.dm | 9 +- code/modules/power/generator.dm | 5 - code/modules/power/generator_type2.dm | 7 +- code/modules/power/gravitygenerator.dm | 2 +- code/modules/power/power.dm | 2 +- .../power/sensors/sensor_monitoring.dm | 15 +- .../particle_accelerator/particle_control.dm | 1 - code/modules/power/solar.dm | 5 - code/modules/power/turbine.dm | 2 +- code/modules/reagents/Machinery.dm | 1 - .../reagents/reagent_containers/glass.dm | 2 +- code/modules/recycling/conveyor2.dm | 29 +-- code/modules/recycling/disposal.dm | 33 +-- code/modules/recycling/sortingmachinery.dm | 2 +- code/modules/research/rdconsole.dm | 2 +- code/modules/research/server.dm | 2 +- .../security levels/keycard authentication.dm | 3 +- code/modules/shieldgen/emergency_shield.dm | 1 - code/modules/shieldgen/shield_capacitor.dm | 4 +- code/modules/shuttles/shuttle_console.dm | 2 +- code/modules/shuttles/shuttles_multi.dm | 2 +- code/modules/virus2/centrifuge.dm | 40 ++-- code/modules/virus2/curer.dm | 2 +- code/modules/virus2/diseasesplicer.dm | 2 +- icons/obj/computer.dmi | Bin 73009 -> 42062 bytes icons/obj/computer_laptop.dmi | Bin 0 -> 7145 bytes icons/obj/machinery.dmi | Bin 0 -> 1564 bytes icons/obj/stock_parts.dmi | Bin 10523 -> 11916 bytes icons/obj/virology.dmi | Bin 5167 -> 5177 bytes maps/CentComm.dmm | 8 +- maps/exodus/1.station.dmm | 26 +- 112 files changed, 484 insertions(+), 649 deletions(-) rename code/game/machinery/{computer => }/arcade.dm (88%) rename code/game/machinery/{computer => }/guestpass.dm (87%) create mode 100644 code/game/objects/items/weapons/circuitboards/machinery/arcade.dm create mode 100644 icons/obj/computer_laptop.dmi create mode 100644 icons/obj/machinery.dmi diff --git a/baystation12.dme b/baystation12.dme index 65f533f09..c24fa8320 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -354,6 +354,7 @@ #include "code\game\machinery\adv_med.dm" #include "code\game\machinery\ai_slipper.dm" #include "code\game\machinery\alarm.dm" +#include "code\game\machinery\arcade.dm" #include "code\game\machinery\atmo_control.dm" #include "code\game\machinery\autolathe.dm" #include "code\game\machinery\autolathe_datums.dm" @@ -375,6 +376,7 @@ #include "code\game\machinery\flasher.dm" #include "code\game\machinery\floodlight.dm" #include "code\game\machinery\floorlayer.dm" +#include "code\game\machinery\guestpass.dm" #include "code\game\machinery\hologram.dm" #include "code\game\machinery\holosign.dm" #include "code\game\machinery\igniter.dm" @@ -389,7 +391,6 @@ #include "code\game\machinery\newscaster.dm" #include "code\game\machinery\nuclear_bomb.dm" #include "code\game\machinery\OpTable.dm" -#include "code\game\machinery\overview.dm" #include "code\game\machinery\PDApainter.dm" #include "code\game\machinery\portable_tag_turret.dm" #include "code\game\machinery\portable_turret.dm" @@ -427,7 +428,6 @@ #include "code\game\machinery\camera\tracking.dm" #include "code\game\machinery\computer\ai_core.dm" #include "code\game\machinery\computer\aifixer.dm" -#include "code\game\machinery\computer\arcade.dm" #include "code\game\machinery\computer\atmos_alert.dm" #include "code\game\machinery\computer\atmos_control.dm" #include "code\game\machinery\computer\buildandrepair.dm" @@ -437,7 +437,6 @@ #include "code\game\machinery\computer\communications.dm" #include "code\game\machinery\computer\computer.dm" #include "code\game\machinery\computer\crew.dm" -#include "code\game\machinery\computer\guestpass.dm" #include "code\game\machinery\computer\law.dm" #include "code\game\machinery\computer\medical.dm" #include "code\game\machinery\computer\message.dm" @@ -722,6 +721,7 @@ #include "code\game\objects\items\weapons\circuitboards\computer\research.dm" #include "code\game\objects\items\weapons\circuitboards\computer\supply.dm" #include "code\game\objects\items\weapons\circuitboards\computer\telecomms.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\arcade.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\biogenerator.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\cloning.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\commsantenna.dm" diff --git a/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm b/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm index ce338bd37..6cbcfedb6 100644 --- a/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm @@ -199,13 +199,6 @@ if(.<=2) user << "A small gauge in the corner reads [round(last_flow_rate, 0.1)] L/s; [round(last_power_draw)] W" - -/obj/machinery/atmospherics/unary/vent_pump/power_change() - var/old_stat = stat - ..() - if(old_stat != stat) - update_icon() - /obj/machinery/atmospherics/binary/dp_vent_pump/receive_signal(datum/signal/signal) if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command")) return 0 diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm index 760098330..25c8e3653 100644 --- a/code/ATMOSPHERICS/components/binary_devices/pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm @@ -209,12 +209,6 @@ Thus, the two variables affect pump operation are set in New(): src.update_icon() -/obj/machinery/atmospherics/binary/pump/power_change() - var/old_stat = stat - ..() - if(old_stat != stat) - update_icon() - /obj/machinery/atmospherics/binary/pump/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) if (!istype(W, /obj/item/weapon/wrench)) return ..() diff --git a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm index 2df7bad8d..b84466735 100644 --- a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm +++ b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm @@ -72,12 +72,6 @@ return 0 return 1 -/obj/machinery/atmospherics/omni/power_change() - var/old_stat = stat - ..() - if(old_stat != stat) - update_icon() - /obj/machinery/atmospherics/omni/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) if(!istype(W, /obj/item/weapon/wrench)) return ..() diff --git a/code/ATMOSPHERICS/components/trinary_devices/filter.dm b/code/ATMOSPHERICS/components/trinary_devices/filter.dm index 79b063c0f..23e85f98c 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/filter.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/filter.dm @@ -87,12 +87,6 @@ /obj/machinery/atmospherics/trinary/filter/hide(var/i) update_underlays() -/obj/machinery/atmospherics/trinary/filter/power_change() - var/old_stat = stat - ..() - if(old_stat != stat) - update_icon() - /obj/machinery/atmospherics/trinary/filter/process() ..() diff --git a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm index 7379f2dc4..5fe9c5a33 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm @@ -57,12 +57,6 @@ /obj/machinery/atmospherics/trinary/mixer/hide(var/i) update_underlays() -/obj/machinery/atmospherics/trinary/mixer/power_change() - var/old_stat = stat - ..() - if(old_stat != stat) - update_icon() - /obj/machinery/atmospherics/trinary/mixer/New() ..() air1.volume = ATMOS_DEFAULT_VOLUME_MIXER diff --git a/code/ATMOSPHERICS/components/tvalve.dm b/code/ATMOSPHERICS/components/tvalve.dm index ba461368c..39a1ad259 100644 --- a/code/ATMOSPHERICS/components/tvalve.dm +++ b/code/ATMOSPHERICS/components/tvalve.dm @@ -288,16 +288,11 @@ icon_state = "map_tvalve1" state = 1 -/obj/machinery/atmospherics/tvalve/digital/power_change() - var/old_stat = stat - ..() - if(old_stat != stat) - update_icon() - /obj/machinery/atmospherics/tvalve/digital/update_icon() - ..() if(!powered()) icon_state = "tvalvenopower" + else + ..() /obj/machinery/atmospherics/tvalve/digital/attack_ai(mob/user as mob) return src.attack_hand(user) @@ -428,16 +423,11 @@ icon_state = "map_tvalvem1" state = 1 -/obj/machinery/atmospherics/tvalve/mirrored/digital/power_change() - var/old_stat = stat - ..() - if(old_stat != stat) - update_icon() - /obj/machinery/atmospherics/tvalve/mirrored/digital/update_icon() - ..() if(!powered()) icon_state = "tvalvemnopower" + else + ..() /obj/machinery/atmospherics/tvalve/mirrored/digital/attack_ai(mob/user as mob) return src.attack_hand(user) diff --git a/code/ATMOSPHERICS/components/unary/outlet_injector.dm b/code/ATMOSPHERICS/components/unary/outlet_injector.dm index d3f92a185..21b1babc5 100644 --- a/code/ATMOSPHERICS/components/unary/outlet_injector.dm +++ b/code/ATMOSPHERICS/components/unary/outlet_injector.dm @@ -1,4 +1,4 @@ -//Basically a one way passive valve. If the pressure inside is greater than the environment then gas will flow passively, +//Basically a one way passive valve. If the pressure inside is greater than the environment then gas will flow passively, //but it does not permit gas to flow back from the environment into the injector. Can be turned off to prevent any gas flow. //When it receives the "inject" signal, it will try to pump it's entire contents into the environment regardless of pressure, using power. @@ -13,7 +13,7 @@ use_power = 0 idle_power_usage = 150 //internal circuitry, friction losses and stuff power_rating = 15000 //15000 W ~ 20 HP - + var/injecting = 0 var/volume_rate = 50 //flow rate limit @@ -26,7 +26,7 @@ /obj/machinery/atmospherics/unary/outlet_injector/New() ..() - air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 500 //Give it a small reservoir for injecting. Also allows it to have a higher flow rate limit than vent pumps, to differentiate injectors a bit more. + air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 500 //Give it a small reservoir for injecting. Also allows it to have a higher flow rate limit than vent pumps, to differentiate injectors a bit more. /obj/machinery/atmospherics/unary/outlet_injector/update_icon() if(!powered()) @@ -42,12 +42,6 @@ return add_underlay(T, node, dir) -/obj/machinery/atmospherics/unary/outlet_injector/power_change() - var/old_stat = stat - ..() - if(old_stat != stat) - update_icon() - /obj/machinery/atmospherics/unary/outlet_injector/process() ..() @@ -56,21 +50,21 @@ if((stat & (NOPOWER|BROKEN)) || !use_power) return - + var/power_draw = -1 var/datum/gas_mixture/environment = loc.return_air() - + if(environment && air_contents.temperature > 0) var/transfer_moles = (volume_rate/air_contents.volume)*air_contents.total_moles //apply flow rate limit power_draw = pump_gas(src, air_contents, environment, transfer_moles, power_rating) - + if (power_draw >= 0) last_power_draw = power_draw use_power(power_draw) - + if(network) network.update = 1 - + return 1 /obj/machinery/atmospherics/unary/outlet_injector/proc/inject() @@ -80,7 +74,7 @@ var/datum/gas_mixture/environment = loc.return_air() if (!environment) return 0 - + injecting = 1 if(air_contents.temperature > 0) diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm index e92e91154..3fc0e446b 100644 --- a/code/ATMOSPHERICS/components/unary/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm @@ -389,12 +389,6 @@ if(welded) user << "It seems welded shut." -/obj/machinery/atmospherics/unary/vent_pump/power_change() - var/old_stat = stat - ..() - if(old_stat != stat) - update_icon() - /obj/machinery/atmospherics/unary/vent_pump/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) if (!istype(W, /obj/item/weapon/wrench)) return ..() diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm index 772fc4403..1a03050a7 100644 --- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm +++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm @@ -247,12 +247,6 @@ update_icon() return -/obj/machinery/atmospherics/unary/vent_scrubber/power_change() - var/old_stat = stat - ..() - if(old_stat != stat) - update_icon() - /obj/machinery/atmospherics/unary/vent_scrubber/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) if (!istype(W, /obj/item/weapon/wrench)) return ..() diff --git a/code/ATMOSPHERICS/components/valve.dm b/code/ATMOSPHERICS/components/valve.dm index 1e5df4ab0..88113bfd6 100644 --- a/code/ATMOSPHERICS/components/valve.dm +++ b/code/ATMOSPHERICS/components/valve.dm @@ -247,16 +247,11 @@ open = 1 icon_state = "map_valve1" -/obj/machinery/atmospherics/valve/digital/power_change() - var/old_stat = stat - ..() - if(old_stat != stat) - update_icon() - /obj/machinery/atmospherics/valve/digital/update_icon() - ..() if(!powered()) icon_state = "valve[open]nopower" + else + ..() /obj/machinery/atmospherics/valve/digital/proc/set_frequency(new_frequency) radio_controller.remove_object(src, frequency) diff --git a/code/__defines/machinery.dm b/code/__defines/machinery.dm index 59029f508..3a494d6f5 100644 --- a/code/__defines/machinery.dm +++ b/code/__defines/machinery.dm @@ -78,3 +78,6 @@ #define TELECOMMS_RECEPTION_SENDER 1 #define TELECOMMS_RECEPTION_RECEIVER 2 #define TELECOMMS_RECEPTION_BOTH 3 + +#define FRAME_COMPUTER 1 +#define FRAME_LAPTOP 2 diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index b08c21083..4fafcd5a5 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -223,7 +223,7 @@ name = "DNA Modifier Access Console" desc = "Scand DNA." icon = 'icons/obj/computer.dmi' - icon_state = "scanner" + screen_icon = "scanner" density = 1 circuit = /obj/item/weapon/circuitboard/scan_consolenew var/selected_ui_block = 1.0 @@ -277,17 +277,6 @@ 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++) @@ -317,15 +306,6 @@ I.buf = buffer return 1 -/* -/obj/machinery/computer/scan_consolenew/process() //not really used right now - if(stat & (NOPOWER|BROKEN)) - return - if (!( src.status )) //remove this - return - return -*/ - /obj/machinery/computer/scan_consolenew/attack_ai(user as mob) src.add_hiddenprint(user) ui_interact(user) diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm index 25fb0a398..f8cd4349b 100644 --- a/code/game/machinery/PDApainter.dm +++ b/code/game/machinery/PDApainter.dm @@ -111,9 +111,4 @@ storedpda = null update_icon() else - usr << SPAN_NOTE("The [src] is empty.") - - -/obj/machinery/pdapainter/power_change() - ..() - update_icon() \ No newline at end of file + usr << SPAN_NOTE("The [src] is empty.") \ No newline at end of file diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 957f5eff4..844e2cfe1 100755 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -144,8 +144,7 @@ if(prob(50)) qdel(src) -/obj/machinery/body_scanconsole/power_change() - ..() +/obj/machinery/body_scanconsole/update_icon() if(stat & BROKEN) icon_state = "body_scannerconsole-p" else diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm index 387d3e995..bf5e49704 100644 --- a/code/game/machinery/ai_slipper.dm +++ b/code/game/machinery/ai_slipper.dm @@ -20,10 +20,6 @@ ..() update_icon() -/obj/machinery/ai_slipper/power_change() - ..() - update_icon() - /obj/machinery/ai_slipper/update_icon() if (stat & NOPOWER || stat & BROKEN) icon_state = "motion0" diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index df37db797..0f1b1159a 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -842,11 +842,6 @@ return ..() -/obj/machinery/alarm/power_change() - ..() - spawn(rand(0,15)) - update_icon() - /obj/machinery/alarm/examine(mob/user) . = ..() if (buildstage < 2) @@ -1001,13 +996,6 @@ FIRE ALARM if(locate(/obj/fire) in loc) alarm() - return - -/obj/machinery/firealarm/power_change() - ..() - spawn(rand(0,15)) - update_icon() - /obj/machinery/firealarm/attack_hand(mob/user as mob) if(user.stat || stat & (NOPOWER|BROKEN)) return diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/arcade.dm similarity index 88% rename from code/game/machinery/computer/arcade.dm rename to code/game/machinery/arcade.dm index d90718ab0..eaeae0405 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/arcade.dm @@ -1,8 +1,9 @@ -/obj/machinery/computer/arcade +/obj/machinery/arcade name = "arcade machine" desc = "Does not support pinball." - icon = 'icons/obj/computer.dmi' + icon = 'icons/obj/machinery.dmi' icon_state = "arcade" + density = TRUE circuit = /obj/item/weapon/circuitboard/arcade var/enemy_name = "Space Villian" var/temp = "Winners Don't Use Spacedrugs" //Temporary message, for attack messages, etc @@ -39,10 +40,10 @@ /obj/item/toy/cultsword = 1 ) -/obj/machinery/computer/arcade +/obj/machinery/arcade var/turtle = 0 -/obj/machinery/computer/arcade/New() +/obj/machinery/arcade/New() ..() var/name_action var/name_part1 @@ -57,10 +58,10 @@ src.name = (name_action + name_part1 + name_part2) -/obj/machinery/computer/arcade/attack_ai(mob/user as mob) +/obj/machinery/arcade/attack_ai(mob/user as mob) return src.attack_hand(user) -/obj/machinery/computer/arcade/attack_hand(mob/user as mob) +/obj/machinery/arcade/attack_hand(mob/user as mob) if(..()) return user.set_machine(src) @@ -83,7 +84,7 @@ onclose(user, "arcade") return -/obj/machinery/computer/arcade/Topic(href, href_list) +/obj/machinery/arcade/Topic(href, href_list) if(..()) return 1 @@ -148,7 +149,7 @@ src.updateUsrDialog() return -/obj/machinery/computer/arcade/proc/arcade_action() +/obj/machinery/arcade/proc/arcade_action() if ((src.enemy_mp <= 0) || (src.enemy_hp <= 0)) if(!gameover) src.gameover = 1 @@ -212,7 +213,7 @@ return -/obj/machinery/computer/arcade/battle/emag_act(var/charges, var/mob/user) +/obj/machinery/arcade/battle/emag_act(var/charges, var/mob/user) if(!emagged) temp = "If you die in the game, you die for real!" player_hp = 30 @@ -231,7 +232,7 @@ src.updateUsrDialog() -/obj/machinery/computer/arcade/emp_act(severity) +/obj/machinery/arcade/emp_act(severity) if(stat & (NOPOWER|BROKEN)) ..(severity) return @@ -246,4 +247,21 @@ empprize = pickweight(prizes) new empprize(src.loc) - ..(severity) \ No newline at end of file + ..(severity) + +/obj/machinery/arcade/attackby(obj/item/I, mob/living/user) + if(default_deconstruction_screwdriver(user, I)) + return + if(default_deconstruction_crowbar(user, I)) + return + if(default_part_replacement(user, I)) + return + return ..() + +/obj/machinery/arcade/update_icon() + if(stat & BROKEN) + icon_state = "arcade_broken" + else if(stat & NOPOWER) + icon_state = "arcade_nopower" + else + icon_state = initial(icon_state) \ No newline at end of file diff --git a/code/game/machinery/atmo_control.dm b/code/game/machinery/atmo_control.dm index f2df9305d..d88882d81 100644 --- a/code/game/machinery/atmo_control.dm +++ b/code/game/machinery/atmo_control.dm @@ -23,6 +23,7 @@ var/datum/radio_frequency/radio_connection /obj/machinery/air_sensor/update_icon() + ..() icon_state = "gsensor[on]" /obj/machinery/air_sensor/process() @@ -74,7 +75,7 @@ obj/machinery/air_sensor/Destroy() /obj/machinery/computer/general_air_control icon = 'icons/obj/computer.dmi' - icon_state = "tank" + screen_icon = "tank" name = "Computer" @@ -158,7 +159,7 @@ obj/machinery/computer/general_air_control/Destroy() /obj/machinery/computer/general_air_control/large_tank_control icon = 'icons/obj/computer.dmi' - icon_state = "tank" + screen_icon = "tank" frequency = 1441 var/input_tag @@ -278,7 +279,7 @@ Max Output Pressure: [output_pressure] kPa
"} /obj/machinery/computer/general_air_control/supermatter_core icon = 'icons/obj/computer.dmi' - icon_state = "tank" + screen_icon = "tank" frequency = 1438 var/input_tag @@ -398,7 +399,7 @@ Min Core Pressure: [pressure_limit] kPa
"} /obj/machinery/computer/general_air_control/fuel_injection icon = 'icons/obj/computer.dmi' - icon_state = "atmos" + screen_icon = "atmos" var/device_tag var/list/device_info diff --git a/code/game/machinery/atmoalter/area_atmos_computer.dm b/code/game/machinery/atmoalter/area_atmos_computer.dm index 6c736f996..6fe08d3d6 100644 --- a/code/game/machinery/atmoalter/area_atmos_computer.dm +++ b/code/game/machinery/atmoalter/area_atmos_computer.dm @@ -1,7 +1,7 @@ /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" + screen_icon = "area_atmos" light_color = "#e6ffff" circuit = /obj/item/weapon/circuitboard/area_atmos diff --git a/code/game/machinery/atmoalter/scrubber.dm b/code/game/machinery/atmoalter/scrubber.dm index 0fb777db6..433231a6a 100644 --- a/code/game/machinery/atmoalter/scrubber.dm +++ b/code/game/machinery/atmoalter/scrubber.dm @@ -169,19 +169,13 @@ usr << SPAN_NOTE("You can't directly interact with this machine. Use the scrubber control console.") /obj/machinery/portable_atmospherics/powered/scrubber/huge/update_icon() - src.overlays = 0 + src.overlays.Cut() if(on && !(stat & (NOPOWER|BROKEN))) icon_state = "scrubber:1" else icon_state = "scrubber:0" -/obj/machinery/portable_atmospherics/powered/scrubber/huge/power_change() - var/old_stat = stat - ..() - if (old_stat != stat) - update_icon() - /obj/machinery/portable_atmospherics/powered/scrubber/huge/process() if(!on || (stat & (NOPOWER|BROKEN))) update_use_power(0) diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm index 46f231326..eebe2d22b 100644 --- a/code/game/machinery/computer/Operating.dm +++ b/code/game/machinery/computer/Operating.dm @@ -4,7 +4,7 @@ name = "patient monitoring console" density = 1 anchored = 1.0 - icon_state = "operating" + screen_icon = "operating" light_color = "#315ab4" circuit = /obj/item/weapon/circuitboard/operating var/mob/living/carbon/human/victim = null diff --git a/code/game/machinery/computer/RCON_Console.dm b/code/game/machinery/computer/RCON_Console.dm index cf275eb5c..9c5a104d3 100644 --- a/code/game/machinery/computer/RCON_Console.dm +++ b/code/game/machinery/computer/RCON_Console.dm @@ -8,7 +8,7 @@ name = "\improper RCON console" desc = "Console used to remotely control machinery on the station." icon = 'icons/obj/computer.dmi' - icon_state = "ai-fixer" + screen_icon = "ai-fixer" light_color = "#a97faa" circuit = /obj/item/weapon/circuitboard/rcon_console req_one_access = list(access_engine) diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index f26fcd1cb..4e57399d8 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -1,7 +1,7 @@ /obj/machinery/computer/aifixer name = "\improper AI system integrity restorer" icon = 'icons/obj/computer.dmi' - icon_state = "ai-fixer" + screen_icon = "ai-fixer" light_color = "#a97faa" circuit = /obj/item/weapon/circuitboard/aifixer req_one_access = list(access_robotics, access_heads) @@ -130,15 +130,13 @@ /obj/machinery/computer/aifixer/update_icon() ..() - overlays.Cut() - - if((stat & BROKEN) || (stat & NOPOWER)) + if(stat & (BROKEN|NOPOWER)) return if(occupant) if(occupant.stat) - overlays += image('icons/obj/computer.dmi', "ai-fixer-404") + overlays += "ai-fixer-404" else - overlays += image('icons/obj/computer.dmi', "ai-fixer-full") + overlays += "ai-fixer-full" else - overlays += image('icons/obj/computer.dmi', "ai-fixer-empty") + overlays += "ai-fixer-empty" diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm index 12a316334..cdeb853aa 100644 --- a/code/game/machinery/computer/atmos_alert.dm +++ b/code/game/machinery/computer/atmos_alert.dm @@ -8,7 +8,7 @@ var/global/list/minor_air_alarms = list() name = "atmospheric alert computer" desc = "Used to access the station's atmospheric sensors." circuit = /obj/item/weapon/circuitboard/atmos_alert - icon_state = "alert:0" + screen_icon = "alert:0" light_color = "#e6ffff" /obj/machinery/computer/atmos_alert/New() @@ -44,19 +44,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" + screen_icon = "alert:2" else - icon_state = initial(icon_state) - return + alarms = atmosphere_alarm.minor_alarms() + if(alarms.len) + screen_icon = "alert:1" + else + screen_icon = initial(screen_icon) + ..() /obj/machinery/computer/atmos_alert/Topic(href, href_list) if(..()) diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm index a467b20b0..c00c3dd53 100644 --- a/code/game/machinery/computer/atmos_control.dm +++ b/code/game/machinery/computer/atmos_control.dm @@ -5,7 +5,7 @@ /obj/machinery/computer/atmoscontrol name = "\improper Central Atmospherics Computer" icon = 'icons/obj/computer.dmi' - icon_state = "computer_generic" + screen_icon = "computer_generic" light_color = "#00b000" density = 1 anchored = 1.0 diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index a7e089b65..1a9a99565 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -1,5 +1,7 @@ //This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 +#define SECURED 1 + /obj/structure/computerframe density = 1 anchored = 0 @@ -7,107 +9,157 @@ icon = 'icons/obj/stock_parts.dmi' icon_state = "0" var/state = 0 + var/frame_type = FRAME_COMPUTER var/obj/item/weapon/circuitboard/circuit = null -// weight = 1.0E8 + var/obj/item/stack/material/glass = null + var/obj/item/stack/cable_coil/wire = null + +/obj/structure/computerframe/laptop + frame_type = FRAME_LAPTOP + icon_state = "laptop" + +/obj/structure/computerframe/New() + ..() + update_icon() + +/obj/structure/computerframe/update_icon() + var/frame = "computer" + if(frame_type == FRAME_LAPTOP) + density = FALSE + pass_flags |= PASSTABLE + frame = "laptop" + else + density = TRUE + pass_flags &= ~PASSTABLE + + overlays.Cut() + if(wire) + overlays += "[frame]_wire" + if(circuit) + if(state&SECURED) + overlays += "[frame]_secured" + else + overlays += "[frame]_circuit" + if(glass) + overlays += "[frame]_glass" + /obj/structure/computerframe/attackby(obj/item/P as obj, mob/user as mob) - switch(state) - if(0) - if(istype(P, /obj/item/weapon/wrench)) - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - if(do_after(user, 20, src)) + if(!circuit) + if(istype(P, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = P + if(!WT.remove_fuel(0, user)) + user << "The welding tool must be on to complete this task." + return + playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) + if(do_after(user, 20, src)) + if(!src || !WT.isOn()) return + user << SPAN_NOTE("You deconstruct the frame.") + new /obj/item/stack/material/steel( src.loc, 5 ) + qdel(src) + + else if(istype(P, /obj/item/weapon/wrench)) + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + if(do_after(user, 20, src)) + src.anchored = !src.anchored + if(anchored) user << SPAN_NOTE("You wrench the frame into place.") - src.anchored = 1 - src.state = 1 - if(istype(P, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = P - if(!WT.remove_fuel(0, user)) - user << "The welding tool must be on to complete this task." - return - playsound(src.loc, 'sound/items/Welder.ogg', 50, 1) - if(do_after(user, 20, src)) - if(!src || !WT.isOn()) return - user << SPAN_NOTE("You deconstruct the frame.") - new /obj/item/stack/material/steel( src.loc, 5 ) - qdel(src) - if(1) - if(istype(P, /obj/item/weapon/wrench)) - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - if(do_after(user, 20, src)) + else user << SPAN_NOTE("You unfasten the frame.") - src.anchored = 0 - src.state = 0 - if(istype(P, /obj/item/weapon/circuitboard) && !circuit) - var/obj/item/weapon/circuitboard/B = P - if(B.board_type == "computer") + else if(istype(P, /obj/item/weapon/circuitboard) && !circuit) + var/obj/item/weapon/circuitboard/B = P + if(B.board_type == "computer") + playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) + user << SPAN_NOTE("You place the circuit board inside the frame.") + src.circuit = P + user.unEquip(P, src) + else + user << SPAN_WARN("This frame does not accept circuit boards of this type!") + + else // circuit exist + if(glass) + if(istype(P, /obj/item/weapon/crowbar)) + playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1) + user << SPAN_NOTE("You remove the glass panel.") + glass.forceMove(loc) + glass = null + + if(istype(P, /obj/item/weapon/screwdriver)) + playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) + user << SPAN_NOTE("You connect the monitor.") + var/obj/machinery/computer/B = new src.circuit.build_path(src.loc) + B.circuit = circuit + circuit = null + B.circuit.construct(B) + B.frame = frame_type + B.update_icon() + qdel(src) + return + else // No glass + + if(wire) + if(istype(P, /obj/item/weapon/wirecutters)) + playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1) + user << SPAN_NOTE("You remove the cables.") + wire.forceMove(loc) + wire = null + else + if(istype(P, /obj/item/stack/cable_coil)) + var/obj/item/stack/cable_coil/C = P + if (C.get_amount() < 5) + user << SPAN_WARN("You need five coils of wire to add them to the frame.") + return + user << SPAN_NOTE("You start to add cables to the frame.") playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - user << SPAN_NOTE("You place the circuit board inside the frame.") - src.icon_state = "1" - src.circuit = P - user.drop_from_inventory(P, src) - else - user << SPAN_WARN("This frame does not accept circuit boards of this type!") - if(istype(P, /obj/item/weapon/screwdriver) && circuit) + if(do_after(user, 20, src) && !wire) + if(C.get_amount() >= 5) + wire = C.split(5) + user << SPAN_NOTE("You add cables to the frame.") + + if(istype(P, /obj/item/weapon/screwdriver)) playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - user << SPAN_NOTE("You screw the circuit board into place.") - src.state = 2 - src.icon_state = "2" - if(istype(P, /obj/item/weapon/crowbar) && circuit) + if(state&SECURED) + state &= ~SECURED + user << SPAN_NOTE("You unfasten the circuit board.") + else + state |= SECURED + user << SPAN_NOTE("You screw the circuit board into place.") + else if(istype(P, /obj/item/weapon/crowbar)) playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1) user << SPAN_NOTE("You remove the circuit board.") - src.state = 1 - src.icon_state = "0" - circuit.loc = src.loc + src.circuit.forceMove(src.loc) src.circuit = null - if(2) - if(istype(P, /obj/item/weapon/screwdriver) && circuit) - playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - user << SPAN_NOTE("You unfasten the circuit board.") - src.state = 1 - src.icon_state = "1" - if(istype(P, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/C = P - if (C.get_amount() < 5) - user << SPAN_WARN("You need five coils of wire to add them to the frame.") - return - user << SPAN_NOTE("You start to add cables to the frame.") - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - if(do_after(user, 20, src) && state == 2) - if (C.use(5)) - user << SPAN_NOTE("You add cables to the frame.") - state = 3 - icon_state = "3" - if(3) - if(istype(P, /obj/item/weapon/wirecutters)) - playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1) - user << SPAN_NOTE("You remove the cables.") - src.state = 2 - src.icon_state = "2" - var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil(src.loc) - A.amount = 5 - - if(ismaterial(P) && P.get_material_name() == MATERIAL_GLASS) + + else if(ismaterial(P) && P.get_material_name() == MATERIAL_GLASS) var/obj/item/stack/G = P if (G.get_amount() < 2) user << SPAN_WARN("You need two sheets of glass to put in the glass panel.") return playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) user << SPAN_NOTE("You start to put in the glass panel.") - if(do_after(user, 20, src) && state == 3) - if (G.use(2)) + if(do_after(user, 20, src)) + if(G.get_amount() >= 2) + glass = G.split(2) user << SPAN_NOTE("You put in the glass panel.") - src.state = 4 - src.icon_state = "4" - if(4) - if(istype(P, /obj/item/weapon/crowbar)) - playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1) - user << SPAN_NOTE("You remove the glass panel.") - src.state = 3 - src.icon_state = "3" - new /obj/item/stack/material/glass(src.loc, 2) - if(istype(P, /obj/item/weapon/screwdriver)) - playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - user << SPAN_NOTE("You connect the monitor.") - var/B = new src.circuit.build_path(src.loc) - src.circuit.construct(B) - qdel(src) + update_icon() + + +/obj/structure/computerframe/deconstruct + anchored = TRUE + state = SECURED + +/obj/structure/computerframe/deconstruct/New(loc, obj/machinery/computer/Computer) + wire = new(src, 5) + if(!istype(Computer)) + return + circuit = Computer.circuit + circuit.forceMove(src) + circuit.deconstruct(Computer) + Computer.circuit = null + frame_type = Computer.frame + ..() + +/obj/structure/computerframe/deconstruct/with_glass/New(loc, obj/machinery/computer/Computer) + if(istype(Computer) && !Computer.stat|BROKEN) + glass = new /obj/item/stack/material/glass(src, 2) + ..() diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 484f4498d..097595c98 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -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" + screen_icon = "cameras" + screen_broken = "broken_red" light_color = "#a91515" var/obj/machinery/camera/current = null var/last_pic = 1.0 @@ -208,24 +209,34 @@ circuit = null /obj/machinery/computer/security/telescreen/update_icon() - icon_state = initial(icon_state) - if(stat & BROKEN) - icon_state += "b" - return + if(stat&BROKEN) + icon_state = "[initial(icon_state)]_broken" + else + icon_state = initial(icon_state) + /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_state = "frame" + screen_icon = "frame" light_color = "#FFEEDB" light_range_on = 2 circuit = null +/obj/machinery/computer/security/telescreen/entertainment/update_icon() + overlays.Cut() + if(stat&NOPOWER) + return + overlays += "entertainment" + /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 = "old_tv" + screen_icon = "detective" + screen_broken = "detective_broken" circuit = null light_color = "#3848B3" light_power_on = 0.5 @@ -233,7 +244,7 @@ /obj/machinery/computer/security/mining name = "outpost camera monitor" desc = "Used to access the various cameras on the outpost." - icon_state = "miningcameras" + screen_icon = "miningcameras" network = list("MINE") circuit = /obj/item/weapon/circuitboard/security/mining light_color = "#F9BBFC" @@ -241,7 +252,7 @@ /obj/machinery/computer/security/engineering name = "engineering camera monitor" desc = "Used to monitor fires and breaches." - icon_state = "engineeringcameras" + screen_icon = "engineeringcameras" circuit = /obj/item/weapon/circuitboard/security/engineering light_color = "#FAC54B" @@ -253,13 +264,13 @@ /obj/machinery/computer/security/nuclear name = "head mounted camera monitor" desc = "Used to access the built-in cameras in helmets." - icon_state = "syndicam" + screen_icon = "syndicam" network = list("NUKE") circuit = null /obj/machinery/computer/security/ert name = "head mounted camera monitor(ERT)" desc = "Used to access the built-in cameras in helmets." - icon_state = "cameras" + screen_icon = "cameras" network = list("ERT") circuit = null \ No newline at end of file diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 9a6ccef07..40eb19725 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -3,7 +3,7 @@ /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" + screen_icon = "id" light_color = "#0099ff" req_access = list(access_change_ids) circuit = /obj/item/weapon/circuitboard/card diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index debc74ad4..ee65ebc5d 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -1,7 +1,7 @@ /obj/machinery/computer/cloning name = "cloning control console" icon = 'icons/obj/computer.dmi' - icon_state = "dna" + screen_icon = "dna" light_color = "#315ab4" circuit = /obj/item/weapon/circuitboard/cloning req_access = list(access_heads) //Only used for record deletion right now. @@ -411,15 +411,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 diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 47f06805c..3a72bfac6 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -4,7 +4,7 @@ /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" + screen_icon = "comm" light_color = "#0099ff" req_access = list(access_heads) circuit = /obj/item/weapon/circuitboard/communications diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index ad82e0190..ce958cc90 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -1,11 +1,18 @@ +#define COMPUTER_ICON 'icons/obj/computer.dmi' +#define LAPTOP_ICON 'icons/obj/computer_laptop.dmi' + /obj/machinery/computer name = "computer" icon = 'icons/obj/computer.dmi' + icon_state = "computer" + var/screen_icon = "broken" + var/screen_broken = "broken" density = 1 anchored = 1.0 use_power = 1 idle_power_usage = 300 active_power_usage = 300 + var/frame = FRAME_COMPUTER var/processing = 0 var/light_range_on = 3 @@ -20,17 +27,15 @@ 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/smoke_spread/smoke = PoolOrNew(/datum/effect/effect/system/smoke_spread) smoke.set_up(5, 0, src) smoke.start() - return /obj/machinery/computer/emp_act(severity) - if(prob(20/severity)) set_broken() + if(prob(20/severity)) + set_broken() ..() @@ -44,13 +49,9 @@ qdel(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 @@ -66,30 +67,31 @@ /obj/machinery/computer/blob_act() if (prob(75)) - for(var/x in verbs) - verbs -= x set_broken() /obj/machinery/computer/update_icon() - ..() + if(frame == FRAME_LAPTOP) + icon = LAPTOP_ICON + density = FALSE + else + icon = COMPUTER_ICON + density = TRUE icon_state = initial(icon_state) + overlays.Cut() + // Broken if(stat & BROKEN) - icon_state += "b" + overlays += screen_broken - // Powered + // Unpowered else if(stat & NOPOWER) - icon_state = initial(icon_state) - icon_state += "0" - - - -/obj/machinery/computer/power_change() - ..() - update_icon() - if(stat & NOPOWER) set_light(0) + else + if(screen_icon in icon_states(icon)) + overlays += screen_icon + else + overlays += "computer_generic" set_light(light_range_on, light_power_on) @@ -115,22 +117,17 @@ if(istype(I, /obj/item/weapon/screwdriver) && circuit) playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) if(do_after(user, 20)) - var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc ) - circuit.forceMove(A) - A.circuit = circuit - A.anchored = 1 + new /obj/structure/computerframe/deconstruct(src.loc, src) for (var/obj/C in src) C.loc = src.loc if (src.stat & BROKEN) user << SPAN_NOTE("The broken glass falls out.") new /obj/item/weapon/material/shard( src.loc ) - A.state = 3 - A.icon_state = "3" else user << SPAN_NOTE("You disconnect the monitor.") - A.state = 4 - A.icon_state = "4" - circuit.deconstruct(src) qdel(src) else ..() + +#undef COMPUTER_ICON +#undef LAPTOP_ICON \ No newline at end of file diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 959341a92..a1d142bfe 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -1,7 +1,7 @@ /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" + screen_icon = "crew" light_color = "#315ab4" use_power = 1 idle_power_usage = 250 @@ -28,17 +28,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) diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm index d411ae7c3..24e18d4a3 100644 --- a/code/game/machinery/computer/law.dm +++ b/code/game/machinery/computer/law.dm @@ -3,7 +3,7 @@ /obj/machinery/computer/aiupload name = "\improper AI upload console" desc = "Used to upload laws to the AI." - icon_state = "command" + screen_icon = "command" circuit = /obj/item/weapon/circuitboard/aiupload var/mob/living/silicon/ai/current = null var/opened = 0 @@ -58,7 +58,7 @@ /obj/machinery/computer/borgupload name = "cyborg upload console" desc = "Used to upload laws to Cyborgs." - icon_state = "command" + screen_icon = "command" circuit = /obj/item/weapon/circuitboard/borgupload var/mob/living/silicon/robot/current = null diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 7e08d18d3..fb06a88eb 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -3,7 +3,7 @@ /obj/machinery/computer/med_data//TODO:SANITY name = "medical records console" desc = "Used to view, edit and maintain medical records." - icon_state = "medcomp" + screen_icon = "medcomp" light_color = "#315ab4" req_one_access = list(access_medical, access_forensics_lockers) circuit = /obj/item/weapon/circuitboard/med_data @@ -537,5 +537,5 @@ /obj/machinery/computer/med_data/laptop name = "Medical Laptop" desc = "Cheap Nanotrasen Laptop." - icon_state = "medlaptop" - density = 0 + icon = 'icons/obj/computer_laptop.dmi' + frame = FRAME_LAPTOP diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm index c789f48ea..997a51ac8 100644 --- a/code/game/machinery/computer/message.dm +++ b/code/game/machinery/computer/message.dm @@ -3,7 +3,7 @@ /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" + screen_icon = "comm_logs" light_color = "#00b000" var/hack_icon = "comm_logsc" var/normal_icon = "comm_logs" @@ -66,13 +66,12 @@ user << SPAN_NOTE("A no server error appears on the screen.") /obj/machinery/computer/message_monitor/update_icon() + if( !(stat & (NOPOWER|BROKEN)) ) + if(emag || hacking) + screen_icon = hack_icon + else + screen_icon = normal_icon ..() - if(stat & (NOPOWER|BROKEN)) - return - if(emag || hacking) - icon_state = hack_icon - else - icon_state = normal_icon /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. diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index 6ab2bf2ca..a7693faa3 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -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" + screen_icon = "computer_generic" light_color = "#00b000" circuit = /obj/item/weapon/circuitboard/pod var/id = 1.0 @@ -192,12 +192,18 @@ return - /obj/machinery/computer/pod/old icon_state = "old" name = "DoorMex Control Computer" title = "Door Controls" +/obj/machinery/computer/pod/old/update_icon() + if(stat&BROKEN) + icon_state = "old_broken" + else if(stat&NOPOWER) + icon_state = "old_nopower" + else + icon_state = "old" /obj/machinery/computer/pod/old/syndicate @@ -215,4 +221,4 @@ /obj/machinery/computer/pod/old/swf name = "Magix System IV" - desc = "An arcane artifact that holds much magic. Running E-Knock 2.2: Sorceror's Edition" + desc = "An arcane artifact that holds much magic. Running E-Knock 2.2: Sorceror's Edition" \ No newline at end of file diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm index 1d4784905..27f782425 100644 --- a/code/game/machinery/computer/prisoner.dm +++ b/code/game/machinery/computer/prisoner.dm @@ -3,7 +3,8 @@ /obj/machinery/computer/prisoner name = "prisoner management console" icon = 'icons/obj/computer.dmi' - icon_state = "explosive" + screen_icon = "explosive" + screen_broken = "broken_red" light_color = "#a91515" req_access = list(access_armory) circuit = /obj/item/weapon/circuitboard/prisoner diff --git a/code/game/machinery/computer/prisonshuttle.dm b/code/game/machinery/computer/prisonshuttle.dm index c2166e866..dd1a2e8f3 100644 --- a/code/game/machinery/computer/prisonshuttle.dm +++ b/code/game/machinery/computer/prisonshuttle.dm @@ -13,7 +13,7 @@ var/prison_shuttle_timeleft = 0 /obj/machinery/computer/prison_shuttle name = "prison shuttle control console" icon = 'icons/obj/computer.dmi' - icon_state = "shuttle" + screen_icon = "shuttle" light_color = "#00ffff" req_access = list(access_security) circuit = /obj/item/weapon/circuitboard/prison_shuttle diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index 901f21c59..167558148 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -4,7 +4,7 @@ name = "robotics control console" desc = "Used to remotely lockdown or detonate linked cyborgs." icon = 'icons/obj/computer.dmi' - icon_state = "robot" + screen_icon = "robot" light_color = "#a97faa" req_access = list(access_robotics) circuit = /obj/item/weapon/circuitboard/robotics diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index c308cc748..d53b3e3c8 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -3,7 +3,8 @@ /obj/machinery/computer/secure_data//TODO:SANITY name = "security records console" desc = "Used to view, edit and maintain security records" - icon_state = "security" + screen_icon = "security" + screen_broken = "broken_red" light_color = "#a91515" req_one_access = list(access_security, access_forensics_lockers, access_lawyer) circuit = /obj/item/weapon/circuitboard/secure_data @@ -629,7 +630,7 @@ What a mess.*/ if(1) R.fields["name"] = "[pick(pick(first_names_male), pick(first_names_female))] [pick(last_names)]" if(2) - R.fields["sex"] = pick("Male", "Female") + R.fields["sex"] = pick("Male", "Female") if(3) R.fields["age"] = rand(5, 85) if(4) diff --git a/code/game/machinery/computer/shuttle.dm b/code/game/machinery/computer/shuttle.dm index 327b487be..f701387e8 100644 --- a/code/game/machinery/computer/shuttle.dm +++ b/code/game/machinery/computer/shuttle.dm @@ -1,7 +1,7 @@ /obj/machinery/computer/shuttle name = "Shuttle" desc = "For shuttle control." - icon_state = "shuttle" + screen_icon = "shuttle" light_color = "#00ffff" var/auth_need = 3.0 var/list/authorized = list( ) diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm index 215571581..ffe8e5e8f 100644 --- a/code/game/machinery/computer/skills.dm +++ b/code/game/machinery/computer/skills.dm @@ -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" + screen_icon = "medlaptop" light_color = "#00b000" req_one_access = list(access_heads) circuit = /obj/item/weapon/circuitboard/skills + frame = FRAME_LAPTOP + icon = 'icons/obj/computer_laptop.dmi' var/obj/item/weapon/card/id/scan = null var/authenticated = null var/rank = null @@ -49,8 +51,7 @@ if (authenticated) switch(screen) if(1.0) - dat += {" -

"} + dat += "

" dat += text("Search Records
", src) dat += text("New Record
", src) dat += {" diff --git a/code/game/machinery/computer/specops_shuttle.dm b/code/game/machinery/computer/specops_shuttle.dm index fe2944381..033380bd4 100644 --- a/code/game/machinery/computer/specops_shuttle.dm +++ b/code/game/machinery/computer/specops_shuttle.dm @@ -14,7 +14,7 @@ var/specops_shuttle_timeleft = 0 /obj/machinery/computer/specops_shuttle name = "special operations shuttle control console" icon = 'icons/obj/computer.dmi' - icon_state = "shuttle" + screen_icon = "shuttle" light_color = "#00ffff" req_access = list(access_cent_specops) // req_access = list(ACCESS_CENT_SPECOPS) diff --git a/code/game/machinery/computer/station_alert.dm b/code/game/machinery/computer/station_alert.dm index c98b47eac..398422c7e 100644 --- a/code/game/machinery/computer/station_alert.dm +++ b/code/game/machinery/computer/station_alert.dm @@ -2,7 +2,7 @@ /obj/machinery/computer/station_alert name = "Station Alert Console" desc = "Used to access the station's automated alert system." - icon_state = "alert:0" + screen_icon = "alert:0" light_color = "#e6ffff" circuit = /obj/item/weapon/circuitboard/stationalert_engineering var/obj/nano_module/alarm_monitor/alarm_monitor @@ -44,13 +44,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) + screen_icon = "alert:2" + else + screen_icon = initial(screen_icon) ..() - 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 diff --git a/code/game/machinery/computer/supply.dm b/code/game/machinery/computer/supply.dm index 157311c07..90a9d0bd5 100644 --- a/code/game/machinery/computer/supply.dm +++ b/code/game/machinery/computer/supply.dm @@ -1,7 +1,7 @@ /obj/machinery/computer/order name = "supply ordering console" icon = 'icons/obj/computer.dmi' - icon_state = "request" + screen_icon = "request" circuit = /obj/item/weapon/circuitboard/order var/datum/shuttle/ferry/supply/shuttle var/temp = null @@ -12,7 +12,7 @@ /obj/machinery/computer/order/supply name = "supply control console" icon = 'icons/obj/computer.dmi' - icon_state = "supply" + screen_icon = "supply" light_color = "#b88b2e" req_access = list(access_cargo) circuit = /obj/item/weapon/circuitboard/order/supply diff --git a/code/game/machinery/computer/syndicate_specops_shuttle.dm b/code/game/machinery/computer/syndicate_specops_shuttle.dm index e22f765fb..d3c50043a 100644 --- a/code/game/machinery/computer/syndicate_specops_shuttle.dm +++ b/code/game/machinery/computer/syndicate_specops_shuttle.dm @@ -13,7 +13,7 @@ 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" + screen_icon = "syndishuttle" light_color = "#00ffff" req_access = list(access_cent_specops) var/temp = null diff --git a/code/game/machinery/computer3/lapvend.dm b/code/game/machinery/computer3/lapvend.dm index 43a5a5aba..40d17ed15 100644 --- a/code/game/machinery/computer3/lapvend.dm +++ b/code/game/machinery/computer3/lapvend.dm @@ -24,9 +24,6 @@ ..() spawn(4) power_change() - return - return - /obj/machinery/lapvend/blob_act() if (prob(50)) diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 0cd0f3bdf..ffffe06cf 100755 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -28,6 +28,12 @@ var/storage_name = "Cryogenic Oversight Control" var/allow_items = 1 +/obj/machinery/computer/cryopod/update_icon() + if(stat&(BROKEN|NOPOWER)) + icon_state = "cellconsole-p" + else + icon_state = "cellconsole" + /obj/machinery/computer/cryopod/robot name = "robotic storage console" desc = "An interface between crew and the robotic storage systems" @@ -39,6 +45,9 @@ storage_name = "Robotic Storage Control" allow_items = 0 +/obj/machinery/computer/cryopod/robot/update_icon() + icon_state = "console" + /obj/machinery/computer/cryopod/attack_ai() src.attack_hand() diff --git a/code/game/machinery/door_control.dm b/code/game/machinery/door_control.dm index 20af4111b..fb76c89ae 100755 --- a/code/game/machinery/door_control.dm +++ b/code/game/machinery/door_control.dm @@ -57,10 +57,6 @@ /obj/machinery/button/remote/proc/trigger() return -/obj/machinery/button/remote/power_change() - ..() - update_icon() - /obj/machinery/button/remote/update_icon() if(stat & NOPOWER) icon_state = "doorctrl-p" diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 821ea3a05..4b672fe08 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1071,7 +1071,6 @@ About the new airlock wires panel: // If we lost power, disable electrification // Keeping door lights on, runs on internal battery or something. electrified_until = 0 - update_icon() /obj/machinery/door/airlock/proc/prison_open() if(arePowerSystemsOn()) diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index fb642c641..0636ae4cc 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -82,13 +82,6 @@ return -// has the door power situation changed, if so update icon. -/obj/machinery/door_timer/power_change() - ..() - update_icon() - return - - // open/closedoor checks if door_timer has power, if so it checks if the // linked door is open/closed (by density) then opens it/closes it. diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm index 8846d9cd7..f9804d95f 100644 --- a/code/game/machinery/doppler_array.dm +++ b/code/game/machinery/doppler_array.dm @@ -39,8 +39,7 @@ var/list/doppler_arrays = list() audible_message("[src] states coldly, \"[message]\"") -/obj/machinery/doppler_array/power_change() - ..() +/obj/machinery/doppler_array/update_icon() if(stat & BROKEN) icon_state = "[initial(icon_state)]-broken" else diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index 3ef3de121..d6924b3bd 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -29,8 +29,7 @@ sleep(4) //<--- What the fuck are you doing? D= src.sd_SetLuminosity(2) */ -/obj/machinery/flasher/power_change() - ..() +/obj/machinery/flasher/update_icon() if ( !(stat & NOPOWER) ) icon_state = "[base_state]1" // src.sd_SetLuminosity(2) diff --git a/code/game/machinery/computer/guestpass.dm b/code/game/machinery/guestpass.dm similarity index 87% rename from code/game/machinery/computer/guestpass.dm rename to code/game/machinery/guestpass.dm index f44d88dda..d716c2ce4 100644 --- a/code/game/machinery/computer/guestpass.dm +++ b/code/game/machinery/guestpass.dm @@ -40,8 +40,9 @@ //Guest pass terminal//////////////////////// ///////////////////////////////////////////// -/obj/machinery/computer/guestpass +/obj/machinery/guestpass name = "guest pass terminal" + icon = 'icons/obj/machinery.dmi' icon_state = "guest" density = 0 @@ -55,23 +56,34 @@ var/list/internal_log = list() var/mode = 0 // 0 - making pass, 1 - viewing logs -/obj/machinery/computer/guestpass/New() +/obj/machinery/guestpass/New() ..() uid = "[rand(100,999)]-G[rand(10,99)]" -/obj/machinery/computer/guestpass/attackby(obj/O, mob/user) - if(istype(O, /obj/item/weapon/card/id)) - if(!giver) - user.drop_from_inventory(O, src) +/obj/machinery/guestpass/update_icon() + if(stat&BROKEN) + icon_state = "[initial(icon_state)]_broken" + else if(stat&NOPOWER) + icon_state = "[initial(icon_state)]_nopower" + else + icon_state = initial(icon_state) + +/obj/machinery/guestpass/attackby(obj/O, mob/user) + if(istype(O, /obj/item/weapon/card/id/guest)) + if(user.unEquip(O)) + user << SPAN_NOTE("[O] slips inside [src]!") + qdel(O) + else if(istype(O, /obj/item/weapon/card/id)) + if(!giver && user.unEquip(O, src)) giver = O updateUsrDialog() else - user << "There is already ID card inside." + user << SPAN_WARN("There is already ID card inside.") -/obj/machinery/computer/guestpass/attack_ai(var/mob/user as mob) +/obj/machinery/guestpass/attack_ai(var/mob/user as mob) return attack_hand(user) -/obj/machinery/computer/guestpass/attack_hand(var/mob/user as mob) +/obj/machinery/guestpass/attack_hand(var/mob/user as mob) if(..()) return @@ -104,7 +116,7 @@ onclose(user, "guestpass") -/obj/machinery/computer/guestpass/Topic(href, href_list) +/obj/machinery/guestpass/Topic(href, href_list) if(..()) return 1 usr.set_machine(src) diff --git a/code/game/machinery/holosign.dm b/code/game/machinery/holosign.dm index 631987102..a4847f500 100644 --- a/code/game/machinery/holosign.dm +++ b/code/game/machinery/holosign.dm @@ -27,6 +27,7 @@ icon_state = on_icon /obj/machinery/holosign/power_change() + ..() if (stat & NOPOWER) lit = 0 use_power = 0 diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm index 4c05648d0..67c3833ea 100644 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -32,10 +32,9 @@ /obj/machinery/igniter/New() ..() - icon_state = "igniter[on]" + update_icon() -/obj/machinery/igniter/power_change() - ..() +/obj/machinery/igniter/update_icon() if(!( stat & NOPOWER) ) icon_state = "igniter[src.on]" else @@ -58,18 +57,11 @@ active_power_usage = 4 -/obj/machinery/sparker/New() - ..() - -/obj/machinery/sparker/power_change() - ..() - if ( !(stat & NOPOWER) && disable == 0 ) - - icon_state = "[base_state]" -// src.sd_SetLuminosity(2) - else +/obj/machinery/sparker/update_icon() + if((stat&NOPOWER) || disable) icon_state = "[base_state]-p" -// src.sd_SetLuminosity(0) + else + icon_state = base_state /obj/machinery/sparker/attackby(obj/item/weapon/W as obj, mob/user as mob) if (istype(W, /obj/item/weapon/screwdriver)) @@ -88,8 +80,6 @@ /obj/machinery/sparker/attack_ai() if (src.anchored) return src.ignite() - else - return /obj/machinery/sparker/proc/ignite() if (!(powered())) diff --git a/code/game/machinery/kitchen/smartfridge.dm b/code/game/machinery/kitchen/smartfridge.dm index 4367a588c..d60482501 100644 --- a/code/game/machinery/kitchen/smartfridge.dm +++ b/code/game/machinery/kitchen/smartfridge.dm @@ -162,12 +162,6 @@ if(src.shoot_inventory && prob(2)) src.throw_item() -/obj/machinery/smartfridge/power_change() - var/old_stat = stat - ..() - if(old_stat != stat) - update_icon() - /obj/machinery/smartfridge/update_icon() if(stat & (BROKEN|NOPOWER)) icon_state = icon_off diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 588a7672e..204e83484 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -265,8 +265,8 @@ Class Procs: RefreshParts() -/obj/machinery/proc/RefreshParts() //Placeholder proc for machines that are built using frames. - return +//Placeholder proc for machines that are built using frames. +/obj/machinery/proc/RefreshParts() /obj/machinery/proc/assign_uid() uid = gl_uid diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 970ab5592..cc1e66e50 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -126,8 +126,6 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co desc = "A standard Nanotrasen-licensed newsfeed handler for use in commercial space stations. All the news you absolutely have no use for, in one place!" icon = 'icons/obj/terminals.dmi' icon_state = "newscaster_normal" - var/isbroken = 0 //1 if someone banged it with something heavy - var/ispowered = 1 //starts powered, changes with power_change() //var/list/datum/feed_channel/channel_list = list() //This list will contain the names of the feed channels. Each name will refer to a data region where the messages of the feed channels are stored. //OBSOLETE: We're now using a global news network var/screen = 0 //Or maybe I'll make it into a list within a list afterwards... whichever I prefer, go fuck yourselves :3 @@ -185,9 +183,9 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co ..() /obj/machinery/newscaster/update_icon() - if(!ispowered || isbroken) + if(stat&(NOPOWER|BROKEN)) icon_state = "newscaster_off" - if(isbroken) //If the thing is smashed, add crack overlay on top of the unpowered sprite. + if(stat&BROKEN) //If the thing is smashed, add crack overlay on top of the unpowered sprite. src.overlays.Cut() src.overlays += image(src.icon, "crack3") return @@ -207,44 +205,28 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co icon_state = "newscaster_normal" return -/obj/machinery/newscaster/power_change() - if(isbroken) //Broken shit can't be powered. - return - ..() - if( !(stat & NOPOWER) ) - src.ispowered = 1 - src.update_icon() - else - spawn(rand(0, 15)) - src.ispowered = 0 - src.update_icon() - - /obj/machinery/newscaster/ex_act(severity) switch(severity) if(1.0) qdel(src) return if(2.0) - src.isbroken=1 + stat |= BROKEN if(prob(50)) qdel(src) else src.update_icon() //can't place it above the return and outside the if-else. or we might get runtimes of null.update_icon() if(prob(50)) goes in. - return else if(prob(50)) - src.isbroken=1 + stat |= BROKEN src.update_icon() - return - return /obj/machinery/newscaster/attack_ai(mob/user as mob) return src.attack_hand(user) /obj/machinery/newscaster/attack_hand(mob/user as mob) //########### THE MAIN BEEF IS HERE! And in the proc below this...############ - if(!src.ispowered || src.isbroken) + if(stat & (NOPOWER|BROKEN)) return if(!user.IsAdvancedToolUser()) @@ -742,7 +724,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co /obj/machinery/newscaster/attackby(obj/item/I as obj, mob/user as mob) - if (src.isbroken) + if (stat&BROKEN) playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 100, 1) for (var/mob/O in hearers(5, src.loc)) O.show_message("[user.name] further abuses the shattered [src.name].") @@ -758,7 +740,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co if(src.hitstaken==3) for (var/mob/O in hearers(5, src.loc)) O.show_message("[user.name] smashes the [src.name]!" ) - src.isbroken=1 + src.stat |= BROKEN playsound(src.loc, 'sound/effects/Glassbr3.ogg', 100, 1) else for (var/mob/O in hearers(5, src.loc)) diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index 95e419a44..424575d26 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -261,15 +261,6 @@ var/list/turret_icons return 1 -/obj/machinery/porta_turret/power_change() - if(powered()) - stat &= ~NOPOWER - update_icon() - else - spawn(rand(0, 15)) - stat |= NOPOWER - update_icon() - /obj/machinery/porta_turret/attackby(obj/item/I, mob/user) if(stat & BROKEN) diff --git a/code/game/machinery/records_scanner.dm b/code/game/machinery/records_scanner.dm index fd7f1cbad..619ad2c86 100644 --- a/code/game/machinery/records_scanner.dm +++ b/code/game/machinery/records_scanner.dm @@ -27,11 +27,9 @@ obj/machinery/scanner/New() return use_power(50) -/obj/machinery/scanner/power_change() - ..() +/obj/machinery/scanner/update_icon() if(stat & NOPOWER) - spawn(rand(0, 15)) - icon_state = "scanner_off" + icon_state = "scanner_off" else icon_state = "scanner_idle" diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 7daeb866b..fffcfb8c4 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -57,10 +57,6 @@ var/list/obj/machinery/requests_console/allConsoles = list() light_range = 0 var/datum/announcement/announcement = new -/obj/machinery/requests_console/power_change() - ..() - update_icon() - /obj/machinery/requests_console/update_icon() if(stat & NOPOWER) if(icon_state != "req_comp_off") diff --git a/code/game/machinery/status_display_ai.dm b/code/game/machinery/status_display_ai.dm index abbfbffd7..43fd45f53 100644 --- a/code/game/machinery/status_display_ai.dm +++ b/code/game/machinery/status_display_ai.dm @@ -44,7 +44,7 @@ var/list/ai_status_emotions = list( if(istype(M, /obj/machinery/ai_status_display)) var/obj/machinery/ai_status_display/AISD = M AISD.emotion = emote - AISD.update() + AISD.update_icon() //if Friend Computer, change ALL displays else if(istype(M, /obj/machinery/status_display)) @@ -77,8 +77,8 @@ var/list/ai_status_emotions = list( /obj/machinery/ai_status_display/process() return -/obj/machinery/ai_status_display/proc/update() - if(mode==0) //Blank +/obj/machinery/ai_status_display/update_icon() + if(stat&NOPOWER || mode==0) //Blank overlays.Cut() return @@ -96,11 +96,3 @@ var/list/ai_status_emotions = list( if(overlays.len) overlays.Cut() overlays += image('icons/obj/status_display.dmi', icon_state=picture_state) - -/obj/machinery/ai_status_display/power_change() - ..() - if(stat & NOPOWER) - if(overlays.len) - overlays.Cut() - else - update() diff --git a/code/game/machinery/telecomms/logbrowser.dm b/code/game/machinery/telecomms/logbrowser.dm index f53288830..194ac56e6 100644 --- a/code/game/machinery/telecomms/logbrowser.dm +++ b/code/game/machinery/telecomms/logbrowser.dm @@ -2,7 +2,7 @@ /obj/machinery/computer/telecomms/server name = "Telecommunications Server Monitor" - icon_state = "comm_logs" + screen_icon = "comm_logs" var/screen = 0 // the screen number: var/list/servers = list() // the servers located by the computer diff --git a/code/game/machinery/telecomms/telemonitor.dm b/code/game/machinery/telecomms/telemonitor.dm index 6c266c60c..38184bc4d 100644 --- a/code/game/machinery/telecomms/telemonitor.dm +++ b/code/game/machinery/telecomms/telemonitor.dm @@ -9,7 +9,7 @@ /obj/machinery/computer/telecomms/monitor name = "Telecommunications Monitor" - icon_state = "comm_monitor" + screen_icon = "comm_monitor" var/screen = 0 // the screen number: var/list/machinelist = list() // the machines located by the computer diff --git a/code/game/machinery/telecomms/traffic_control.dm b/code/game/machinery/telecomms/traffic_control.dm index 86d262442..f171c0af5 100644 --- a/code/game/machinery/telecomms/traffic_control.dm +++ b/code/game/machinery/telecomms/traffic_control.dm @@ -6,7 +6,7 @@ /obj/machinery/computer/telecomms/traffic name = "Telecommunications Traffic Control" - icon_state = "computer_generic" + screen_icon = "computer_generic" var/screen = 0 // the screen number: var/list/servers = list() // the servers located by the computer diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 1cb8892d5..9e70589e4 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -43,7 +43,7 @@ /obj/machinery/computer/teleporter name = "Teleporter Control Console" desc = "Used to control a linked teleportation Hub and Station." - icon_state = "teleport" + screen_icon = "teleport" circuit = /obj/item/weapon/circuitboard/teleporter dir = 4 var/updating = 0 @@ -462,8 +462,7 @@ src.add_fingerprint(usr) return -/obj/machinery/teleport/station/power_change() - ..() +/obj/machinery/teleport/station/update_icon() if(stat & NOPOWER) icon_state = "controller-p" diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 7050fd805..63d0768a4 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -72,10 +72,6 @@ src.build_inventory() power_change() - return - - return - /** * Build src.produdct_records from the products lists * diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm index 385beb886..65cff881d 100644 --- a/code/game/mecha/mech_bay.dm +++ b/code/game/mecha/mech_bay.dm @@ -119,13 +119,9 @@ return 0 /obj/machinery/mech_bay_recharge_port/power_change() - if(powered()) - stat &= ~NOPOWER - else - spawn(rand(0, 15)) - stat |= NOPOWER - pr_recharger.stop() - return + ..() + if(stat&NOPOWER) + pr_recharger.stop() /obj/machinery/mech_bay_recharge_port/proc/set_voltage(new_voltage) if(new_voltage && isnum(new_voltage)) @@ -163,7 +159,7 @@ density = 1 anchored = 1 icon = 'icons/obj/computer.dmi' - icon_state = "recharge_comp" + screen_icon = "recharge_comp" light_color = "#a97faa" circuit = /obj/item/weapon/circuitboard/mech_bay_power_console var/autostart = 1 @@ -190,23 +186,14 @@ /obj/machinery/computer/mech_bay_power_console/power_change() - if(stat & BROKEN) - icon_state = initial(icon_state)+"_broken" + ..() + if(stat&NOPOWER) if(recharge_port) recharge_port.stop_charge() - else if(powered()) - icon_state = initial(icon_state) - stat &= ~NOPOWER - else - spawn(rand(0, 15)) - icon_state = initial(icon_state)+"_nopower" - stat |= NOPOWER - if(recharge_port) - recharge_port.stop_charge() /obj/machinery/computer/mech_bay_power_console/set_broken() - icon_state = initial(icon_state)+"_broken" stat |= BROKEN + update_icon() if(recharge_port) recharge_port.stop_charge() diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm index a68f0bdd2..c88e08f24 100644 --- a/code/game/mecha/mecha_control_console.dm +++ b/code/game/mecha/mecha_control_console.dm @@ -1,7 +1,7 @@ /obj/machinery/computer/mecha name = "Exosuit Control" icon = 'icons/obj/computer.dmi' - icon_state = "mecha" + screen_icon = "mecha" light_color = "#a97faa" req_access = list(access_robotics) circuit = /obj/item/weapon/circuitboard/mecha_control diff --git a/code/game/objects/items/weapons/circuitboards/computer/computer.dm b/code/game/objects/items/weapons/circuitboards/computer/computer.dm index e02196a8d..eb6f000e7 100644 --- a/code/game/objects/items/weapons/circuitboards/computer/computer.dm +++ b/code/game/objects/items/weapons/circuitboards/computer/computer.dm @@ -87,11 +87,6 @@ build_path = /obj/machinery/computer/cloning origin_tech = list(TECH_DATA = 3, TECH_BIO = 3) -/obj/item/weapon/circuitboard/arcade - name = T_BOARD("arcade machine") - build_path = /obj/machinery/computer/arcade - origin_tech = list(TECH_DATA = 1) - /obj/item/weapon/circuitboard/turbine_control name = T_BOARD("turbine control console") build_path = /obj/machinery/computer/turbine_computer diff --git a/code/game/objects/items/weapons/circuitboards/machinery/arcade.dm b/code/game/objects/items/weapons/circuitboards/machinery/arcade.dm new file mode 100644 index 000000000..22668b385 --- /dev/null +++ b/code/game/objects/items/weapons/circuitboards/machinery/arcade.dm @@ -0,0 +1,6 @@ +/obj/item/weapon/circuitboard/arcade + name = T_BOARD("arcade machine") + build_path = /obj/machinery/arcade + board_type = "machine" + origin_tech = list(TECH_DATA = 1) + diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 2d1fcd38d..e1e0eb540 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -539,7 +539,7 @@ /obj/machinery/button/windowtint/power_change() ..() - if(active && !powered(power_channel)) + if(active && stat&NOPOWER) toggle_tint() /obj/machinery/button/windowtint/update_icon() diff --git a/code/modules/economy/Accounts_DB.dm b/code/modules/economy/Accounts_DB.dm index c93cde3c6..ab65ff7b0 100644 --- a/code/modules/economy/Accounts_DB.dm +++ b/code/modules/economy/Accounts_DB.dm @@ -3,7 +3,7 @@ name = "Accounts uplink terminal" desc = "Access transaction logs, account data and all kinds of other financial records." req_one_access = list(access_hop, access_captain, access_cent_captain) - icon_state = "computer_generic" + screen_icon = "computer_generic" var/receipt_num var/machine_id = "" var/obj/item/weapon/card/id/held_card diff --git a/code/modules/holodeck/HolodeckControl.dm b/code/modules/holodeck/HolodeckControl.dm index d85b66552..a3dafd703 100644 --- a/code/modules/holodeck/HolodeckControl.dm +++ b/code/modules/holodeck/HolodeckControl.dm @@ -1,7 +1,7 @@ /obj/machinery/computer/HolodeckControl name = "holodeck control console" desc = "A computer used to control a nearby holodeck." - icon_state = "holocontrol" + screen_icon = "holocontrol" use_power = 1 active_power_usage = 8000 //8kW for the scenery + 500W per holoitem @@ -177,9 +177,8 @@ ..() /obj/machinery/computer/HolodeckControl/power_change() - var/oldstat ..() - if (stat != oldstat && active && (stat & NOPOWER)) + if(active && (stat&NOPOWER)) emergencyShutdown() /obj/machinery/computer/HolodeckControl/process() diff --git a/code/modules/materials/material_recipes.dm b/code/modules/materials/material_recipes.dm index be3d2b713..851d386b9 100644 --- a/code/modules/materials/material_recipes.dm +++ b/code/modules/materials/material_recipes.dm @@ -49,8 +49,9 @@ recipes += new/datum/stack_recipe("cannon frame", /obj/item/weapon/cannonframe, 10, time = 15, one_per_turf = 0, on_floor = 0) recipes += new/datum/stack_recipe("floor tile", /obj/item/stack/tile/steel, 1, 4, 20) recipes += new/datum/stack_recipe("metal rod", /obj/item/stack/rods, 1, 2, 60) - recipes += new/datum/stack_recipe("computer frame", /obj/structure/computerframe, 5, time = 25, one_per_turf = 1, on_floor = 1) recipes += new/datum/stack_recipe("wall girders", /obj/structure/girder, 2, time = 50, one_per_turf = 1, on_floor = 1) + recipes += new/datum/stack_recipe("laptop frame", /obj/structure/computerframe/laptop, 5, time = 25, one_per_turf = 1, on_floor = 1) + recipes += new/datum/stack_recipe("computer frame", /obj/structure/computerframe, 5, time = 25, one_per_turf = 1, on_floor = 1) recipes += new/datum/stack_recipe("machine frame", /obj/machinery/constructable_frame/machine_frame, 5, time = 25, one_per_turf = 1, on_floor = 1) recipes += new/datum/stack_recipe("turret frame", /obj/machinery/porta_turret_construct, 5, time = 25, one_per_turf = 1, on_floor = 1) recipes += new/datum/stack_recipe_list("airlock assemblies", list( \ diff --git a/code/modules/mob/living/silicon/robot/drone/drone_console.dm b/code/modules/mob/living/silicon/robot/drone/drone_console.dm index c82fc5ae0..dfc5eed81 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_console.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_console.dm @@ -2,7 +2,7 @@ name = "Maintenance Drone Control" desc = "Used to monitor the station's drone population and the assembler that services them." icon = 'icons/obj/computer.dmi' - icon_state = "power" + screen_icon = "power" req_access = list(access_engine_equip) circuit = /obj/item/weapon/circuitboard/drone_control diff --git a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm index 91056d88c..10ac72659 100755 --- a/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm @@ -29,13 +29,11 @@ fabricator_tag = "Derelict" drone_type = /mob/living/silicon/robot/drone/construction -/obj/machinery/drone_fabricator/New() - ..() - -/obj/machinery/drone_fabricator/power_change() - ..() - if (stat & NOPOWER) +/obj/machinery/drone_fabricator/update_icon() + if(stat & NOPOWER) icon_state = "drone_fab_nopower" + else + icon_state = initial(icon_state) /obj/machinery/drone_fabricator/process() diff --git a/code/modules/overmap/ships/computers/engine_control.dm b/code/modules/overmap/ships/computers/engine_control.dm index 920fd5e97..85018de92 100644 --- a/code/modules/overmap/ships/computers/engine_control.dm +++ b/code/modules/overmap/ships/computers/engine_control.dm @@ -2,7 +2,7 @@ /obj/machinery/computer/engines name = "engine control console" - icon_state = "id" + screen_icon = "id" var/state = "status" var/list/engines = list() var/obj/effect/map/ship/linked diff --git a/code/modules/overmap/ships/computers/helm.dm b/code/modules/overmap/ships/computers/helm.dm index e15de3196..00b261b7e 100644 --- a/code/modules/overmap/ships/computers/helm.dm +++ b/code/modules/overmap/ships/computers/helm.dm @@ -1,6 +1,6 @@ /obj/machinery/computer/helm name = "helm control console" - icon_state = "id" + screen_icon = "id" var/state = "status" var/obj/effect/map/ship/linked //connected overmap object var/autopilot = 0 diff --git a/code/modules/power/antimatter/control.dm b/code/modules/power/antimatter/control.dm index 31a584a75..73583b9b0 100644 --- a/code/modules/power/antimatter/control.dm +++ b/code/modules/power/antimatter/control.dm @@ -134,14 +134,15 @@ /obj/machinery/power/am_control_unit/power_change() ..() - if(stat & NOPOWER && active) + if(active && stat&NOPOWER) toggle_power() - return /obj/machinery/power/am_control_unit/update_icon() - if(active) icon_state = "control_on" - else icon_state = "control" + if(active) + icon_state = "control_on" + else + icon_state = "control" //No other icons for it atm diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index 76aefd73f..e5a0f6065 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -210,11 +210,6 @@ // auto update every Master Controller tick ui.set_auto_update(1) -/obj/machinery/power/generator/power_change() - ..() - updateicon() - - /obj/machinery/power/generator/verb/rotate_clock() set category = "Object" set name = "Rotate Generator (Clockwise)" diff --git a/code/modules/power/generator_type2.dm b/code/modules/power/generator_type2.dm index 2b44768b8..500ebce1a 100644 --- a/code/modules/power/generator_type2.dm +++ b/code/modules/power/generator_type2.dm @@ -135,9 +135,4 @@ usr.unset_machine() return 0 - return 1 - - -/obj/machinery/power/generator_type2/power_change() - ..() - updateicon() \ No newline at end of file + return 1 \ No newline at end of file diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index 715c721ca..63d0d2def 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -4,7 +4,7 @@ name = "Gravity Generator Control" desc = "A computer to control a local gravity generator. Qualified personnel only." icon = 'icons/obj/computer.dmi' - icon_state = "airtunnel0e" + screen_icon = "airtunnel0e" anchored = 1 density = 1 var/obj/machinery/gravity_generator = null diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index e3603f8c2..777366ab8 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -94,7 +94,7 @@ else stat |= NOPOWER - return + update_icon() // connect the machine to a powernet if a node cable is present on the turf /obj/machinery/power/proc/connect_to_network() diff --git a/code/modules/power/sensors/sensor_monitoring.dm b/code/modules/power/sensors/sensor_monitoring.dm index c4e9a191e..143429a09 100644 --- a/code/modules/power/sensors/sensor_monitoring.dm +++ b/code/modules/power/sensors/sensor_monitoring.dm @@ -7,7 +7,7 @@ name = "Power Monitoring Console" desc = "Computer designed to remotely monitor power levels around the station" icon = 'icons/obj/computer.dmi' - icon_state = "power" + screen_icon = "power" light_color = "#ffcc33" //computer stuff @@ -29,16 +29,11 @@ // Updates icon of this computer according to current status. /obj/machinery/computer/power_monitor/update_icon() - if(stat & BROKEN) - icon_state = "powerb" - return - if(stat & NOPOWER) - icon_state = "power0" - return if(alerting) - icon_state = "power_alert" - return - icon_state = "power" + screen_icon = "power_alert" + else + screen_icon = initial(screen_icon) + ..() // On creation automatically connects to active sensors. This is delayed to ensure sensors already exist. /obj/machinery/computer/power_monitor/New() diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm index 3cf45702b..f4811cef7 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_control.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm @@ -140,7 +140,6 @@ update_use_power(0) else if(!stat && construction_state == 3) update_use_power(1) - return /obj/machinery/particle_accelerator/control_box/process() diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index dcf15c6d0..ea3d1e38a 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -515,11 +515,6 @@ var/list/solars_list = list() update_icon() -/obj/machinery/power/solar_control/power_change() - ..() - update_icon() - - /obj/machinery/power/solar_control/proc/broken() stat |= BROKEN update_icon() diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm index 58d34624d..15efbc24a 100644 --- a/code/modules/power/turbine.dm +++ b/code/modules/power/turbine.dm @@ -29,7 +29,7 @@ name = "Gas turbine control computer" desc = "A computer to remotely control a gas turbine" icon = 'icons/obj/computer.dmi' - icon_state = "turbinecomp" + screen_icon = "turbinecomp" circuit = /obj/item/weapon/circuitboard/turbine_control anchored = 1 density = 1 diff --git a/code/modules/reagents/Machinery.dm b/code/modules/reagents/Machinery.dm index 5474dc235..e8e8f6921 100644 --- a/code/modules/reagents/Machinery.dm +++ b/code/modules/reagents/Machinery.dm @@ -767,7 +767,6 @@ /obj/machinery/reagentgrinder/proc/grind() - power_change() if(stat & (NOPOWER|BROKEN)) return diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index e0bd86652..e15faab0f 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -39,7 +39,7 @@ /obj/machinery/apiary, /mob/living/simple_animal/cow, /mob/living/simple_animal/hostile/retaliate/goat, - /obj/machinery/computer/centrifuge, + /obj/machinery/centrifuge, /obj/machinery/sleeper, /obj/machinery/smartfridge/, /obj/machinery/biogenerator, diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 3a7c49734..12bcc9560 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -59,19 +59,20 @@ movedir = forwards else movedir = backwards - update() + update_icon() -/obj/machinery/conveyor/proc/update() +/obj/machinery/conveyor/update_icon() if(stat & BROKEN) icon_state = "conveyor-broken" - operating = 0 + operating = FALSE return - if(!operable) - operating = 0 - if(stat & NOPOWER) - operating = 0 + + if(!operable || stat&NOPOWER) + operating = FALSE + icon_state = "conveyor[operating]" + // machine process // move items to the target location /obj/machinery/conveyor/process() @@ -104,7 +105,7 @@ // also propagate inoperability to any connected conveyor with the same ID /obj/machinery/conveyor/proc/broken() stat |= BROKEN - update() + update_icon() var/obj/machinery/conveyor/C = locate() in get_step(src, dir) if(C) @@ -123,21 +124,11 @@ return operable = op - update() + update_icon() var/obj/machinery/conveyor/C = locate() in get_step(src, stepdir) if(C) C.set_operable(stepdir, id, op) -/* -/obj/machinery/conveyor/verb/destroy() - set src in view() - src.broken() -*/ - -/obj/machinery/conveyor/power_change() - ..() - update() - // the conveyor control switch // // diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 068544f27..cb923b37e 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -40,7 +40,7 @@ trunk.linked = src // link the pipe trunk to self air_contents = new/datum/gas_mixture(PRESSURE_TANK_VOLUME) - update() + update_icon() /obj/machinery/disposal/Destroy() eject() @@ -115,7 +115,7 @@ for(var/obj/item/O in T.contents) T.remove_from_storage(O,src) T.update_icon() - update() + update_icon() return if(!I || !user.unEquip(I, src)) @@ -127,7 +127,7 @@ continue M.show_message("[user.name] places \the [I] into the [src].", 3) - update() + update_icon() // mouse drop another mob or self // @@ -173,7 +173,7 @@ continue C.show_message(msg, 3) - update() + update_icon() return // can breath normally in the disposal @@ -195,7 +195,7 @@ user.client.eye = user.client.mob user.client.perspective = MOB_PERSPECTIVE user.loc = src.loc - update() + update_icon() return // ai as human but can't flush @@ -217,8 +217,7 @@ interact(user, 0) else flush = !flush - update() - return + update_icon() // user interaction /obj/machinery/disposal/interact(mob/user, var/ai=0) @@ -285,12 +284,12 @@ mode = 1 else mode = 0 - update() + update_icon() if(!isAI(usr)) if(href_list["handle"]) flush = text2num(href_list["handle"]) - update() + update_icon() if(href_list["eject"]) eject() @@ -305,10 +304,10 @@ for(var/atom/movable/AM in src) AM.loc = src.loc AM.pipe_eject(0) - update() + update_icon() // update the icon & overlays to reflect mode & status -/obj/machinery/disposal/proc/update() +/obj/machinery/disposal/update_icon() overlays.Cut() if(stat & BROKEN) icon_state = "disposal-broken" @@ -358,7 +357,7 @@ update_use_power(1) else if(air_contents.return_pressure() >= SEND_PRESSURE) mode = 2 //if full enough, switch to ready mode - update() + update_icon() else src.pressurize() //otherwise charge @@ -414,15 +413,7 @@ flush = 0 if(mode == 2) // if was ready, mode = 1 // switch to charging - update() - return - - -// called when area power changes -/obj/machinery/disposal/power_change() - ..() // do default setting/reset of stat NOPOWER bit - update() // update icon - return + update_icon() // called when holder is expelled from a disposal diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index 10712578b..bd2a1f8e9 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -433,7 +433,7 @@ flush = 0 if(mode == 2) // if was ready, mode = 1 // switch to charging - update() + update_icon() return /obj/machinery/disposal/deliveryChute/attackby(var/obj/item/I, var/mob/user) diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 8f73b1206..ff0e18caf 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -29,7 +29,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, /obj/machinery/computer/rdconsole name = "R&D control console" - icon_state = "rdcomp" + screen_icon = "rdcomp" light_color = "#a97faa" circuit = /obj/item/weapon/circuitboard/rdconsole var/datum/research/files //Stores all the collected research data. diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index 0305f4fd7..70c5a0e26 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -146,7 +146,7 @@ /obj/machinery/computer/rdservercontrol name = "R&D Server Controller" - icon_state = "rdcomp" + screen_icon = "rdcomp" light_color = "#a97faa" circuit = /obj/item/weapon/circuitboard/rdservercontrol var/screen = 0 diff --git a/code/modules/security levels/keycard authentication.dm b/code/modules/security levels/keycard authentication.dm index c067061c8..8dfcf1d25 100644 --- a/code/modules/security levels/keycard authentication.dm +++ b/code/modules/security levels/keycard authentication.dm @@ -40,8 +40,7 @@ event_triggered_by = usr broadcast_request() //This is the device making the initial event request. It needs to broadcast to other devices -/obj/machinery/keycard_auth/power_change() - ..() +/obj/machinery/keycard_auth/update_icon() if(stat &NOPOWER) icon_state = "auth_off" diff --git a/code/modules/shieldgen/emergency_shield.dm b/code/modules/shieldgen/emergency_shield.dm index c9947dec0..3e8bed321 100644 --- a/code/modules/shieldgen/emergency_shield.dm +++ b/code/modules/shieldgen/emergency_shield.dm @@ -190,7 +190,6 @@ collapse_shields() else create_shields() - update_icon() /obj/machinery/shieldgen/process() if (!active || (stat & NOPOWER)) diff --git a/code/modules/shieldgen/shield_capacitor.dm b/code/modules/shieldgen/shield_capacitor.dm index 94d2fe2df..f8cc76c21 100644 --- a/code/modules/shieldgen/shield_capacitor.dm +++ b/code/modules/shieldgen/shield_capacitor.dm @@ -139,11 +139,9 @@ updateDialog() -/obj/machinery/shield_capacitor/power_change() +/obj/machinery/shield_capacitor/update_icon() if(stat & BROKEN) icon_state = "broke" - else - ..() /obj/machinery/shield_capacitor/verb/rotate() set name = "Rotate capacitor clockwise" diff --git a/code/modules/shuttles/shuttle_console.dm b/code/modules/shuttles/shuttle_console.dm index 24b8cf5c1..fb93cc3fc 100644 --- a/code/modules/shuttles/shuttle_console.dm +++ b/code/modules/shuttles/shuttle_console.dm @@ -1,7 +1,7 @@ /obj/machinery/computer/shuttle_control name = "shuttle control console" icon = 'icons/obj/computer.dmi' - icon_state = "shuttle" + screen_icon = "shuttle" circuit = null var/shuttle_tag // Used to coordinate data in shuttle controller. diff --git a/code/modules/shuttles/shuttles_multi.dm b/code/modules/shuttles/shuttles_multi.dm index 9d7159161..31aa70cae 100644 --- a/code/modules/shuttles/shuttles_multi.dm +++ b/code/modules/shuttles/shuttles_multi.dm @@ -70,7 +70,7 @@ /obj/machinery/computer/shuttle_control/multi - icon_state = "syndishuttle" + screen_icon = "syndishuttle" /obj/machinery/computer/shuttle_control/multi/attack_hand(user as mob) diff --git a/code/modules/virus2/centrifuge.dm b/code/modules/virus2/centrifuge.dm index 4ce889800..7f15bbda0 100644 --- a/code/modules/virus2/centrifuge.dm +++ b/code/modules/virus2/centrifuge.dm @@ -1,15 +1,16 @@ -/obj/machinery/computer/centrifuge +/obj/machinery/centrifuge name = "isolation centrifuge" desc = "Used to separate things with different weight. Spin 'em round, round, right round." icon = 'icons/obj/virology.dmi' icon_state = "centrifuge" + density = TRUE var/curing var/isolating var/obj/item/weapon/reagent_containers/glass/beaker/vial/sample = null var/datum/disease2/disease/virus2 = null -/obj/machinery/computer/centrifuge/attackby(var/obj/O as obj, var/mob/user as mob) +/obj/machinery/centrifuge/attackby(var/obj/O as obj, var/mob/user as mob) if(istype(O, /obj/item/weapon/screwdriver)) return ..(O,user) @@ -26,16 +27,21 @@ src.attack_hand(user) -/obj/machinery/computer/centrifuge/update_icon() - ..() - if(! (stat & (BROKEN|NOPOWER)) && (isolating || curing)) +/obj/machinery/centrifuge/update_icon() + if(stat&BROKEN) + icon_state = "" + else if(stat&NOPOWER) + icon_state = "centrifuge_unpowered" + if(isolating || curing) icon_state = "centrifuge_moving" + else + icon_state = "centrifuge" -/obj/machinery/computer/centrifuge/attack_hand(var/mob/user as mob) +/obj/machinery/centrifuge/attack_hand(var/mob/user as mob) if(..()) return ui_interact(user) -/obj/machinery/computer/centrifuge/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) +/obj/machinery/centrifuge/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) user.set_machine(src) var/data[0] @@ -76,7 +82,7 @@ ui.set_initial_data(data) ui.open() -/obj/machinery/computer/centrifuge/process() +/obj/machinery/centrifuge/process() ..() if (stat & (NOPOWER|BROKEN)) return @@ -90,7 +96,7 @@ if(isolating == 0) isolate() -/obj/machinery/computer/centrifuge/Topic(href, href_list) +/obj/machinery/centrifuge/Topic(href, href_list) if (..()) return 1 var/mob/user = usr @@ -146,7 +152,7 @@ return 0 -/obj/machinery/computer/centrifuge/proc/cure() +/obj/machinery/centrifuge/proc/cure() if (!sample) return var/datum/reagent/blood/B = locate(/datum/reagent/blood) in sample.reagents.reagent_list if (!B) return @@ -160,7 +166,7 @@ update_icon() ping("\The [src] pings, \"Antibody isolated.\"") -/obj/machinery/computer/centrifuge/proc/isolate() +/obj/machinery/centrifuge/proc/isolate() if (!sample) return var/obj/item/weapon/virusdish/dish = new/obj/item/weapon/virusdish(loc) dish.virus2 = virus2 @@ -170,13 +176,13 @@ update_icon() ping("\The [src] pings, \"Pathogen isolated.\"") -/obj/machinery/computer/centrifuge/proc/print(var/mob/user) - var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(loc) +/obj/machinery/centrifuge/proc/print(var/mob/user) + var/obj/item/weapon/paper/P = new(loc) P.name = "paper - Pathology Report" P.info = {" [virology_letterhead("Pathology Report")] Sample: [sample.name]
-"} + "} if (user) P.info += "Generated By: [user.name]
" @@ -205,9 +211,5 @@ P.info += antigens2string(A.data["antibodies"]) P.info += "
" - P.info += {" -


- Additional Notes: -"} - + P.info += "
Additional Notes: " state("The nearby computer prints out a pathology report.") diff --git a/code/modules/virus2/curer.dm b/code/modules/virus2/curer.dm index 6a605b309..b9bbe706b 100644 --- a/code/modules/virus2/curer.dm +++ b/code/modules/virus2/curer.dm @@ -1,7 +1,7 @@ /obj/machinery/computer/curer name = "cure research machine" icon = 'icons/obj/computer.dmi' - icon_state = "dna" + screen_icon = "dna" circuit = /obj/item/weapon/circuitboard/curefab var/curing var/virusing diff --git a/code/modules/virus2/diseasesplicer.dm b/code/modules/virus2/diseasesplicer.dm index 6d1693a23..20bc9bda3 100644 --- a/code/modules/virus2/diseasesplicer.dm +++ b/code/modules/virus2/diseasesplicer.dm @@ -1,7 +1,7 @@ /obj/machinery/computer/diseasesplicer name = "disease splicer" icon = 'icons/obj/computer.dmi' - icon_state = "crew" + screen_icon = "crew" var/datum/disease2/effectholder/memorybank = null var/list/species_buffer = null diff --git a/icons/obj/computer.dmi b/icons/obj/computer.dmi index 2bb7d3998301f6d47452a9e4fd65a85bb9eeb09c..85e908307edd233b615ca15802a9c7f8087cadc2 100644 GIT binary patch literal 42062 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 Cgxl=^ literal 73009 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⋘Lh?8iKn2+gM6hKB(yf_a@y^Q>Z!)MBCZU8q>3 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 A!~g&Q diff --git a/icons/obj/computer_laptop.dmi b/icons/obj/computer_laptop.dmi new file mode 100644 index 0000000000000000000000000000000000000000..1d4452247959aab74f5e07418f9113b4993c3926 GIT binary patch literal 7145 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 TKRClxnFG%hUc$@eOi}*_`q#6R literal 10523 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 ReQ*=!oyWhjWV09n7ZY6Weyjih delta 236 zcmVfFDZ*Bkpc$}4x!3x4K42I9`Q-paPVyEJ% z7uk>1%eKI5rLD@|-h+sO8=K^kz?bCXU%@dukVfQszV17 zwh3n)Qrm^s;DZhb5+d@p*TFhPCgQ9n=Rtztta18+ul|Q!3}C9OvlV(zrXAloa8_fl z2au4&Uo~>dHqGo`ZFE0)oELn9vx55(!7n*e-OkGrd6UY{=Ukx)j+$GG>SFJcZo7}0 mh(#>o(G!1s+x)?vr`Q!_WeRDL^C!VM!HgP;4{oy!0W1?CsdIJ! diff --git a/maps/CentComm.dmm b/maps/CentComm.dmm index e4213d5e3..c94f593dc 100644 --- a/maps/CentComm.dmm +++ b/maps/CentComm.dmm @@ -545,7 +545,7 @@ "ky" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "kz" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns12,/area/space) "kA" = (/turf/simulated/shuttle/wall/line,/area/supply/dock) -"kB" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) +"kB" = (/obj/machinery/arcade,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor"},/area/centcom/evac) "kC" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space) "kD" = (/obj/structure/closet/secure_closet/personal/patient,/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) "kE" = (/obj/item/storage/firstaid/regular{pixel_x = 2; pixel_y = 6},/obj/item/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/unsimulated/floor{icon = 'icons/turf/shuttle.dmi'; icon_state = "floor3"},/area/centcom/evac) @@ -1234,7 +1234,7 @@ "xL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) "xM" = (/obj/structure/table/standard,/obj/machinery/recharger{pixel_y = 4},/obj/item/weapon/handcuffs,/obj/item/storage/pill_bottle/dice,/obj/item/weapon/deck/cards,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "xN" = (/obj/structure/bed/chair/office/light,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"xO" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) +"xO" = (/obj/machinery/arcade,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "xP" = (/obj/structure/closet/cabinet/underwear,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "xQ" = (/obj/structure/table/reinforced,/obj/machinery/photocopier/faxmachine/command{department = "Central Command"; name = "CentComm fax machine"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "xR" = (/obj/machinery/button/remote/blast_door{id = "crescent_checkpoint_access"; name = "Crescent Checkpoint Access"; pixel_x = -6; pixel_y = -24; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "crescent_thunderdome"; name = "Thunderdome Access"; pixel_x = 6; pixel_y = -24; req_access = list(101)},/obj/machinery/button/remote/blast_door{id = "crescent_vip_shuttle"; name = "VIP Shuttle Access"; pixel_x = 6; pixel_y = -34; req_access = list(101)},/obj/machinery/turretid{pixel_x = 28; pixel_y = -28; req_access = list(101)},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) @@ -1984,7 +1984,7 @@ "Mh" = (/obj/structure/table/standard,/obj/machinery/computer/security/telescreen/entertainment{pixel_y = 32},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/tdome/tdomeobserve) "Mi" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/drinks/drinkingglass/cola,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/tdome/tdomeobserve) "Mj" = (/obj/structure/table/standard,/obj/machinery/computer/security/telescreen/entertainment{pixel_y = 32},/obj/item/weapon/reagent_containers/glass/drinks/cans/waterbottle,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/tdome/tdomeobserve) -"Mk" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/tdome/tdomeobserve) +"Mk" = (/obj/machinery/arcade,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/tdome/tdomeobserve) "Ml" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/drinks/cans/waterbottle,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/tdome/tdomeobserve) "Mm" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/drinks/cans/cola,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/tdome/tdomeobserve) "Mn" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/drinks/bottle/small/beer,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/tdome/tdomeobserve) @@ -2028,7 +2028,7 @@ "MZ" = (/obj/item/device/binoculars,/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/tdome/tdomeobserve) "Na" = (/obj/machinery/computer/security/telescreen,/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/tdome/tdomeobserve) "Nb" = (/obj/cryo_spawner{player_spawn = -1},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/tdome/tdomeobserve) -"Nc" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"Nc" = (/obj/machinery/arcade,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "Nd" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/accessory/storage/black_vest,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "Ne" = (/obj/structure/table/rack,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/obj/item/clothing/accessory/storage/brown_vest,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "Nf" = (/obj/structure/table/rack,/obj/item/clothing/accessory/holster/gun/armpit,/obj/item/clothing/accessory/holster/gun/armpit,/obj/item/clothing/accessory/holster/gun/armpit,/obj/item/clothing/accessory/holster/gun/armpit,/obj/item/clothing/accessory/holster/gun/armpit,/obj/item/clothing/accessory/holster/gun/armpit,/obj/item/clothing/accessory/holster/gun/hip,/obj/item/clothing/accessory/holster/gun/hip,/obj/item/clothing/accessory/holster/gun/hip,/obj/item/clothing/accessory/holster/gun/hip,/obj/item/clothing/accessory/holster/gun/hip,/obj/item/clothing/accessory/holster/gun/hip,/obj/item/clothing/accessory/holster/gun/waist,/obj/item/clothing/accessory/holster/gun/waist,/obj/item/clothing/accessory/holster/gun/waist,/obj/item/clothing/accessory/holster/gun/waist,/obj/item/clothing/accessory/holster/gun/waist,/obj/item/clothing/accessory/holster/gun/waist,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) diff --git a/maps/exodus/1.station.dmm b/maps/exodus/1.station.dmm index ca83b026a..056029fb9 100644 --- a/maps/exodus/1.station.dmm +++ b/maps/exodus/1.station.dmm @@ -626,7 +626,7 @@ "amb" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/security/brig) "amc" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/security/brig) "amd" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/security/brig) -"ame" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/computer/guestpass{pixel_y = -29},/obj/machinery/camera/network/security{c_tag = "Security - Brig East"; dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/security/brig) +"ame" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/guestpass{pixel_y = -29},/obj/machinery/camera/network/security{c_tag = "Security - Brig East"; dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/security/brig) "amf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/security/brig) "amg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/security/brig) "amh" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor,/area/security/brig) @@ -791,7 +791,7 @@ "apk" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/security/prison) "apl" = (/obj/structure/closet/secure_closet/brig{id = "Cell 2"; name = "Cell 2 Locker"},/obj/machinery/camera/network/prison{c_tag = "Security - Brig Cell 2"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/prison) "apm" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating/with_grille/reinforced,/area/security/prison) -"apn" = (/obj/machinery/computer/arcade,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/camera/network/prison{c_tag = "Security - Common Brig Northwest"},/turf/simulated/floor,/area/security/prison) +"apn" = (/obj/machinery/arcade,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/camera/network/prison{c_tag = "Security - Common Brig Northwest"},/turf/simulated/floor,/area/security/prison) "apo" = (/turf/simulated/floor,/area/security/prison) "app" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "apq" = (/obj/structure/table/standard,/obj/item/weapon/book/manual/security_space_law{pixel_x = -3; pixel_y = 5},/obj/item/storage/box/inhibitionimp{pixel_x = 7; pixel_y = -5},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) @@ -1747,7 +1747,7 @@ "aHE" = (/turf/simulated/shuttle/wall/line{tag = "icon-s_line (SOUTHEAST)"; icon_state = "s_line"; dir = 6},/area/shuttle/arrival/station) "aHF" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "aHG" = (/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) -"aHH" = (/obj/machinery/computer/arcade,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) +"aHH" = (/obj/machinery/arcade,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "aHI" = (/obj/structure/closet/wardrobe/black,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "aHJ" = (/obj/structure/closet/wardrobe/xenos,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) "aHK" = (/obj/structure/closet/wardrobe/mixed,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station) @@ -2203,7 +2203,7 @@ "aQs" = (/obj/machinery/alarm{pixel_y = 23},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/hallway/primary/central_two) "aQt" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/hallway/primary/central_two) "aQu" = (/turf/simulated/floor{tag = "icon-wood_new_dark"; icon_state = "wood_new_dark"},/area/crew_quarters/bar) -"aQv" = (/obj/machinery/computer/arcade,/turf/simulated/floor{tag = "icon-wood_new_dark"; icon_state = "wood_new_dark"},/area/crew_quarters/bar) +"aQv" = (/obj/machinery/arcade,/turf/simulated/floor{tag = "icon-wood_new_dark"; icon_state = "wood_new_dark"},/area/crew_quarters/bar) "aQw" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{tag = "icon-wood_new_dark"; icon_state = "wood_new_dark"},/area/crew_quarters/bar) "aQx" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{tag = "icon-wood_new_dark"; icon_state = "wood_new_dark"},/area/crew_quarters/bar) "aQy" = (/obj/machinery/button/remote/blast_door{id = "bar"; name = "Bar Shutters"; pixel_x = 0; pixel_y = -24},/obj/effect/landmark/start{name = "Bartender"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{tag = "icon-wood_new_dark"; icon_state = "wood_new_dark"},/area/crew_quarters/bar) @@ -2914,7 +2914,7 @@ "beb" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/bridge) "bec" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge) "bed" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge) -"bee" = (/obj/machinery/computer/guestpass{pixel_y = -28},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge) +"bee" = (/obj/machinery/guestpass{pixel_y = -28},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge) "bef" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless{icon_state = "catwalk12"},/area/space) "beg" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge) "beh" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge) @@ -3077,7 +3077,7 @@ "bhi" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/carpet,/area/crew_quarters/captain) "bhj" = (/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/carpet,/area/crew_quarters/captain) "bhk" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/wood,/area/crew_quarters/captain) -"bhl" = (/obj/machinery/computer/arcade,/turf/simulated/floor/wood,/area/crew_quarters/captain) +"bhl" = (/obj/machinery/arcade,/turf/simulated/floor/wood,/area/crew_quarters/captain) "bhm" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central_two) "bhn" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/hallway/primary/central_two) "bho" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central_two) @@ -3088,7 +3088,7 @@ "bht" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "whitecorner"},/area/hallway/primary/starboard) "bhu" = (/turf/simulated/floor{dir = 1; icon_state = "whitecorner"},/area/hallway/primary/starboard) "bhv" = (/obj/machinery/camera/network/exodus{c_tag = "Primary Hallway Starboard - Central West"},/turf/simulated/floor{dir = 1; icon_state = "whitecorner"},/area/hallway/primary/starboard) -"bhw" = (/obj/machinery/computer/guestpass{pixel_y = 28},/turf/simulated/floor{dir = 1; icon_state = "whitecorner"},/area/hallway/primary/starboard) +"bhw" = (/obj/machinery/guestpass{pixel_y = 28},/turf/simulated/floor{dir = 1; icon_state = "whitecorner"},/area/hallway/primary/starboard) "bhx" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating/with_grille/reinforced,/area/hydroponics/garden) "bhy" = (/obj/machinery/door/airlock/glass{name = "Garden"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hydroponics/garden) "bhz" = (/obj/machinery/door/airlock/glass{name = "Garden"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hydroponics/garden) @@ -4056,7 +4056,7 @@ "bzZ" = (/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bAa" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bAb" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"},/area/medical/chemistry) -"bAc" = (/obj/machinery/button/remote/airlock{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyerPort"; name = "Medbay Doors Control"; pixel_x = -24; pixel_y = 26},/obj/machinery/computer/guestpass{pixel_x = -28},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTHWEST)"; icon_state = "whiteblue"; dir = 9},/area/medical/medbay) +"bAc" = (/obj/machinery/button/remote/airlock{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyerPort"; name = "Medbay Doors Control"; pixel_x = -24; pixel_y = 26},/obj/machinery/guestpass{pixel_x = -28},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTHWEST)"; icon_state = "whiteblue"; dir = 9},/area/medical/medbay) "bAd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5},/area/medical/medbay) "bAe" = (/obj/structure/table/standard,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/device/flashlight/pen,/obj/item/device/flashlight/pen,/obj/item/device/flashlight/pen,/obj/item/device/flashlight/pen,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor{tag = "icon-whiteblue (NORTHWEST)"; icon_state = "whiteblue"; dir = 9},/area/medical/medbay3) "bAf" = (/obj/structure/closet/secure_closet/medical3,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay3) @@ -4087,7 +4087,7 @@ "bAE" = (/obj/machinery/mecha_part_fabricator{pixel_y = -2},/turf/simulated/floor/plating,/area/assembly/robotics) "bAF" = (/obj/machinery/conveyor_switch{id = "robo"; pixel_x = -8; pixel_y = -3},/turf/simulated/floor/plating,/area/assembly/robotics) "bAG" = (/obj/structure/table/glass,/obj/item/storage/belt/utility,/obj/item/device/multitool,/obj/item/clothing/glasses/welding,/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) -"bAH" = (/obj/machinery/light{dir = 8},/obj/machinery/computer/guestpass{pixel_x = -28},/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/turf/simulated/floor{tag = "icon-whitepurple (NORTHWEST)"; icon_state = "whitepurple"; dir = 9},/area/rnd/research) +"bAH" = (/obj/machinery/light{dir = 8},/obj/machinery/guestpass{pixel_x = -28},/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/turf/simulated/floor{tag = "icon-whitepurple (NORTHWEST)"; icon_state = "whitepurple"; dir = 9},/area/rnd/research) "bAI" = (/obj/effect/landmark{name = "lightsout"},/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/rnd/research) "bAJ" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/turf/simulated/floor{dir = 5; icon_state = "whitepurple"},/area/rnd/research) "bAK" = (/turf/simulated/wall,/area/rnd/lab) @@ -4345,7 +4345,7 @@ "bFC" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "QM #4"},/turf/simulated/floor{icon_state = "bot"},/area/quartermaster/storage) "bFD" = (/obj/machinery/newscaster{pixel_x = -27; pixel_y = 1},/obj/structure/table/standard{name = "plastic table frame"},/obj/item/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/obj/item/weapon/tape_roll,/turf/simulated/floor,/area/quartermaster/office) "bFE" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor,/area/quartermaster/office) -"bFF" = (/obj/machinery/light,/obj/machinery/computer/guestpass{pixel_y = -28},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 2; icon_state = "browncorner"},/area/quartermaster/office) +"bFF" = (/obj/machinery/light,/obj/machinery/guestpass{pixel_y = -28},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 2; icon_state = "browncorner"},/area/quartermaster/office) "bFG" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/quartermaster/office) "bFH" = (/obj/structure/noticeboard{pixel_y = -27},/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/quartermaster/office) "bFI" = (/obj/machinery/status_display/supply_display,/turf/simulated/wall,/area/quartermaster/qm) @@ -6143,7 +6143,7 @@ "cog" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/obj/machinery/atmospherics/pipe/simple/hidden/red,/turf/simulated/floor{dir = 4; icon_state = "loadingarea"},/area/engineering/foyer) "coh" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/obj/machinery/light,/turf/simulated/floor,/area/engineering/foyer) "coi" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/turf/simulated/floor,/area/engineering/foyer) -"coj" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/obj/machinery/computer/guestpass{pixel_y = -28},/turf/simulated/floor,/area/engineering/foyer) +"coj" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/obj/machinery/guestpass{pixel_y = -28},/turf/simulated/floor,/area/engineering/foyer) "cok" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact-f (EAST)"},/obj/machinery/requests_console{announcementConsole = 0; department = "Engineering"; departmentType = 4; name = "Engineering RC"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor,/area/engineering/foyer) "col" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor,/area/engineering/foyer) "com" = (/obj/machinery/door/window/eastright{name = "Engineering Reception Desk"; req_one_access = list(11,24)},/obj/machinery/light,/turf/simulated/floor,/area/engineering/foyer) @@ -6560,10 +6560,10 @@ "cwh" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgery2) "cwi" = (/obj/structure/closet/secure_closet/medical2,/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/surgery2) "cwj" = (/obj/structure/table/standard,/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/medical/virology) -"cwk" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/camera/network/medbay{c_tag = "Virology Dormitory"},/obj/machinery/computer/arcade,/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/medical/virology) +"cwk" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/camera/network/medbay{c_tag = "Virology Dormitory"},/obj/machinery/arcade,/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/medical/virology) "cwl" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/green,/obj/machinery/light{dir = 1},/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/medical/virology) "cwm" = (/obj/structure/table/standard,/obj/structure/extinguisher_cabinet{pixel_x = 25; pixel_y = 0},/turf/simulated/floor{tag = "icon-whitegreen_v (NORTHEAST)"; icon_state = "whitegreen_v"; dir = 5},/area/medical/virology) -"cwn" = (/obj/structure/reagent_dispensers/virusfood{pixel_x = 30},/obj/machinery/computer/centrifuge,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cwn" = (/obj/structure/reagent_dispensers/virusfood{pixel_x = 30},/obj/machinery/centrifuge,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cwo" = (/obj/machinery/door/airlock/glass_medical{name = "Patient Ward"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/purple,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/purple,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cwp" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/plating/with_grille/reinforced,/area/medical/virology) "cwq" = (/obj/machinery/door/airlock/glass_medical{name = "Patient Ward"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/red,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)