From 2bf2ea1f6fecd8c4a48e2287581f080e31480a50 Mon Sep 17 00:00:00 2001 From: ComicIronic Date: Tue, 19 May 2015 23:37:49 +0100 Subject: [PATCH 1/2] SMES Cleanup + Portable Batteries SMESs now fall under a battery type, which is a charge-storing power machine. The battery charges and outputs in an OOP way. SMESs now make terminals in the general way, which is also used for APCs. Terminal is now a power machinery level var. Currently impossible to get but fully functional are portable batteries. Portable batteries: - Only work when connected to battery ports, but can be pushed around otherwise - Charge from the battery port's terminal, and output onto its tile, like SMESs. - That's basically it. What more do you want? It's a movable SMES, essentially. Known issue with the portable batteries: they don't show load in the UI, because they never proc resolve(), but it's not major. --- baystation12.dme | 3 + code/game/gamemodes/events/ninja_equipment.dm | 2 +- code/game/gamemodes/events/power_failure.dm | 12 +- code/modules/admin/verbs/debug.dm | 6 +- code/modules/maps/spawners/spawners.dm | 2 +- code/modules/power/apc.dm | 34 +- code/modules/power/battery.dm | 260 ++++++++++++++ code/modules/power/battery_ion.dm | 70 ++++ code/modules/power/battery_port.dm | 92 +++++ code/modules/power/power.dm | 7 + code/modules/power/powernet.dm | 4 +- code/modules/power/smes.dm | 328 ++---------------- code/modules/power/terminal.dm | 34 ++ .../effects/unknown_effect_cellcharge.dm | 4 +- .../effects/unknown_effect_celldrain.dm | 4 +- icons/obj/power.dmi | Bin 29362 -> 29914 bytes maps/defficiency.dmm | 38 +- maps/metaclub.dmm | 36 +- maps/ministation.dmm | 12 +- maps/taxistation.dmm | 32 +- maps/tgstation.dmm | 38 +- 21 files changed, 596 insertions(+), 422 deletions(-) create mode 100644 code/modules/power/battery.dm create mode 100644 code/modules/power/battery_ion.dm create mode 100644 code/modules/power/battery_port.dm diff --git a/baystation12.dme b/baystation12.dme index 3b93ab6b35e..175f638315a 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1362,6 +1362,9 @@ #include "code\modules\paperwork\photography.dm" #include "code\modules\paperwork\stamps.dm" #include "code\modules\power\apc.dm" +#include "code\modules\power\battery.dm" +#include "code\modules\power\battery_ion.dm" +#include "code\modules\power\battery_port.dm" #include "code\modules\power\cable.dm" #include "code\modules\power\cable_heavyduty.dm" #include "code\modules\power\cell.dm" diff --git a/code/game/gamemodes/events/ninja_equipment.dm b/code/game/gamemodes/events/ninja_equipment.dm index d2af52431ce..88f590d8f3a 100644 --- a/code/game/gamemodes/events/ninja_equipment.dm +++ b/code/game/gamemodes/events/ninja_equipment.dm @@ -991,7 +991,7 @@ ________________________________________________________________________________ U << "This APC has run dry of power. You must find another source." if("SMES") - var/obj/machinery/power/smes/A = target + var/obj/machinery/power/battery/smes/A = target if(A.charge) var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, A.loc) diff --git a/code/game/gamemodes/events/power_failure.dm b/code/game/gamemodes/events/power_failure.dm index b900d7be996..27b0feab681 100644 --- a/code/game/gamemodes/events/power_failure.dm +++ b/code/game/gamemodes/events/power_failure.dm @@ -5,13 +5,13 @@ command_alert("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Critical Power Failure") for(var/mob/M in player_list) if(M.client) M << sound('sound/AI/poweroff.ogg') - for(var/obj/machinery/power/smes/S in power_machines) + for(var/obj/machinery/power/battery/smes/S in power_machines) if(istype(get_area(S), /area/turret_protected) || S.z != 1) continue S.charge = 0 S.output = 0 S.online = 0 - S.updateicon() + S.update_icon() S.power_change() var/list/skipped_areas = list(/area/engineering/engine, /area/turret_protected/ai) @@ -57,13 +57,13 @@ if(C.cell && C.z == 1) C.cell.charge = C.cell.maxcharge C.chargemode = 1 - for(var/obj/machinery/power/smes/S in power_machines) + for(var/obj/machinery/power/battery/smes/S in power_machines) if(S.z != 1) continue S.charge = S.capacity S.output = 200000 S.online = 1 - S.updateicon() + S.update_icon() S.power_change() for(var/area/A in areas) if(A.name != "Space" && A.name != "Engine Walls" && A.name != "Chemical Lab Test Chamber" && A.name != "space" && A.name != "Escape Shuttle" && A.name != "Arrival Area" && A.name != "Arrival Shuttle" && A.name != "start area" && A.name != "Engine Combustion Chamber") @@ -77,12 +77,12 @@ command_alert("All SMESs on [station_name()] have been recharged. We apologize for the inconvenience.", "Power Systems Nominal") for(var/mob/M in player_list) if(M.client) M << sound('sound/AI/poweron.ogg') - for(var/obj/machinery/power/smes/S in power_machines) + for(var/obj/machinery/power/battery/smes/S in power_machines) if(S.z != 1) continue S.charge = S.capacity S.output = 200000 S.online = 1 - S.updateicon() + S.update_icon() S.power_change() suspend_alert = 0 diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index e392fbd2f59..b3339038162 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -1044,7 +1044,7 @@ Pressure: [env.return_pressure()]"} if(!Rad.active) Rad.toggle_power() - for(var/obj/machinery/power/smes/SMES in power_machines) + for(var/obj/machinery/power/battery/smes/SMES in power_machines) if(SMES.anchored) SMES.connect_to_network() // Just in case. SMES.chargemode = 1 @@ -1062,10 +1062,10 @@ Pressure: [env.return_pressure()]"} log_admin("[key_name(usr)] haxed the powergrid with magic SMES.") message_admins("[key_name_admin(usr)] haxed the powergrid with magic SMES.", 1) - for(var/obj/machinery/power/smes/SMES in power_machines) + for(var/obj/machinery/power/battery/smes/SMES in power_machines) var/turf/T=SMES.loc del(SMES) - var/obj/machinery/power/smes/magical/magic = new(T) + var/obj/machinery/power/battery/smes/infinite/magic = new(T) // Manually set up our powernets since stupid seems to reign in the powernet code. magic.connect_to_network() magic.output=200000 // AKA rape diff --git a/code/modules/maps/spawners/spawners.dm b/code/modules/maps/spawners/spawners.dm index a2552564b6c..effce7377c1 100644 --- a/code/modules/maps/spawners/spawners.dm +++ b/code/modules/maps/spawners/spawners.dm @@ -185,7 +185,7 @@ /obj/machinery/power/rad_collector, /obj/machinery/power/rust_core, /obj/machinery/power/rust_fuel_injector, - /obj/machinery/power/smes, + /obj/machinery/power/battery/smes, /obj/machinery/processor, /obj/machinery/recharge_station, /obj/machinery/rust/gyrotron, diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 8ef0276757e..5d2ddf107f6 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -66,7 +66,6 @@ var/coverlocked = 1 var/aidisabled = 0 var/tdir = null - var/obj/machinery/power/terminal/terminal = null var/lastused_light = 0 var/lastused_equip = 0 var/lastused_environ = 0 @@ -136,9 +135,9 @@ cell.maxcharge = cell_type // cell_type is maximum charge (old default was 1000 or 2500 (values one and two respectively) cell.charge = start_charge * cell.maxcharge / 100.0 // (convert percentage to actual value) - make_terminal() + finalise_terminal() //creates the terminal itself -/obj/machinery/power/apc/proc/make_terminal() +/obj/machinery/power/apc/finalise_terminal() // create a terminal object at the same position as original turf loc // wires will attach to this terminal = new/obj/machinery/power/terminal(src.loc) @@ -464,36 +463,15 @@ else user << "You fail to [ locked ? "unlock" : "lock"] the APC interface." else if (istype(W, /obj/item/stack/cable_coil) && !terminal && opened && has_electronics != 2) - var/turf/T = get_turf(src) - - // APCs are actually on the same tile as their terminal - if (T != get_turf(user)) - user << "You can't wire the APC from there!" - return - - if (T.intact) - user << "You must remove the floor plating in front of the APC first." - return - var/obj/item/stack/cable_coil/C = W if(C.amount < 10) user << "You need more wires." return - user << "You start adding cables to the APC frame..." - playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1) - if (do_after(user, 20) && !T.intact && opened && !terminal && has_electronics != 2 && C.amount >= 10) - var/obj/structure/cable/N = T.get_cable_node() - if (prob(50) && electrocute_mob(usr, N, N)) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(5, 1, src) - s.start() - return + + if(make_terminal(user)) C.use(10) - user.visible_message(\ - "[user.name] has added cables to the APC frame!",\ - "You add cables to the APC frame.") - make_terminal() terminal.connect_to_network() + else if (istype(W, /obj/item/weapon/wirecutters) && opened && terminal && has_electronics!=2) var/turf/T = get_turf(src) if (T.intact) @@ -1002,6 +980,8 @@ for(var/mob/M in viewers(src)) M.show_message("The [src.name] suddenly lets out a blast of smoke and some sparks!", 3, "You hear sizzling electronics.", 2) +/obj/machinery/power/apc/can_attach_terminal(mob/user) + return user.loc == src.loc && has_electronics != 2 && !terminal /obj/machinery/power/apc/surplus() if(terminal) diff --git a/code/modules/power/battery.dm b/code/modules/power/battery.dm new file mode 100644 index 00000000000..f59ab9d4973 --- /dev/null +++ b/code/modules/power/battery.dm @@ -0,0 +1,260 @@ +// Generic battery machine +// stores power + +#define SMESMAXCHARGELEVEL 200000 +#define SMESMAXOUTPUT 200000 +#define SMESRATE 0.05 // rate of internal charge to external power + +/obj/machinery/power/battery + name = "power storage unit" + desc = "A placeholder power storage unit. If found, please return to CentCom." + icon_state = "smes" + density = 1 + anchored = 1 + use_power = 0 + + var/output = 50000 + var/lastout = 0 + var/loaddemand = 0 + var/capacity = 5e6 //Max stored charge + var/charge = 1e6 //Stored charge + var/charging = 0 //Are we currently taking charge in? + var/chargemode = 0 //Are we set to charge or not? Not the same as charging + var/chargecount = 0 //How long we've spent since not charging + var/chargelevel = 50000 + var/online = 1 + + var/name_tag = "" + + var/infinite_power = 0 //makes the machine just generate power itself + + //Holders for powerout event. + var/last_output = 0 + var/last_charge = 0 + var/last_online = 0 + + machine_flags = SCREWTOGGLE | CROWDESTROY + +/obj/machinery/power/battery/process() + if (stat & BROKEN) + return + + if(infinite_power) //Only used for magical machines - BEWARE + capacity = INFINITY + charge = INFINITY + + var/_charging = charging + var/_online = online + + // Input + var/excess = surplus() + + if (charging) + if (excess >= chargelevel) // If there's power available, try to charge + var/load = min((capacity - charge) / SMESRATE, chargelevel) // Charge at set rate, limited to spare capacity + + charge += load * SMESRATE // Increase the charge + + add_load(load) // Add the load to the terminal side network + + else + charging = FALSE + chargecount = 0 + + else + if (chargemode) + if (chargecount > rand(3, 6)) + charging = TRUE + chargecount = 0 + + if (excess > chargelevel) + chargecount++ + else + chargecount = 0 + else + chargecount = 0 + + // Output + if (online) + lastout = min(charge / SMESRATE, output) // Limit output to that stored + + charge -= lastout * SMESRATE // Reduce the storage (may be recovered in /restore() if excessive) + + add_avail(lastout) // Add output to powernet (smes side) + + if (charge < 0.0001) + online = FALSE + lastout = 0 + + // Only update icon if state changed + if(_charging != charging || _online != online) + update_icon() + +/obj/machinery/power/battery/proc/chargedisplay() + return round(5.5*charge/(capacity ? capacity : 5e6)) + +/* + * Called after all power processes are finished + * Restores charge level to smes if there was excess this ptick + */ +/obj/machinery/power/battery/proc/restore() + if (stat & BROKEN) + return + + var/excess = powernet.netexcess // This was how much wasn't used on the network last ptick, minus any removed by other SMESes + + excess = min(lastout, excess) // Clamp it to how much was actually output by this SMES last ptick + + excess = min((capacity - charge) / SMESRATE, excess) // For safety, also limit recharge by space capacity of SMES (shouldn't happen) + + // Now recharge this amount + + charge += excess * SMESRATE // Restore unused power + + powernet.netexcess -= excess // Remove the excess from the powernet, so later SMESes don't try to use it + + loaddemand = lastout - excess + +/obj/machinery/power/battery/attack_ai(mob/user) + src.add_hiddenprint(user) + add_fingerprint(user) + ui_interact(user) + +/obj/machinery/power/battery/attack_hand(mob/user) + add_fingerprint(user) + ui_interact(user) + +/obj/machinery/power/battery/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) + + if(stat & BROKEN) + return + + // this is the data which will be sent to the ui + var/data[0] + data["nameTag"] = name_tag + data["storedCapacity"] = round(100.0*charge/capacity, 0.1) + data["charging"] = charging + data["chargeMode"] = chargemode + data["chargeLevel"] = chargelevel + data["chargeMax"] = SMESMAXCHARGELEVEL + data["outputOnline"] = online + data["outputLevel"] = output + data["outputMax"] = SMESMAXOUTPUT + data["outputLoad"] = round(loaddemand) + + // update the ui if it exists, returns null if no ui is passed/found + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) + if (!ui) + // the ui does not exist, so we'll create a new() one + // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm + ui = new(user, src, ui_key, "smes.tmpl", "SMES Power Storage Unit", 540, 380) + // when the ui is first opened this is the data it will use + ui.set_initial_data(data) + // open the new ui window + ui.open() + // auto update every Master Controller tick + ui.set_auto_update(1) + +/obj/machinery/power/battery/Topic(href, href_list) + if(..()) + return 1 + if(href_list["close"]) + if(usr.machine == src) usr.unset_machine() + return 1 + if (usr.stat || usr.restrained() ) + return + if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") + if(!istype(usr, /mob/living/silicon/ai)) + usr << "You don't have the dexterity to do this!" + return + +//world << "[href] ; [href_list[href]]" + + if (!isturf(src.loc) && !istype(usr, /mob/living/silicon/)) + return 0 // Do not update ui + + if( href_list["cmode"] ) + chargemode = !chargemode + if(!chargemode) + charging = 0 + update_icon() + + else if( href_list["online"] ) + online = !online + update_icon() + else if( href_list["input"] ) + switch( href_list["input"] ) + if("min") + chargelevel = 0 + if("max") + chargelevel = SMESMAXCHARGELEVEL //30000 + if("set") + chargelevel = input(usr, "Enter new input level (0-[SMESMAXCHARGELEVEL])", "SMES Input Power Control", chargelevel) as num + chargelevel = max(0, min(SMESMAXCHARGELEVEL, chargelevel)) // clamp to range + + else if( href_list["output"] ) + switch( href_list["output"] ) + if("min") + output = 0 + if("max") + output = SMESMAXOUTPUT //30000 + if("set") + output = input(usr, "Enter new output level (0-[SMESMAXOUTPUT])", "SMES Output Power Control", output) as num + output = max(0, min(SMESMAXOUTPUT, output)) // clamp to range + + investigation_log(I_SINGULO,"input/output; [chargelevel>output?"":""][chargelevel]/[output] | Output-mode: [online?"on":"off"] | Input-mode: [chargemode?"auto":"off"] by [usr.key]") + + return 1 + +/obj/machinery/power/battery/proc/ion_act() + if(src.z == 1) + if(prob(1)) //explosion + message_admins("SMES explosion in [get_area(src)]") + src.visible_message("\The [src] is making strange noises!", + "You hear sizzling electronics.") + + sleep(10*pick(4,5,6,7,10,14)) + + var/datum/effect/effect/system/smoke_spread/smoke = new() + smoke.set_up(3, 0, src.loc) + smoke.attach(src) + smoke.start() + explosion(src.loc, -1, 0, 1, 3, 0) + qdel(src) + return + else if(prob(15)) //Power drain + message_admins("SMES power drain in [get_area(src)]") + var/datum/effect/effect/system/spark_spread/s = new + s.set_up(3, 1, src) + s.start() + if(prob(50)) + emp_act(1) + else + emp_act(2) + else if(prob(5)) //smoke only + message_admins("SMES smoke in [get_area(src)]") + var/datum/effect/effect/system/smoke_spread/smoke = new() + smoke.set_up(3, 0, src.loc) + smoke.attach(src) + smoke.start() + + +/obj/machinery/power/battery/emp_act(severity) + online = 0 + charging = 0 + output = 0 + charge = max(0, charge - 1e6/severity) + + spawn(100) + output = initial(output) + charging = initial(charging) + online = initial(online) + ..() + +/proc/rate_control(var/S, var/V, var/C, var/Min=1, var/Max=5, var/Limit=null) + var/href = "-[href]=-[Min]'>- [(C?C : 0)] [href]=[Min]'>+[href]=[Max]'>+" + if(Limit) return "[href]=-[Limit]'>-"+rate+"[href]=[Limit]'>+" + return rate + +#undef SMESRATE diff --git a/code/modules/power/battery_ion.dm b/code/modules/power/battery_ion.dm new file mode 100644 index 00000000000..e2ad66ee742 --- /dev/null +++ b/code/modules/power/battery_ion.dm @@ -0,0 +1,70 @@ +// Generic battery machine +// stores power + +/obj/machinery/power/battery/portable + name = "portable power storage unit" + desc = "A IOn-model portable storage unit, used to transport charge around the station." + icon_state = "port_smes" + density = 1 + anchored = 0 + use_power = 0 + + machine_flags = SCREWTOGGLE | CROWDESTROY | WRENCHMOVE + + var/obj/machinery/power/battery_port/connected_to + +/obj/machinery/power/battery/portable/initialize() + ..() + if(anchored) + var/obj/machinery/power/battery_port/port = locate() in src.loc + if(port) + port.connect_battery(src) + +/obj/machinery/power/battery/portable/get_powernet() + if(connected_to) + return connected_to.get_powernet() + +/obj/machinery/power/battery/portable/add_avail(var/amount) + if(connected_to) + connected_to.add_avail(amount) + +/obj/machinery/power/battery/portable/add_load(var/amount) + if(connected_to) + connected_to.add_load(amount) + +/obj/machinery/power/battery/portable/surplus() + if(connected_to) + return connected_to.surplus() + return 0 + +/obj/machinery/power/battery/portable/wrenchAnchor(mob/user) + if(..() == 1) + if(anchored) + var/obj/machinery/power/battery_port/port = locate() in src.loc + if(port) + port.connect_battery(src) + else + if(connected_to) + connected_to.disconnect_battery() + return 1 + return -1 + +/obj/machinery/power/battery/portable/update_icon() + overlays.len = 0 + if(stat & BROKEN) return + + overlays += image('icons/obj/power.dmi', "smes-op[online]") + + if(charging) + overlays += image('icons/obj/power.dmi', "smes-oc1") + else + if(chargemode) + overlays += image('icons/obj/power.dmi', "smes-oc0") + + var/clevel = chargedisplay() + if(clevel>0) + overlays += image('icons/obj/power.dmi', "smes-og[clevel]") + + if(connected_to) + connected_to.update_icon() + return diff --git a/code/modules/power/battery_port.dm b/code/modules/power/battery_port.dm new file mode 100644 index 00000000000..0c38de9979b --- /dev/null +++ b/code/modules/power/battery_port.dm @@ -0,0 +1,92 @@ +/obj/machinery/power/battery_port + name = "power connector" + desc = "A user-safe high-current contact port, used for attaching compatible machinery." + icon_state = "battery_port" + density = 0 + anchored = 1 + use_power = 0 + + var/obj/machinery/power/battery/portable/connected = null + + machine_flags = SCREWTOGGLE | CROWDESTROY + + +/obj/machinery/power/battery_port/New() + . = ..() + +/* + component_parts = newlist( + /obj/item/weapon/circuitboard/battery_port + ) + + RefreshParts() +*/ + connect_to_network() + + +/obj/machinery/power/battery_port/Destroy() + disconnect_battery() + ..() + +/obj/machinery/power/battery_port/attackby(obj/item/W, mob/user) + if(istype(W, /obj/item/stack/cable_coil) && !terminal) + var/obj/item/stack/cable_coil/CC = W + + if (CC.amount < 10) + user << "You need 10 length cable coil to make a terminal." + return + + if(make_terminal(user)) + CC.use(10) + terminal.connect_to_network() + + user.visible_message(\ + "[user.name] has added cables to the SMES!",\ + "You added cables the SMES.") + src.stat = 0 + return 1 + return ..() + +/obj/machinery/power/battery_port/update_icon() + overlays.len = 0 + if(stat & BROKEN) return + + if(connected && connected.charging) + overlays += image('icons/obj/power.dmi', "bp-c") + else + if(connected) + if(connected.charge > 0) + overlays += image('icons/obj/power.dmi', "bp-o") + else + overlays += image('icons/obj/power.dmi', "bp-d") + +/obj/machinery/power/battery_port/add_load(var/amount) + if(terminal && terminal.get_powernet()) + terminal.powernet.load += amount + return 1 + return 0 + +/obj/machinery/power/battery_port/surplus() + if(terminal) + return terminal.surplus() + return 0 + +/obj/machinery/power/battery_port/crowbarDestroy(mob/user) + if(connected) + user << "You can't disconnect \the [src] while it has \the [connected] attached." + return -1 + return ..() + +/obj/machinery/power/battery_port/proc/connect_battery(obj/machinery/power/battery/portable/portable) + if(portable) + connected = portable + portable.connected_to = src + connected.update_icon() + +/obj/machinery/power/battery_port/proc/disconnect_battery() + if(connected) + connected.connected_to = null + connected.update_icon() + connected = null + update_icon() + diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index fcd94484ea6..51a28f8edbe 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -18,6 +18,8 @@ //For powernet rebuilding var/build_status = 0 //1 means it needs rebuilding during the next tick or on usage + var/obj/machinery/power/terminal/terminal = null //not strictly used on all machines - a placeholder + /obj/machinery/power/New() . = ..() machines -= src @@ -27,6 +29,11 @@ /obj/machinery/power/Destroy() disconnect_from_network() power_machines -= src + + if (terminal) + terminal.master = null + terminal = null + ..() /////////////////////////////// diff --git a/code/modules/power/powernet.dm b/code/modules/power/powernet.dm index 9df93a85927..0b62a9d6ab9 100644 --- a/code/modules/power/powernet.dm +++ b/code/modules/power/powernet.dm @@ -99,8 +99,8 @@ Powernet procs : netexcess = avail - load if(netexcess > 100 && nodes && nodes.len) // if there was excess power last cycle - for(var/obj/machinery/power/smes/S in nodes) // find the SMESes in the network - S.restore() // and restore some of the power that was used + for(var/obj/machinery/power/battery/B in nodes) // find the SMESes in the network + B.restore() // and restore some of the power that was used // updates the viewed load (as seen on power computers) viewload = 0.8 * viewload + 0.2 * load diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 1a932606073..1d60e28e97e 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -1,37 +1,17 @@ // the SMES // stores power -#define SMESMAXCHARGELEVEL 200000 -#define SMESMAXOUTPUT 200000 -#define SMESRATE 0.05 // rate of internal charge to external power - -/obj/machinery/power/smes +/obj/machinery/power/battery/smes name = "power storage unit" desc = "A high-capacity superconducting magnetic energy storage (SMES) unit." icon_state = "smes" density = 1 anchored = 1 use_power = 0 - var/output = 50000 - var/lastout = 0 - var/loaddemand = 0 - var/capacity = 5e6 - var/charge = 1e6 - var/charging = 0 - var/chargemode = 0 - var/chargecount = 0 - var/chargelevel = 50000 - var/online = 1 - var/name_tag = null - var/obj/machinery/power/terminal/terminal = null - //Holders for powerout event. - var/last_output = 0 - var/last_charge = 0 - var/last_online = 0 machine_flags = SCREWTOGGLE | CROWDESTROY -/obj/machinery/power/smes/New() +/obj/machinery/power/battery/smes/New() . = ..() spawn(5) dir_loop: @@ -45,7 +25,7 @@ stat |= BROKEN return terminal.master = src - updateicon() + update_icon() component_parts = newlist( /obj/item/weapon/circuitboard/smes, @@ -65,34 +45,7 @@ RefreshParts() -/obj/machinery/power/smes/proc/make_terminal(const/mob/user) - if (user.loc == loc) - user << "You must not be on the same tile with SMES." - return 1 - - var/userdir = get_dir(user, src) - - for(var/dirs in cardinal) //there shouldn't be any diagonal terminals - if(userdir == dirs) - var/turf/T = get_turf(user) - if(T.intact) - user << "The floor plating must be removed first." - return 1 - - user << "You start adding cable to the SMES." - playsound(get_turf(src), 'sound/items/zip.ogg', 100, 1) - if (do_after(user, 100) && panel_open && !terminal && !T.intact) - terminal = new /obj/machinery/power/terminal(get_turf(user)) - terminal.dir = dirs - terminal.master = src - return 0 - else - return 1 - - user << "You can't wire the SMES like that!" - return 1 - -/obj/machinery/power/smes/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) //these can only be moved by being reconstructed, solves having to remake the powernet. +/obj/machinery/power/battery/smes/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) //these can only be moved by being reconstructed, solves having to remake the powernet. if(iscrowbar(W) && panel_open && terminal) user << "You must first cut the terminal from the SMES!" return 1 @@ -106,15 +59,15 @@ user << "You need 10 length cable coil to make a terminal." return - if (make_terminal(user)) - return + if(make_terminal(user)) + CC.use(10) + terminal.connect_to_network() - CC.use(10) - user.visible_message(\ - "[user.name] has added cables to the SMES!",\ - "You added cables the SMES.") - terminal.connect_to_network() - src.stat = 0 + user.visible_message(\ + "[user.name] has added cables to the SMES!",\ + "You added cables the SMES.") + src.stat = 0 + return 1 else if(istype(W, /obj/item/weapon/wirecutters) && terminal) var/turf/T = get_turf(terminal) if(T.intact) @@ -139,7 +92,7 @@ return 1 return -/obj/machinery/power/smes/proc/updateicon() +/obj/machinery/power/battery/smes/update_icon() overlays.len = 0 if(stat & BROKEN) return @@ -156,254 +109,29 @@ overlays += image('icons/obj/power.dmi', "smes-og[clevel]") return - -/obj/machinery/power/smes/proc/chargedisplay() - return round(5.5*charge/(capacity ? capacity : 5e6)) - -/obj/machinery/power/smes/process() - if (stat & BROKEN) - return - - var/_charging = charging - var/_online = online - - // Input - if (terminal) - var/excess = terminal.surplus() - - if (charging) - if (excess >= chargelevel) // If there's power available, try to charge - var/load = min((capacity - charge) / SMESRATE, chargelevel) // Charge at set rate, limited to spare capacity - - charge += load * SMESRATE // Increase the charge - - add_load(load) // Add the load to the terminal side network - else - charging = FALSE - chargecount = 0 - else - if (chargemode) - if (chargecount > rand(3, 6)) - charging = TRUE - chargecount = 0 - - if (excess > chargelevel) - chargecount++ - else - chargecount = 0 - else - chargecount = 0 - else - charging = FALSE - chargecount = 0 - - // Output - if (online) - lastout = min(charge / SMESRATE, output) // Limit output to that stored - - charge -= lastout * SMESRATE // Reduce the storage (may be recovered in /restore() if excessive) - - add_avail(lastout) // Add output to powernet (smes side) - - if (charge < 0.0001) - online = FALSE - lastout = 0 - - // Only update icon if state changed - if(_charging != charging || _online != online) - updateicon() - -/* - * Called after all power processes are finished - * Restores charge level to smes if there was excess this ptick - */ -/obj/machinery/power/smes/proc/restore() - if (stat & BROKEN) - return - - var/excess = powernet.netexcess // This was how much wasn't used on the network last ptick, minus any removed by other SMESes - - excess = min(lastout, excess) // Clamp it to how much was actually output by this SMES last ptick - - excess = min((capacity - charge) / SMESRATE, excess) // For safety, also limit recharge by space capacity of SMES (shouldn't happen) - - // Now recharge this amount - +/obj/machinery/power/battery/smes/restore() var/_chargedisplay = chargedisplay() - - charge += excess * SMESRATE // Restore unused power - - powernet.netexcess -= excess // Remove the excess from the powernet, so later SMESes don't try to use it - - loaddemand = lastout - excess - + ..() if(_chargedisplay != chargedisplay()) // If needed updates the icons overlay - updateicon() + update_icon() -/obj/machinery/power/smes/add_load(var/amount) - if(terminal && terminal.get_powernet()) - terminal.powernet.load += amount +/obj/machinery/power/battery/smes/can_attach_terminal(mob/user) + return ..(user) && panel_open -/obj/machinery/power/smes/attack_ai(mob/user) - src.add_hiddenprint(user) - add_fingerprint(user) - ui_interact(user) +/obj/machinery/power/battery/smes/surplus() + if(terminal) + return terminal.surplus() + return 0 -/obj/machinery/power/smes/attack_hand(mob/user) - add_fingerprint(user) - ui_interact(user) +/obj/machinery/power/battery/smes/add_load(var/amount) + if(terminal) + terminal.add_load(amount) -/obj/machinery/power/smes/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null) - - if(stat & BROKEN) - return - - // this is the data which will be sent to the ui - var/data[0] - data["nameTag"] = name_tag - data["storedCapacity"] = round(100.0*charge/capacity, 0.1) - data["charging"] = charging - data["chargeMode"] = chargemode - data["chargeLevel"] = chargelevel - data["chargeMax"] = SMESMAXCHARGELEVEL - data["outputOnline"] = online - data["outputLevel"] = output - data["outputMax"] = SMESMAXOUTPUT - data["outputLoad"] = round(loaddemand) - - // update the ui if it exists, returns null if no ui is passed/found - ui = nanomanager.try_update_ui(user, src, ui_key, ui, data) - if (!ui) - // the ui does not exist, so we'll create a new() one - // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm - ui = new(user, src, ui_key, "smes.tmpl", "SMES Power Storage Unit", 540, 380) - // when the ui is first opened this is the data it will use - ui.set_initial_data(data) - // open the new ui window - ui.open() - // auto update every Master Controller tick - ui.set_auto_update(1) - -/obj/machinery/power/smes/Topic(href, href_list) - if(!isAI(usr) && usr.z != z) return 1 - ..() - if(href_list["close"]) - if(usr.machine == src) usr.unset_machine() - return 1 - if (usr.stat || usr.restrained() ) - return - if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") - if(!istype(usr, /mob/living/silicon/ai)) - usr << "You don't have the dexterity to do this!" - return - -//world << "[href] ; [href_list[href]]" - - if (!isturf(src.loc) && !istype(usr, /mob/living/silicon/)) - return 0 // Do not update ui - - if( href_list["cmode"] ) - chargemode = !chargemode - if(!chargemode) - charging = 0 - updateicon() - - else if( href_list["online"] ) - online = !online - updateicon() - else if( href_list["input"] ) - switch( href_list["input"] ) - if("min") - chargelevel = 0 - if("max") - chargelevel = SMESMAXCHARGELEVEL //30000 - if("set") - chargelevel = input(usr, "Enter new input level (0-[SMESMAXCHARGELEVEL])", "SMES Input Power Control", chargelevel) as num - chargelevel = max(0, min(SMESMAXCHARGELEVEL, chargelevel)) // clamp to range - - else if( href_list["output"] ) - switch( href_list["output"] ) - if("min") - output = 0 - if("max") - output = SMESMAXOUTPUT //30000 - if("set") - output = input(usr, "Enter new output level (0-[SMESMAXOUTPUT])", "SMES Output Power Control", output) as num - output = max(0, min(SMESMAXOUTPUT, output)) // clamp to range - - investigation_log(I_SINGULO,"input/output; [chargelevel>output?"":""][chargelevel]/[output] | Output-mode: [online?"on":"off"] | Input-mode: [chargemode?"auto":"off"] by [usr.key]") - - return 1 - -/obj/machinery/power/smes/proc/ion_act() - if(src.z == 1) - if(prob(1)) //explosion - world << "SMES explosion in [src.loc.loc]" - for(var/mob/M in viewers(src)) - M.show_message("The [src.name] is making strange noises!", 3, "You hear sizzling electronics.", 2) - sleep(10*pick(4,5,6,7,10,14)) - var/datum/effect/effect/system/smoke_spread/smoke = new /datum/effect/effect/system/smoke_spread() - smoke.set_up(3, 0, src.loc) - smoke.attach(src) - smoke.start() - explosion(src.loc, -1, 0, 1, 3, 0) - del(src) - return - if(prob(15)) //Power drain - world << "SMES power drain in [src.loc.loc]" - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(3, 1, src) - s.start() - if(prob(50)) - emp_act(1) - else - emp_act(2) - if(prob(5)) //smoke only - world << "SMES smoke in [src.loc.loc]" - var/datum/effect/effect/system/smoke_spread/smoke = new /datum/effect/effect/system/smoke_spread() - smoke.set_up(3, 0, src.loc) - smoke.attach(src) - smoke.start() - - -/obj/machinery/power/smes/emp_act(severity) - online = 0 - charging = 0 - output = 0 - charge -= 1e6/severity - if (charge < 0) - charge = 0 - spawn(100) - output = initial(output) - charging = initial(charging) - online = initial(online) - ..() - - - -/obj/machinery/power/smes/magical +/obj/machinery/power/battery/smes/infinite name = "magical power storage unit" desc = "A high-capacity superconducting magnetic energy storage (SMES) unit. Magically produces power." + infinite_power = 1 + mech_flags = MECH_SCAN_FAIL -/obj/machinery/power/smes/magical/process() - // Is this really needed? - capacity = INFINITY - charge = INFINITY - ..() - -/proc/rate_control(var/S, var/V, var/C, var/Min=1, var/Max=5, var/Limit=null) - var/href = "-[href]=-[Min]'>- [(C?C : 0)] [href]=[Min]'>+[href]=[Max]'>+" - if(Limit) return "[href]=-[Limit]'>-"+rate+"[href]=[Limit]'>+" - return rate - -/obj/machinery/power/smes/Destroy() - if (terminal) - terminal.master = null - terminal = null - - ..() - -#undef SMESRATE diff --git a/code/modules/power/terminal.dm b/code/modules/power/terminal.dm index 16a429a495b..0e84bcb79c3 100644 --- a/code/modules/power/terminal.dm +++ b/code/modules/power/terminal.dm @@ -42,3 +42,37 @@ qdel(src) return ..() + +/obj/machinery/power/proc/make_terminal(mob/user) + if(!can_attach_terminal(user)) + user << "You can't wire \the [src] like that!" + return 0 + + var/turf/T = get_turf(user) + if(T.intact) + user << "The floor plating must be removed first." + return 0 + + user << "You start adding cable to \the [src]." + playsound(get_turf(src), 'sound/items/zip.ogg', 100, 1) + if (do_after(user, 100) && !T.intact && can_attach_terminal(user)) + + //Shock chance + var/obj/structure/cable/N = T.get_cable_node() + if (prob(50) && electrocute_mob(user, N, N)) + var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread + s.set_up(5, 1, src) + s.start() + return 0 + + finalise_terminal(get_turf(user)) + return 1 + return 0 + +/obj/machinery/power/proc/finalise_terminal(newloc) + terminal = new /obj/machinery/power/terminal(newloc) + terminal.dir = get_dir(newloc, src) + terminal.master = src + +/obj/machinery/power/proc/can_attach_terminal(mob/user) + return user.loc != src.loc && (get_dir(user, src) in cardinal) && !terminal diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_cellcharge.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_cellcharge.dm index e3e4f8dfdf5..e007acc2e7d 100644 --- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_cellcharge.dm +++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_cellcharge.dm @@ -19,7 +19,7 @@ for (var/obj/machinery/power/apc/C in range(200, holder)) for (var/obj/item/weapon/cell/B in C.contents) B.charge += 25 - for (var/obj/machinery/power/smes/S in range (src.effectrange,src)) + for (var/obj/machinery/power/battery/S in range (src.effectrange,src)) S.charge += 25 for (var/mob/living/silicon/robot/M in mob_list) for (var/obj/item/weapon/cell/D in M.contents) @@ -35,7 +35,7 @@ for (var/obj/machinery/power/apc/C in range(200, holder)) for (var/obj/item/weapon/cell/B in C.contents) B.charge += rand() * 100 - for (var/obj/machinery/power/smes/S in range (src.effectrange,src)) + for (var/obj/machinery/power/battery/S in range (src.effectrange,src)) S.charge += 250 for (var/mob/living/silicon/robot/M in mob_list) for (var/obj/item/weapon/cell/D in M.contents) diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_celldrain.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_celldrain.dm index 1593179d58d..1f2e8d43e75 100644 --- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_celldrain.dm +++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_celldrain.dm @@ -20,7 +20,7 @@ for (var/obj/machinery/power/apc/C in range(200, holder)) for (var/obj/item/weapon/cell/B in C.contents) B.charge = max(B.charge - 50,0) - for (var/obj/machinery/power/smes/S in range (src.effectrange,src)) + for (var/obj/machinery/power/battery/S in range (src.effectrange,src)) S.charge = max(S.charge - 100,0) for (var/mob/living/silicon/robot/M in mob_list) for (var/obj/item/weapon/cell/D in M.contents) @@ -33,7 +33,7 @@ for (var/obj/machinery/power/apc/C in range(200, holder)) for (var/obj/item/weapon/cell/B in C.contents) B.charge = max(B.charge - rand() * 150,0) - for (var/obj/machinery/power/smes/S in range (src.effectrange,src)) + for (var/obj/machinery/power/battery/S in range (src.effectrange,src)) S.charge = max(S.charge - 250,0) for (var/mob/living/silicon/robot/M in mob_list) for (var/obj/item/weapon/cell/D in M.contents) diff --git a/icons/obj/power.dmi b/icons/obj/power.dmi index bbdc83b5270bf2bb9c91adbbafc8bcfeeb697cab..efd6325b8b9f9b099e055f03487fe13f247225f4 100644 GIT binary patch literal 29914 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%0AC$Ufg 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 O;E|e+YUx9(xBm;6ZoiWN diff --git a/maps/defficiency.dmm b/maps/defficiency.dmm index 450376b0627..804ad435b16 100644 --- a/maps/defficiency.dmm +++ b/maps/defficiency.dmm @@ -611,7 +611,7 @@ "alM" = (/obj/machinery/telecomms/server/presets/supply,/turf/simulated/floor{icon_state = "dark"},/area/tcomms/chamber) "alN" = (/obj/machinery/message_server,/turf/simulated/floor{icon_state = "dark"},/area/tcomms/chamber) "alO" = (/turf/simulated/floor{icon_state = "dark"},/area/tcomms/chamber) -"alP" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable,/turf/simulated/floor/bluegrid,/area/tcomms/chamber) +"alP" = (/obj/machinery/power/battery/smes{charge = 5e+006},/obj/structure/cable,/turf/simulated/floor/bluegrid,/area/tcomms/chamber) "alQ" = (/obj/machinery/blackbox_recorder,/turf/simulated/floor{icon_state = "dark"},/area/tcomms/chamber) "alR" = (/obj/machinery/telecomms/server/presets/common,/turf/simulated/floor{icon_state = "dark"},/area/tcomms/chamber) "alS" = (/obj/machinery/telecomms/server/presets/engineering,/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction/hidden{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/tcomms/chamber) @@ -1459,7 +1459,7 @@ "aCc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/solar/fport) "aCd" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_y = 32},/turf/simulated/floor/plating,/area/solar/fport) "aCe" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/terminal{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/solar/fport) -"aCf" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/smes{charge = 0},/turf/simulated/floor/plating,/area/solar/fport) +"aCf" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/battery/smes{charge = 0},/turf/simulated/floor/plating,/area/solar/fport) "aCg" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/solar/fport) "aCh" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/derelictparts/fore) "aCi" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/nmpi{tag = "icon-maintguide (NORTH)"; icon_state = "maintguide"; dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/maintenance/fore) @@ -3302,14 +3302,14 @@ "blz" = (/obj/machinery/door/poddoor{density = 0; dir = 4; icon_state = "pdoor0"; id_tag = "SM_Rad2"; name = "radiation shutters"; opacity = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/engineering/supermatter_room) "blA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/nmpi{tag = "icon-maintguide (EAST)"; icon_state = "maintguide"; dir = 4},/obj/machinery/power/apc{dir = 1; pixel_y = 24; pixel_x = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "blB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/engineering/engine) -"blC" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTH)"; icon_state = "warning"; dir = 1},/turf/simulated/floor,/area/engineering/engine) +"blC" = (/obj/machinery/power/battery/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTH)"; icon_state = "warning"; dir = 1},/turf/simulated/floor,/area/engineering/engine) "blD" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id_tag = "xenobio3"; name = "Containment Blast Doors"; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/warning_stripes{tag = "icon-warning (EAST)"; icon_state = "warning"; dir = 4},/turf/simulated/floor{icon_state = "white"},/area/science/xenobiology) "blE" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/stack/cable_coil,/obj/item/weapon/circuitboard/airlock,/obj/item/weapon/circuitboard/airlock,/turf/simulated/floor,/area/engineering/engine) "blF" = (/obj/machinery/light/small,/turf/simulated/floor/plating,/area/engineering/engine) "blG" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_y = 32},/turf/simulated/floor/plating,/area/engineering/engine) "blH" = (/obj/structure/grille/broken,/obj/item/stack/rods,/turf/simulated/floor/plating,/area/derelictparts/fore) "blI" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/binary/valve{dir = 1},/obj/effect/decal/warning_stripes{tag = "icon-warning_corner"; icon_state = "warning_corner"; dir = 2},/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"blJ" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTHWEST)"; icon_state = "warning"; dir = 9},/turf/simulated/floor,/area/engineering/engine) +"blJ" = (/obj/machinery/power/battery/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTHWEST)"; icon_state = "warning"; dir = 9},/turf/simulated/floor,/area/engineering/engine) "blK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/maintenance/asmaint2) "blL" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/maintenance{name = "Derelict Parts Access"; req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "blM" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/crate,/obj/map/spawner/maint,/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -3367,7 +3367,7 @@ "bmM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/nmpi{tag = "icon-maintguide (EAST)"; icon_state = "maintguide"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bmN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/derelictparts/fsderelict) "bmO" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor,/area/engineering/engine) -"bmP" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTHEAST)"; icon_state = "warning"; dir = 5},/turf/simulated/floor,/area/engineering/engine) +"bmP" = (/obj/machinery/power/battery/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTHEAST)"; icon_state = "warning"; dir = 5},/turf/simulated/floor,/area/engineering/engine) "bmQ" = (/obj/machinery/camera{c_tag = "Supermatter S-O"; dir = 4},/turf/simulated/floor/plating,/area/engineering/supermatter_room) "bmR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/warning_stripes{tag = "icon-loading_area (NORTH)"; icon_state = "loading_area"; dir = 1},/turf/simulated/floor,/area/hallway/secondary/entry) "bmS" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -4053,7 +4053,7 @@ "bzW" = (/obj/machinery/atmospherics/binary/valve{dir = 4},/turf/simulated/floor/plating,/area/maintenance/apmaint) "bzX" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/remains/robot,/obj/item/weapon/stock_parts/capacitor{pixel_x = 8; pixel_y = -8},/obj/structure/sink{dir = 4; pixel_x = 11},/turf/simulated/floor/plating,/area/derelictparts/asderelict) "bzY" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/effect/decal/warning_stripes{tag = "icon-warning_corner (NORTH)"; icon_state = "warning_corner"; dir = 1},/turf/simulated/floor,/area/hallway/primary/central) -"bzZ" = (/obj/machinery/power/smes{capacity = 5e+008; charge = 5e+008; name = "experimental power storage unit"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"bzZ" = (/obj/machinery/power/battery/smes{capacity = 5e+008; charge = 5e+008; name = "experimental power storage unit"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bAa" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id_tag = "QMLoad2"},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTHEAST)"; icon_state = "warning"; dir = 5},/turf/simulated/floor,/area/supply/storage) "bAb" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable,/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bAc" = (/obj/effect/decal/cleanable/generic,/obj/item/weapon/reagent_containers/spray,/turf/simulated/floor/plating{icon_state = "panelscorched"},/area/derelictparts/asderelict) @@ -4558,7 +4558,7 @@ "bJH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/nmpi{tag = "icon-maintguide (EAST)"; icon_state = "maintguide"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/apmaint) "bJI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/nmpi{tag = "icon-maintguide (EAST)"; icon_state = "maintguide"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/apmaint) "bJJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/effect/nmpi{tag = "icon-maintguide (EAST)"; icon_state = "maintguide"; dir = 4},/obj/effect/nmpi{tag = "icon-maintguide (NORTHEAST)"; icon_state = "maintguide"; dir = 5},/turf/simulated/floor/plating,/area/maintenance/apmaint) -"bJK" = (/obj/machinery/power/smes{charge = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/solar/fstarboard) +"bJK" = (/obj/machinery/power/battery/smes{charge = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/solar/fstarboard) "bJL" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/terminal{dir = 8},/turf/simulated/floor/plating,/area/solar/fstarboard) "bJM" = (/turf/simulated/floor/plating{icon_state = "platingdmg3"},/area/solar/fstarboard) "bJN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/solar/fstarboard) @@ -6433,7 +6433,7 @@ "ctK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/solar/aport) "ctL" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_y = 32},/turf/simulated/floor/plating,/area/solar/aport) "ctM" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/terminal{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/solar/aport) -"ctN" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/smes{charge = 0},/turf/simulated/floor/plating,/area/solar/aport) +"ctN" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/battery/smes{charge = 0},/turf/simulated/floor/plating,/area/solar/aport) "ctO" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/solar/aport) "ctP" = (/obj/machinery/door/airlock/hatch{req_access_txt = "16"},/turf/simulated/floor/engine,/area/construction/mommi_nest) "ctQ" = (/obj/effect/decal/cleanable/dirt,/obj/effect/nmpi,/obj/machinery/alarm{dir = 8; pixel_x = 22},/turf/simulated/floor/plating,/area/maintenance/aft) @@ -6787,7 +6787,7 @@ "cAA" = (/obj/machinery/light_switch{pixel_x = -4; pixel_y = 28},/turf/simulated/floor{icon_state = "bluecorner"; dir = 1},/area/bridge) "cAB" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/bridge) "cAC" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/storage/secure/briefcase,/turf/simulated/floor/carpet,/area/bridge) -"cAD" = (/obj/machinery/power/smes/magical{output = 200000},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/airless{icon_state = "dark"},/area/turret_protected/goonroom) +"cAD" = (/obj/machinery/power/battery/smes/infinite{output = 200000},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/airless{icon_state = "dark"},/area/turret_protected/goonroom) "cAE" = (/obj/machinery/computer/communications,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/carpet,/area/bridge) "cAF" = (/obj/structure/table/woodentable,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/machinery/door/window{base_state = "right"; dir = 2; icon_state = "right"; name = "Captain's Desk"; pixel_y = -7; req_access_txt = "20"},/obj/item/weapon/folder/blue,/turf/simulated/floor/carpet,/area/bridge) "cAG" = (/obj/structure/table/woodentable,/obj/structure/window/reinforced{dir = 4},/obj/item/device/aicard,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/carpet,/area/bridge) @@ -7174,7 +7174,7 @@ "cHX" = (/obj/item/weapon/soap/nanotrasen{desc = "Don't drop it."},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1},/turf/simulated/floor{icon_state = "freezerfloor"},/area/security/prison) "cHY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor{icon_state = "freezerfloor"},/area/security/prison) "cHZ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "freezerfloor"},/area/security/prison) -"cIa" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/smes{charge = 0},/turf/simulated/floor/plating,/area/solar/astarboard) +"cIa" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/battery/smes{charge = 0},/turf/simulated/floor/plating,/area/solar/astarboard) "cIb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/solar/astarboard) "cIc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/solar/astarboard) "cId" = (/obj/machinery/door/airlock/engineering{name = "Aft Port Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/solar/astarboard) @@ -8077,7 +8077,7 @@ "cZq" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/airless,/area/no_ethereal) "cZr" = (/obj/machinery/prism{anchored = 1; dir = 4},/obj/effect/decal/warning_stripes{icon_state = "bot"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/goonroom) "cZs" = (/obj/structure/sign/securearea{pixel_y = 32},/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/goonroom) -"cZt" = (/obj/machinery/power/smes/magical,/obj/structure/cable,/turf/simulated/floor/airless{icon_state = "dark"},/area/turret_protected/goonroom) +"cZt" = (/obj/machinery/power/battery/smes/infinite,/obj/structure/cable,/turf/simulated/floor/airless{icon_state = "dark"},/area/turret_protected/goonroom) "cZu" = (/obj/machinery/light/small{dir = 1},/obj/structure/sign/securearea{pixel_y = 32},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/goonroom) "cZv" = (/obj/structure/lattice,/obj/structure/grille/broken,/turf/space,/area/no_ethereal) "cZw" = (/turf/simulated/floor{icon_state = "solarpanel"},/area) @@ -8141,7 +8141,7 @@ "daC" = (/obj/structure/table,/obj/item/weapon/folder,/obj/item/weapon/stock_parts/micro_laser{pixel_x = -5; pixel_y = 5},/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/circuitboard/seed_extractor,/turf/simulated/floor/plating,/area/maintenance/aft) "daD" = (/obj/machinery/flasher{id_tag = "Cell 1"; pixel_y = -28},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "daE" = (/obj/machinery/vending,/turf/simulated/floor/plating,/area/maintenance/aft) -"daF" = (/obj/machinery/power/smes/magical,/obj/structure/cable,/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/goonroom) +"daF" = (/obj/machinery/power/battery/smes/infinite,/obj/structure/cable,/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/goonroom) "daG" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/door/window{dir = 1; name = "Execution Room"; req_access_txt = "63"},/turf/simulated/floor{icon_state = "dark"},/area/security/gas_chamber) "daH" = (/obj/machinery/flasher{id_tag = "Cell 4"; pixel_y = -28},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "daI" = (/obj/machinery/atmospherics/miner/toxins,/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/goonroom) @@ -8262,7 +8262,7 @@ "dcT" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating/airless,/area/solar/derelict_starboard) "dcU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/nmpi{tag = "icon-maintguide (EAST)"; icon_state = "maintguide"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft) "dcV" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1},/obj/machinery/camera{c_tag = "Prison Southwest"; dir = 4; network = list("SS13","Prison")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door_timer/cell_2{dir = 8; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/prison) -"dcW" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/derelict/solar_control) +"dcW" = (/obj/machinery/power/battery/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/derelict/solar_control) "dcX" = (/obj/machinery/power/solar/panel{id_tag = "djstationsolar"; name = "DJ Station Solar Array"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{icon_state = "solarpanel"},/area/djstation/solars) "dcY" = (/obj/machinery/light/small{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/derelict/solar_control) "dcZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/derelict/solar_control) @@ -8452,7 +8452,7 @@ "dgB" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) "dgC" = (/turf/simulated/wall/r_wall,/area/derelict/hallway/primary) "dgD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary) -"dgE" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/smes{charge = 5e+006},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTH)"; icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/djstation) +"dgE" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/battery/smes{charge = 5e+006},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTH)"; icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/djstation) "dgF" = (/obj/structure/window{dir = 4},/turf/simulated/floor/airless,/area/derelict/hallway/primary) "dgG" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTH)"; icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/djstation) "dgH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine) @@ -8737,7 +8737,7 @@ "dma" = (/obj/machinery/door/airlock/command{name = "AI Upload"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) "dmb" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/bridge/ai_upload) "dmc" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) -"dmd" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) +"dmd" = (/obj/machinery/power/battery/smes,/obj/structure/cable,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) "dme" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) "dmf" = (/obj/machinery/atmospherics/unary/vent_pump{canSpawnMice = 0; dir = 4; external_pressure_bound = 140; on = 1; pressure_checks = 0},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/derelict/research) "dmg" = (/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) @@ -8843,7 +8843,7 @@ "doc" = (/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/longtermstorage) "dod" = (/obj/machinery/light/small{dir = 1},/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/longtermstorage) "doe" = (/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/longtermstorage) -"dof" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/research_outpost/power) +"dof" = (/obj/machinery/power/battery/smes,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/research_outpost/power) "dog" = (/obj/machinery/atmospherics/unary/outlet_injector{frequency = 1438; icon_state = "on"; id_tag = "tox_in"; on = 1},/obj/effect/decal/warning_stripes{icon_state = "bot"},/turf/simulated/floor/engine/vacuum,/area/derelict/atmos) "doh" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/research) "doi" = (/obj/machinery/atmospherics/pipe/manifold/insulated/hidden/blue{dir = 4},/obj/item/weapon/paper/derelict_invoice,/obj/machinery/meter,/obj/effect/decal/warning_stripes{tag = "icon-warning (WEST)"; icon_state = "warning"; dir = 8},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/research) @@ -9412,7 +9412,7 @@ "dyZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/mine/production) "dza" = (/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "Mining External"; dir = 4; network = list("MINE")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/ore_box,/turf/unsimulated/floor/asteroid,/area/mine/explored) "dzb" = (/obj/structure/sink{dir = 4; pixel_x = 11},/obj/machinery/light/small{dir = 8},/obj/structure/mirror{pixel_x = 28},/turf/simulated/floor{icon_state = "showroomfloor"},/area/mine/living_quarters) -"dzc" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/maintenance) +"dzc" = (/obj/machinery/power/battery/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/maintenance) "dzd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/mine/maintenance) "dze" = (/obj/machinery/door/airlock/glass_mining{name = "Mining Station Production"; req_access_txt = "48"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/mine/production) "dzf" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/simulated/floor,/area/mine/living_quarters) @@ -9598,7 +9598,7 @@ "dCD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/derelict/secret) "dCE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/secret) "dCF" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/derelict/secret) -"dCG" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating{icon_state = "panelscorched"},/area/derelict/secret) +"dCG" = (/obj/machinery/power/battery/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating{icon_state = "panelscorched"},/area/derelict/secret) "dCH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating{icon_state = "platingdmg3"},/area/derelict/secret) "dCI" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/derelict/secret) "dCJ" = (/turf/simulated/floor/plating{icon_state = "panelscorched"},/area/derelict/secret) @@ -9768,7 +9768,7 @@ "dFR" = (/obj/machinery/sleeper,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_station/start) "dFS" = (/obj/structure/sign/vacuum,/turf/simulated/wall/r_wall,/area/turret_protected/goonroom) "dFT" = (/obj/machinery/sleep_console,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_station/start) -"dFU" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engineering/antimatter_room) +"dFU" = (/obj/machinery/power/battery/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engineering/antimatter_room) "dFV" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/engineering/supermatter_room) "dFW" = (/obj/machinery/door_control{id_tag = "SM_Rad1"; name = "Radiation Collectors Shutters Control"; pixel_y = -25; req_access_txt = "11"},/turf/simulated/floor/plating,/area/engineering/supermatter_room) "dFX" = (/obj/machinery/light,/turf/simulated/floor/plating,/area/engineering/supermatter_room) diff --git a/maps/metaclub.dmm b/maps/metaclub.dmm index b5085f18956..6ec3f3f67a8 100644 --- a/maps/metaclub.dmm +++ b/maps/metaclub.dmm @@ -218,7 +218,7 @@ "aej" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/security/hos) "aek" = (/obj/machinery/power/apc{dir = 8; name = "Fore Starboard Solar APC"; pixel_x = -25; pixel_y = 3},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "ael" = (/obj/structure/closet,/obj/item/mounted/poster,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/maintenance/fore) -"aem" = (/obj/machinery/power/smes{charge = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) +"aem" = (/obj/machinery/power/battery/smes{charge = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "aen" = (/turf/simulated/floor/plating,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "aeo" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Infirmary"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor{dir = 4; icon_state = "whitered"; tag = "icon-whitehall (WEST)"},/area/security/medical) "aep" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) @@ -490,7 +490,7 @@ "ajv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "ajw" = (/obj/machinery/power/apc{dir = 8; name = "Fore Port Solar APC"; pixel_x = -25; pixel_y = 3},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) "ajx" = (/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Fore Port (NW) Solar Access"; req_access_txt = "10"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) -"ajy" = (/obj/machinery/power/smes{charge = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) +"ajy" = (/obj/machinery/power/battery/smes{charge = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) "ajz" = (/obj/structure/table,/obj/item/stack/medical/ointment{pixel_x = 3; pixel_y = -2},/obj/item/stack/medical/bruise_pack{pixel_x = -3; pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/inaprovaline,/obj/item/weapon/storage/secure/safe{pixel_x = 6; pixel_y = 28},/obj/item/weapon/handcuffs/cable/pink,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "ajA" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/fore) "ajB" = (/obj/machinery/space_heater,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) @@ -1498,7 +1498,7 @@ "aCP" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "neutralcorner"},/area/crew_quarters/sleep) "aCQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "neutralcorner"},/area/crew_quarters/sleep) "aCR" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fore) -"aCS" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; dir = 1; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/engineering/engine) +"aCS" = (/obj/machinery/power/battery/smes,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; dir = 1; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/engineering/engine) "aCT" = (/turf/simulated/floor{dir = 4; icon_state = "brown"},/area/supply/miningdock{name = "\improper Mining Office"}) "aCU" = (/obj/effect/decal/warning_stripes{icon_state = "unloading"},/obj/structure/closet/secure_closet/engineering_welding,/turf/simulated/floor,/area/engineering/supermatter_room) "aCV" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/engineering/engine) @@ -2352,7 +2352,7 @@ "aTl" = (/obj/structure/table,/obj/item/clothing/head/soft/grey{pixel_x = -2; pixel_y = 3},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/crew_quarters/locker) "aTm" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/toy/cards,/turf/simulated/floor,/area/crew_quarters/locker) "aTn" = (/obj/structure/table,/obj/item/device/paicard,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/crew_quarters/locker) -"aTo" = (/obj/machinery/power/smes{capacity = 5e+006; charge = 5e+006; chargemode = 1; charging = 1; output = 100000},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai) +"aTo" = (/obj/machinery/power/battery/smes{capacity = 5e+006; charge = 5e+006; chargemode = 1; charging = 1; output = 100000},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai) "aTp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/crew_quarters/locker) "aTq" = (/obj/machinery/status_display{density = 0; pixel_x = -32; pixel_y = 0; supply_display = 1},/obj/effect/decal/warning_stripes{tag = "icon-loading_area (NORTH)"; icon_state = "loading_area"; dir = 1},/obj/machinery/camera{c_tag = "Cargo Bay - SW"; dir = 4; network = list("SS13")},/turf/simulated/floor/plating{dir = 2; icon_state = "floor"},/area/supply/storage) "aTr" = (/obj/machinery/atmospherics/pipe/simple/insulated/visible/blue{dir = 10},/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "dark"},/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) @@ -3700,7 +3700,7 @@ "bth" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/port) "bti" = (/obj/machinery/power/apc{cell_type = 30000; dir = 8; equipment = 2; name = "MiniSat Solar APC"; pixel_x = -26; pixel_y = 3},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/decal/warning_stripes{tag = "icon-warning_corner"; icon_state = "warning_corner"; dir = 2},/obj/machinery/light/small,/obj/structure/sign/securearea{pixel_y = -32},/turf/simulated/floor/plating,/area/prison/solar_control{name = "\improper MiniSat Solar Array Control"}) "btj" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/space,/area) -"btk" = (/obj/machinery/power/smes{charge = 1e+006; chargemode = 1; charging = 1; output = 80000},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/decal/warning_stripes{tag = "icon-warning_corner (WEST)"; icon_state = "warning_corner"; dir = 8},/obj/machinery/light/small,/obj/machinery/camera{c_tag = "MiniSat - Exterior - W"; dir = 8; network = list("MiniSat")},/obj/structure/sign/securearea{pixel_y = -32},/turf/simulated/floor/plating,/area/prison/solar_control{name = "\improper MiniSat Solar Array Control"}) +"btk" = (/obj/machinery/power/battery/smes{charge = 1e+006; chargemode = 1; charging = 1; output = 80000},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/decal/warning_stripes{tag = "icon-warning_corner (WEST)"; icon_state = "warning_corner"; dir = 8},/obj/machinery/light/small,/obj/machinery/camera{c_tag = "MiniSat - Exterior - W"; dir = 8; network = list("MiniSat")},/obj/structure/sign/securearea{pixel_y = -32},/turf/simulated/floor/plating,/area/prison/solar_control{name = "\improper MiniSat Solar Array Control"}) "btl" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{dir = 4; icon_state = "brown"},/area/supply/miningdock{name = "\improper Mining Office"}) "btm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/prison/solar_control{name = "\improper MiniSat Solar Array Control"}) "btn" = (/obj/machinery/power/solar/control{id_tag = "minisatsolar"; name = "MiniSat Solar Control"; track = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/prison/solar_control{name = "\improper MiniSat Solar Array Control"}) @@ -4109,7 +4109,7 @@ "bBa" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/secondary/entry) "bBb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/full/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "courtroompriv"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/crew_quarters/courtroom) "bBc" = (/obj/effect/decal/warning_stripes{icon_state = "unloading"},/obj/structure/closet/secure_closet/engineering_personal,/obj/item/clothing/gloves/yellow,/turf/simulated/floor{dir = 1; icon_state = "floor"},/area/engineering/engine) -"bBd" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/camera{c_tag = "Engineering - Power Monitoring"; dir = 2; network = list("SS13")},/obj/machinery/power/smes,/turf/simulated/floor{dir = 1; icon_state = "floor"},/area/engineering/engine) +"bBd" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/camera{c_tag = "Engineering - Power Monitoring"; dir = 2; network = list("SS13")},/obj/machinery/power/battery/smes,/turf/simulated/floor{dir = 1; icon_state = "floor"},/area/engineering/engine) "bBe" = (/turf/simulated/wall/r_wall,/area/engineering/atmos_control) "bBf" = (/obj/machinery/alarm{pixel_y = 23},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/structure/table,/obj/item/weapon/wrench,/obj/item/weapon/crowbar/red,/obj/item/clothing/mask/gas,/turf/simulated/floor{dir = 9; icon_state = "caution"},/area/engineering/atmos_control) "bBg" = (/obj/machinery/computer/atmoscontrol,/obj/structure/sign/atmosplaque{pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 1; icon_state = "caution"},/area/engineering/atmos_control) @@ -4210,7 +4210,7 @@ "bCX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/effect/decal/warning_stripes{icon_state = "unloading"},/obj/machinery/door/window{dir = 4; name = "Power Monitoring"; req_access_txt = "10"},/turf/simulated/floor{dir = 1; icon_state = "floor"},/area/engineering/engine) "bCY" = (/obj/structure/device/piano{pixel_x = 6},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/crew_quarters/bar) "bCZ" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/decal/warning_stripes{tag = "icon-warning (WEST)"; icon_state = "warning"; dir = 8},/turf/simulated/floor{dir = 1; icon_state = "floor"},/area/engineering/engine) -"bDa" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes,/turf/simulated/floor{dir = 1; icon_state = "floor"},/area/engineering/engine) +"bDa" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/battery/smes,/turf/simulated/floor{dir = 1; icon_state = "floor"},/area/engineering/engine) "bDb" = (/obj/structure/stool/bed/chair{name = "Judge"},/obj/machinery/light{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/crew_quarters/courtroom) "bDc" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = -31},/obj/effect/decal/warning_stripes{tag = "icon-warning (EAST)"; icon_state = "warning"; dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{dir = 1; icon_state = "floor"},/area/engineering/engine) "bDd" = (/turf/simulated/floor{icon_state = "caution"; dir = 4},/area/hallway/primary/starboard) @@ -5183,7 +5183,7 @@ "bVI" = (/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor,/area/engineering/atmos) "bVJ" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "tox_in"; name = "Toxin Supply Control"; output_tag = "tox_out"; sensors = list("tox_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/filtering/visible,/obj/machinery/light{dir = 4},/obj/effect/decal/warning_stripes{tag = "icon-warning (EAST)"; icon_state = "warning"; dir = 4},/turf/simulated/floor,/area/engineering/atmos) "bVK" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1441; icon_state = "on"; id_tag = "tox_in"; on = 1; pixel_y = 1},/obj/effect/decal/warning_stripes{icon_state = "bot"},/turf/simulated/floor/engine{name = "plasma floor"; toxins = 70000},/area/engineering/atmos) -"bVL" = (/obj/machinery/power/smes{capacity = 6e+006; charge = 2e+006; chargemode = 1; charging = 1; output = 1500},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/light/small,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; temperature = 80},/area/tcomms/chamber) +"bVL" = (/obj/machinery/power/battery/smes{capacity = 6e+006; charge = 2e+006; chargemode = 1; charging = 1; output = 1500},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/light/small,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; temperature = 80},/area/tcomms/chamber) "bVM" = (/obj/machinery/camera{c_tag = "MiniSat - Telecoms - Server Room - Power"; dir = 1; network = list("SS13","tcomm")},/obj/machinery/power/terminal{dir = 4},/obj/structure/cable,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; temperature = 80},/area/tcomms/chamber) "bVN" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Telecoms Server Room APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; temperature = 80},/area/tcomms/chamber) "bVO" = (/obj/machinery/atmospherics/miner/toxins,/obj/effect/decal/warning_stripes{icon_state = "unloading"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/engine{name = "plasma floor"; toxins = 70000},/area/engineering/atmos) @@ -5325,7 +5325,7 @@ "bYu" = (/obj/machinery/floodlight,/turf/simulated/floor,/area/engineering/atmos) "bYv" = (/obj/machinery/power/apc{dir = 8; name = "Aft Port Solar APC"; pixel_x = -26; pixel_y = 3},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/maintenance/aportsolar) "bYw" = (/obj/machinery/power/apc{cell_type = 10000; dir = 1; name = "Research Division APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor{dir = 4; icon_state = "whitepurplecorner"},/area/science/hallway{name = "Research Division"}) -"bYx" = (/obj/machinery/power/smes{charge = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/aportsolar) +"bYx" = (/obj/machinery/power/battery/smes{charge = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/aportsolar) "bYy" = (/obj/structure/closet/crate,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "bYz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "bYA" = (/obj/structure/rack,/obj/item/weapon/weldingtool,/obj/item/weapon/screwdriver{pixel_y = 16},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) @@ -7438,7 +7438,7 @@ "cNb" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/structure/cable/yellow{icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/science/xenobiology) "cNc" = (/obj/machinery/power/apc{dir = 8; name = "Aft Starboard Solar APC"; pixel_x = -26; pixel_y = 3},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/maintenance/fstarboardsolar) "cNd" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2"; icon_state = "pipe-j2"; dir = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay3{name = "Medbay Aft"}) -"cNe" = (/obj/machinery/power/smes{charge = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/fstarboardsolar) +"cNe" = (/obj/machinery/power/battery/smes{charge = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/fstarboardsolar) "cNf" = (/obj/structure/closet/emcloset,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/maintenance/virology_maint) "cNg" = (/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor{dir = 10; icon_state = "whitegreen"},/area/medical/virology) "cNh" = (/turf/simulated/floor{icon_state = "whitegreen"},/area/medical/virology) @@ -9645,7 +9645,7 @@ "dDy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/djstation) "dDz" = (/obj/item/weapon/extinguisher,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTH)"; icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/djstation) "dDA" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTH)"; icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/djstation) -"dDB" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/smes{charge = 5e+006},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTH)"; icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/djstation) +"dDB" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/battery/smes{charge = 5e+006},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTH)"; icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/djstation) "dDC" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTH)"; icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/djstation) "dDD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTH)"; icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/djstation) "dDE" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar/panel{id_tag = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/plating/airless,/area/solar/derelict_aft) @@ -9806,7 +9806,7 @@ "dGD" = (/obj/machinery/atmospherics/unary/vent_pump{canSpawnMice = 0; dir = 4; external_pressure_bound = 120; frequency = 1438; icon_state = "in"; id_tag = "n2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/obj/effect/decal/warning_stripes{icon_state = "bot"},/turf/simulated/floor/engine/vacuum,/area/derelict/atmos) "dGE" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/full/reinforced,/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/derelict/atmos) "dGF" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; environ = 0; equipment = 1; lighting = 0; locked = 0; name = "apc"; pixel_y = 24},/turf/simulated/floor,/area/derelict/solar_control) -"dGG" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/derelict/solar_control) +"dGG" = (/obj/machinery/power/battery/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/derelict/solar_control) "dGH" = (/obj/machinery/light/small{dir = 4},/turf/unsimulated/floor/asteroid,/area/mine/explored) "dGI" = (/obj/machinery/light/small{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/derelict/solar_control) "dGJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/derelict/solar_control) @@ -10305,7 +10305,7 @@ "dQi" = (/obj/machinery/door/airlock/command{name = "AI Upload"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) "dQj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/bridge/ai_upload) "dQk" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) -"dQl" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) +"dQl" = (/obj/machinery/power/battery/smes,/obj/structure/cable,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) "dQm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) "dQn" = (/turf/simulated/floor/airless{broken = 1; icon_state = "damaged4"},/area/derelict/bridge/ai_upload) "dQo" = (/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) @@ -10473,7 +10473,7 @@ "dTu" = (/obj/structure/rack,/turf/simulated/floor/airless,/area/mine/abandoned) "dTv" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/port_gen/pacman{anchored = 1},/turf/simulated/floor/plating,/area/mine/north_outpost) "dTw" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/mine/north_outpost) -"dTx" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/mine/north_outpost) +"dTx" = (/obj/machinery/power/battery/smes,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/mine/north_outpost) "dTy" = (/obj/machinery/atmospherics/unary/tank/air,/turf/simulated/floor/plating,/area/mine/north_outpost) "dTz" = (/turf/simulated/wall/r_wall,/area/research_outpost/spectro) "dTA" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay3{name = "Medbay Aft"}) @@ -10796,7 +10796,7 @@ "dZF" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/turf/simulated/floor/plating,/area/research_outpost/power) "dZG" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/sign/nosmoking_1{pixel_y = 32},/turf/simulated/floor/plating,/area/research_outpost/power) "dZH" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/research_outpost/power) -"dZI" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/sign/electricshock{pixel_x = 32},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/research_outpost/power) +"dZI" = (/obj/machinery/power/battery/smes{charge = 5e+006},/obj/structure/sign/electricshock{pixel_x = 32},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/research_outpost/power) "dZJ" = (/obj/effect/alien/resin/wall,/turf/simulated/floor/airless{icon_state = "floorgrime"},/area/mine/abandoned) "dZK" = (/obj/structure/girder,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned) "dZL" = (/obj/machinery/door/airlock/external{name = "Mining Bridge"; req_access_txt = "54"},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/north_outpost) @@ -10828,7 +10828,7 @@ "eal" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/engineering{name = "Outpost Power Substation"; req_access_txt = "0"; req_one_access_txt = "47;10;24"},/turf/simulated/floor/plating,/area/research_outpost/power) "eam" = (/turf/simulated/floor/plating,/area/research_outpost/power) "ean" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/research_outpost/power) -"eao" = (/obj/machinery/power/smes{charge = 5e+006},/obj/machinery/light{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/research_outpost/power) +"eao" = (/obj/machinery/power/battery/smes{charge = 5e+006},/obj/machinery/light{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/research_outpost/power) "eap" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/wall/r_wall,/area/research_outpost/power) "eaq" = (/obj/effect/decal/warning_stripes{icon_state = "oxygen"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/research_outpost/atmos) "ear" = (/obj/effect/decal/warning_stripes{icon_state = "nitrogen"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/research_outpost/atmos) @@ -11497,7 +11497,7 @@ "enk" = (/obj/machinery/atmospherics/unary/tank/air{dir = 1; initialize_directions = 0; level = 1},/turf/simulated/floor/plating,/area/mine/west_outpost) "enl" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/west_outpost) "enm" = (/obj/machinery/power/terminal{dir = 4},/obj/machinery/light/small,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/west_outpost) -"enn" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/plating,/area/mine/west_outpost) +"enn" = (/obj/machinery/power/battery/smes,/obj/structure/cable,/turf/simulated/floor/plating,/area/mine/west_outpost) "eno" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/living_quarters) "enp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Infirmary"; req_access_txt = "0"},/turf/simulated/floor{icon_state = "white"},/area/mine/living_quarters) "enq" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/living_quarters) @@ -11521,7 +11521,7 @@ "enI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/mine/living_quarters) "enJ" = (/turf/simulated/floor{icon_state = "white"},/area/mine/living_quarters) "enK" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor{icon_state = "white"},/area/mine/living_quarters) -"enL" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/living_quarters) +"enL" = (/obj/machinery/power/battery/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/living_quarters) "enM" = (/obj/machinery/light/small{dir = 4},/obj/structure/closet/emcloset,/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1},/turf/simulated/floor,/area/mine/living_quarters) "enN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/recharger{pixel_x = -29},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/living_quarters) "enO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/full/reinforced,/turf/simulated/floor/plating,/area/mine/living_quarters) diff --git a/maps/ministation.dmm b/maps/ministation.dmm index c8c43f2aef6..38fecb0d013 100644 --- a/maps/ministation.dmm +++ b/maps/ministation.dmm @@ -1285,9 +1285,9 @@ "ayK" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/turf/simulated/floor{icon_state = "yellow"; dir = 1},/area/engineering/engine) "ayL" = (/obj/structure/table,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/obj/machinery/cell_charger,/turf/simulated/floor,/area/engineering/engine) "ayM" = (/obj/structure/table,/obj/machinery/alarm{pixel_y = 23},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/clothing/gloves/yellow,/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/turf/simulated/floor,/area/engineering/engine) -"ayN" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/engineering/engine) -"ayO" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/camera/autoname,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engineering/engine) -"ayP" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/engineering/engine) +"ayN" = (/obj/machinery/power/battery/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/engineering/engine) +"ayO" = (/obj/machinery/power/battery/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/camera/autoname,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engineering/engine) +"ayP" = (/obj/machinery/power/battery/smes,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/engineering/engine) "ayQ" = (/obj/structure/table,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/clothing/gloves/yellow,/obj/item/weapon/storage/toolbox/electrical{pixel_y = 5},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_y = 25},/turf/simulated/floor,/area/engineering/engine) "ayR" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/sheet/glass/glass{amount = 50},/obj/item/weapon/circuitboard/airlock,/obj/item/weapon/circuitboard/airlock,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/stack/sheet/mineral/plasma{amount = 30},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor{icon_state = "warningcorner"; dir = 8},/area/engineering/engine) "ayS" = (/obj/machinery/power/apc{dir = 1; name = "_North APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engineering/engine) @@ -1633,7 +1633,7 @@ "aFu" = (/obj/structure/transit_tube/station{tag = "icon-closed (EAST)"; icon_state = "closed"; dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/tcommsat/computer) "aFv" = (/turf/simulated/wall/r_wall,/area/tcommsat/computer) "aFw" = (/obj/machinery/power/apc{cell_type = 5000; dir = 8; name = "Telecoms Server APC"; pixel_x = -25; pixel_y = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) -"aFx" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) +"aFx" = (/obj/machinery/power/battery/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) "aFy" = (/obj/machinery/power/terminal{dir = 8},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/computer) "aFz" = (/obj/machinery/door/airlock/glass_engineering{name = "Server Room"; req_access_txt = "61"},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/tcommsat/computer) "aFA" = (/turf/simulated/floor{dir = 8; icon_state = "yellow"},/area/tcommsat/computer) @@ -1692,7 +1692,7 @@ "aGB" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/obj/effect/landmark/start{name = "AI"},/turf/simulated/floor,/area/tcommsat/computer) "aGC" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/filingcabinet/chestdrawer,/turf/simulated/floor,/area/tcommsat/computer) "aGD" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/newscaster{pixel_x = 32; pixel_y = 0},/turf/simulated/floor,/area/tcommsat/computer) -"aGE" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable,/turf/simulated/floor,/area/engineering/engine) +"aGE" = (/obj/machinery/power/battery/smes{charge = 5e+006},/obj/structure/cable,/turf/simulated/floor,/area/engineering/engine) "aGF" = (/obj/machinery/light,/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/machinery/power/terminal{dir = 8},/turf/simulated/floor,/area/engineering/engine) "aGG" = (/obj/structure/table,/obj/item/weapon/pen/blue,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor,/area/engineering/engine) "aGH" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/simulated/wall/r_wall,/area/engineering/engine) @@ -2407,7 +2407,7 @@ "caC" = (/obj/item/device/multitool,/turf/simulated/floor/plating,/area/djstation) "caD" = (/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/turf/simulated/floor/plating,/area/djstation) "caE" = (/obj/item/weapon/extinguisher,/turf/simulated/floor/plating,/area/djstation) -"caF" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/smes/magical{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; name = "power storage unit"},/turf/simulated/floor/plating,/area/djstation) +"caF" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/battery/smes/infinite{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; name = "power storage unit"},/turf/simulated/floor/plating,/area/djstation) "caG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/djstation) "caH" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/plating,/area/djstation) "caI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/storage/box/lights/mixed,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating,/area/djstation) diff --git a/maps/taxistation.dmm b/maps/taxistation.dmm index 0c6775173ed..7e093336a90 100644 --- a/maps/taxistation.dmm +++ b/maps/taxistation.dmm @@ -456,7 +456,7 @@ "aiN" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/engine/aux_control{name = "Engineering Medical"}) "aiO" = (/obj/machinery/power/terminal,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/aux_control{name = "Engineering Medical"}) "aiP" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/catwalk{icon_state = "catwalk3"},/turf/space,/area/solar/fstarboard{name = "\improper Medbay Solar Array"}) -"aiQ" = (/obj/machinery/power/smes{charge = 5e+006},/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/tcomms/chamber) +"aiQ" = (/obj/machinery/power/battery/smes{charge = 5e+006},/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/tcomms/chamber) "aiR" = (/obj/machinery/telecomms/broadcaster/preset_left,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/tcomms/chamber) "aiS" = (/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/tcomms/chamber) "aiT" = (/obj/machinery/telecomms/broadcaster/preset_right,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/tcomms/chamber) @@ -489,7 +489,7 @@ "aju" = (/obj/structure/stool{pixel_y = 8},/obj/effect/landmark{name = "blobstart"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/engine/aux_control{name = "Engineering Medical"}) "ajv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/engine/aux_control{name = "Engineering Medical"}) "ajw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/engine/aux_control{name = "Engineering Medical"}) -"ajx" = (/obj/machinery/power/smes{charge = 1e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/aux_control{name = "Engineering Medical"}) +"ajx" = (/obj/machinery/power/battery/smes{charge = 1e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/aux_control{name = "Engineering Medical"}) "ajy" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/engine/aux_control{name = "Engineering Medical"}) "ajz" = (/obj/machinery/telecomms/bus/preset_two,/obj/machinery/atmospherics/pipe/simple/heat_exchanging,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/tcomms/chamber) "ajA" = (/obj/machinery/telecomms/bus/preset_four,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/tcomms/chamber) @@ -812,7 +812,7 @@ "apF" = (/obj/machinery/door/airlock/external{req_access_txt = "13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/solar/fore{name = "\improper Engineering Solar Array"}) "apG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/ai_slipper,/obj/machinery/camera{c_tag = "AI Core West"; dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "apH" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/turret_protected/ai) -"apI" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/smes{charge = 1e+006},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"apI" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/battery/smes{charge = 1e+006},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "apJ" = (/obj/effect/landmark/start{name = "AI"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "apK" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/ai_slipper,/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "apL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/window{base_state = "left"; dir = 8; icon_state = "left"; name = "AI Core"; req_access_txt = "16"},/obj/machinery/door/window{base_state = "left"; dir = 2; icon_state = "left"; name = "AI Core"; req_access_txt = "16"},/obj/machinery/door/window{base_state = "left"; dir = 1; icon_state = "left"; name = "AI Core"; req_access_txt = "16"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai) @@ -969,7 +969,7 @@ "asG" = (/obj/machinery/conveyor{dir = 4; id_tag = "engigarbage"},/turf/simulated/floor/plating,/area/maintenance/disposal{name = "Disposals Engineering"}) "asH" = (/obj/machinery/conveyor{dir = 4; id_tag = "engigarbage"},/obj/item/trash/chips,/turf/simulated/floor/plating,/area/maintenance/disposal{name = "Disposals Engineering"}) "asI" = (/obj/structure/disposaloutlet{dir = 8},/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plating,/area/maintenance/disposal{name = "Disposals Engineering"}) -"asJ" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/smes{charge = 1e+006},/turf/simulated/floor/plating,/area/solar/fore{name = "\improper Engineering Solar Array"}) +"asJ" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/battery/smes{charge = 1e+006},/turf/simulated/floor/plating,/area/solar/fore{name = "\improper Engineering Solar Array"}) "asK" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/solar/fore{name = "\improper Engineering Solar Array"}) "asL" = (/obj/structure/stool{pixel_y = 8},/obj/machinery/power/apc{dir = 4; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/solar/fore{name = "\improper Engineering Solar Array"}) "asM" = (/turf/simulated/floor/engine/n20,/area/engineering/atmos) @@ -1433,7 +1433,7 @@ "aBC" = (/obj/structure/table,/obj/item/weapon/book/manual/barman_recipes,/obj/item/weapon/reagent_containers/food/snacks/pie,/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/structure/sign/securearea{desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious. Strange that this picture doesn't even look like Mr. Deempisi.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aBD" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "dark"},/area/engineering/engineering_auxiliary) "aBE" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/engineering/engine) -"aBF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/power/smes{charge = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "dark vault stripe"; dir = 4},/area/engineering/engineering_auxiliary) +"aBF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/power/battery/smes{charge = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "dark vault stripe"; dir = 4},/area/engineering/engineering_auxiliary) "aBG" = (/obj/machinery/pipedispenser/disposal,/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 5},/turf/simulated/floor,/area/engineering/atmos) "aBH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/engineering/atmos) "aBI" = (/turf/simulated/floor,/area/engineering/engine) @@ -1535,10 +1535,10 @@ "aDA" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/crew_quarters/bar) "aDB" = (/obj/structure/table,/obj/machinery/reagentgrinder,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aDC" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/starboard) -"aDD" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/engine/locker{name = "\improper Engineering Foyer"}) +"aDD" = (/obj/machinery/power/battery/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/engine/locker{name = "\improper Engineering Foyer"}) "aDE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor{dir = 8; icon_state = "yellow"},/area/engineering/engine) -"aDF" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/power/smes{charge = 1e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/engine/locker{name = "\improper Engineering Foyer"}) -"aDG" = (/obj/machinery/power/smes{charge = 1e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/engine/locker{name = "\improper Engineering Foyer"}) +"aDF" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/power/battery/smes{charge = 1e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/engine/locker{name = "\improper Engineering Foyer"}) +"aDG" = (/obj/machinery/power/battery/smes{charge = 1e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/engine/locker{name = "\improper Engineering Foyer"}) "aDH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/closet/firecloset,/turf/simulated/floor,/area/engine/locker{name = "\improper Engineering Foyer"}) "aDI" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/gloves/black,/obj/item/weapon/extinguisher{pixel_x = 8},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/engine/locker{name = "\improper Engineering Foyer"}) "aDJ" = (/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engineering/engine) @@ -1808,7 +1808,7 @@ "aIN" = (/obj/structure/mopbucket,/obj/item/weapon/mop,/turf/simulated/floor{icon_state = "floorgrime"},/area/janitor) "aIO" = (/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/reagent_containers/glass/bucket,/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1},/obj/structure/table,/obj/item/weapon/storage/bag/trash,/turf/simulated/floor{icon_state = "floorgrime"},/area/janitor) "aIP" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/solar/aport{name = "\improper Cargo Solar Array"}) -"aIQ" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes{charge = 1e+006},/turf/simulated/floor/plating,/area/solar/aport{name = "\improper Cargo Solar Array"}) +"aIQ" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/battery/smes{charge = 1e+006},/turf/simulated/floor/plating,/area/solar/aport{name = "\improper Cargo Solar Array"}) "aIR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light/small{dir = 8},/turf/simulated/floor,/area/supply/storage) "aIS" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/supply/storage) "aIT" = (/obj/structure/closet/crate/internals,/turf/simulated/floor,/area/supply/storage) @@ -2392,7 +2392,7 @@ "aTZ" = (/obj/structure/sign/vacuum,/turf/simulated/wall,/area/solar/fport{name = "\improper Security Solar Array"}) "aUa" = (/obj/machinery/power/solar/control{id_tag = "secsolar"; name = "Security Solar Control"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/solar/fport{name = "\improper Security Solar Array"}) "aUb" = (/obj/structure/stool,/obj/item/clothing/gloves/yellow,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/item/device/multitool{pixel_x = 4},/turf/simulated/floor/plating,/area/solar/fport{name = "\improper Security Solar Array"}) -"aUc" = (/obj/machinery/power/smes{charge = 1e+006},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/solar/fport{name = "\improper Security Solar Array"}) +"aUc" = (/obj/machinery/power/battery/smes{charge = 1e+006},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/solar/fport{name = "\improper Security Solar Array"}) "aUd" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aUe" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aUf" = (/obj/structure/closet/firecloset,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) @@ -4623,7 +4623,7 @@ "bKU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/djstation) "bKV" = (/obj/item/weapon/extinguisher,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/djstation) "bKW" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/djstation) -"bKX" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/smes/magical{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; name = "power storage unit"},/turf/simulated/floor/plating,/area/djstation) +"bKX" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/battery/smes/infinite{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; name = "power storage unit"},/turf/simulated/floor/plating,/area/djstation) "bKY" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/djstation) "bKZ" = (/obj/machinery/telecomms/relay/preset/ruskie,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/djstation) "bLa" = (/obj/structure/cable,/obj/machinery/power/solar/panel{id_tag = "djsolar"; name = "DJ Solar Array"},/turf/simulated/floor{icon_state = "solarpanel"},/area/djstation/solars) @@ -5424,7 +5424,7 @@ "cap" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/derelict/storage/engine_storage{icon_state = "smaint"; name = "Derelict Starboard Maintenance"}) "caq" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/space,/area) "car" = (/obj/machinery/atmospherics/unary/tank/air{dir = 4},/turf/simulated/floor/plating,/area/derelict/storage/storage_access{icon_state = "pmaint"; name = "Derelict Port Maintenance"}) -"cas" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/derelict/storage/storage_access{icon_state = "pmaint"; name = "Derelict Port Maintenance"}) +"cas" = (/obj/machinery/power/battery/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/derelict/storage/storage_access{icon_state = "pmaint"; name = "Derelict Port Maintenance"}) "cat" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/derelict/storage/storage_access{icon_state = "pmaint"; name = "Derelict Port Maintenance"}) "cau" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/derelict/storage/storage_access{icon_state = "pmaint"; name = "Derelict Port Maintenance"}) "cav" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plating,/area/derelict/storage/storage_access{icon_state = "pmaint"; name = "Derelict Port Maintenance"}) @@ -5746,7 +5746,7 @@ "cgz" = (/obj/machinery/atmospherics/unary/vent_pump{canSpawnMice = 0; dir = 4; external_pressure_bound = 120; frequency = 1438; icon_state = "in"; id_tag = "n2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine/vacuum{icon_state = "enginebot"},/area/derelict/atmos) "cgA" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/full/reinforced,/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/derelict/atmos) "cgB" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; environ = 0; equipment = 1; lighting = 0; locked = 0; name = "apc"; pixel_y = 24},/turf/simulated/floor,/area/derelict/solar_control) -"cgC" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/derelict/solar_control) +"cgC" = (/obj/machinery/power/battery/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/derelict/solar_control) "cgD" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar/control{id_tag = "derelictsolar"; name = "Primary Solar Control"},/turf/simulated/floor,/area/derelict/solar_control) "cgE" = (/obj/machinery/light/small{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/derelict/solar_control) "cgF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/derelict/solar_control) @@ -6148,7 +6148,7 @@ "col" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/derelict/secret) "com" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/secret) "con" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/derelict/secret) -"coo" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating{icon_state = "panelscorched"},/area/derelict/secret) +"coo" = (/obj/machinery/power/battery/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating{icon_state = "panelscorched"},/area/derelict/secret) "cop" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating{icon_state = "platingdmg3"},/area/derelict/secret) "coq" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/derelict/secret) "cor" = (/turf/simulated/floor/plating{icon_state = "panelscorched"},/area/derelict/secret) @@ -6430,7 +6430,7 @@ "ctH" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "vox_in"; name = "Nitrogen Supply Control"; output_tag = "vox_out"; sensors = list("vox_sensor" = "Tank")},/turf/simulated/floor/vox,/area/vox_trading_post/atmos) "ctI" = (/obj/structure/stool/bed/roller,/turf/simulated/floor/plating/vox,/area/vox_trading_post/storage_1) "ctJ" = (/turf/simulated/floor/plating/vox,/area/vox_trading_post/storage_1) -"ctK" = (/obj/machinery/power/smes/magical,/obj/structure/cable,/turf/simulated/floor/plating/vox,/area/vox_trading_post/storage_1) +"ctK" = (/obj/machinery/power/battery/smes/infinite,/obj/structure/cable,/turf/simulated/floor/plating/vox,/area/vox_trading_post/storage_1) "ctL" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/obj/machinery/power/apc{dir = 8; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/vox,/area/vox_trading_post/atmos) "ctM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 5},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/vox,/area/vox_trading_post/atmos) "ctN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/vox,/area/vox_trading_post/atmos) @@ -6704,7 +6704,7 @@ "cyV" = (/obj/structure/table,/obj/item/weapon/wrench,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway{icon_state = "hallA"; name = "Xenoarchaeology Hallway"}) "cyW" = (/obj/machinery/vending/coffee,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway{icon_state = "hallA"; name = "Xenoarchaeology Hallway"}) "cyX" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Outpost Atmospherics and Power"}) -"cyY" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Outpost Atmospherics and Power"}) +"cyY" = (/obj/machinery/power/battery/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Outpost Atmospherics and Power"}) "cyZ" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Outpost Atmospherics and Power"}) "cza" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Outpost Atmospherics and Power"}) "czb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/full/reinforced,/turf/simulated/floor/plating,/area/research_outpost/atmos{name = "Outpost Atmospherics and Power"}) diff --git a/maps/tgstation.dmm b/maps/tgstation.dmm index efcd002bcdc..767d0e0d934 100644 --- a/maps/tgstation.dmm +++ b/maps/tgstation.dmm @@ -1245,7 +1245,7 @@ "axW" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/status_display{pixel_x = 32},/obj/machinery/media/receiver/boombox/wallmount/shuttle{pixel_x = -32},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod2/station) "axX" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; pixel_x = -24},/obj/machinery/camera{c_tag = "Fore Port Solar Control"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/fportsolar) "axY" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/maintenance/fportsolar) -"axZ" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes{charge = 0},/turf/simulated/floor/plating,/area/maintenance/fportsolar) +"axZ" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/battery/smes{charge = 0},/turf/simulated/floor/plating,/area/maintenance/fportsolar) "aya" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/security/detectives_office) "ayb" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "ayc" = (/obj/structure/table/woodentable,/obj/machinery/computer/security/wooden_tv{pixel_x = 1; pixel_y = 3},/turf/simulated/floor/carpet,/area/security/detectives_office) @@ -1335,7 +1335,7 @@ "azI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/simulated/floor/plating,/area/crew_quarters/fitness) "azJ" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; pixel_x = -24},/turf/simulated/floor/plating,/area/maintenance/fstarboardsolar) "azK" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/maintenance/fstarboardsolar) -"azL" = (/obj/machinery/camera{c_tag = "Fore Starboard Solars"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes{charge = 0},/turf/simulated/floor/plating,/area/maintenance/fstarboardsolar) +"azL" = (/obj/machinery/camera{c_tag = "Fore Starboard Solars"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/battery/smes{charge = 0},/turf/simulated/floor/plating,/area/maintenance/fstarboardsolar) "azM" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall{icon_state = "swall_f5"},/area/shuttle/escape_pod1/station) "azN" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/escape_pod1/station) "azO" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall{icon_state = "swall_f9"},/area/shuttle/escape_pod1/station) @@ -3275,7 +3275,7 @@ "bkY" = (/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bkZ" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/turret,/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bla" = (/obj/machinery/flasher{pixel_y = 24; id_tag = "AI"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"blb" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"blb" = (/obj/machinery/power/battery/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "blc" = (/obj/machinery/power/terminal{dir = 8},/obj/machinery/requests_console{department = "AI"; departmentType = 5; pixel_y = 29},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bld" = (/obj/machinery/turret,/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "ble" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/bluegrid,/area/turret_protected/ai) @@ -5845,7 +5845,7 @@ "ciu" = (/obj/structure/table,/turf/simulated/floor,/area/tcomms/storage) "civ" = (/obj/structure/table,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/micro_laser/high,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/manipulator,/obj/machinery/light_switch{pixel_y = 27},/turf/simulated/floor,/area/tcomms/storage) "ciw" = (/obj/structure/table,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/obj/item/weapon/stock_parts/subspace/treatment,/turf/simulated/floor,/area/tcomms/storage) -"cix" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable/yellow{icon_state = "0-2"},/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/tcomms/storage) +"cix" = (/obj/machinery/power/battery/smes{charge = 5e+006},/obj/structure/cable/yellow{icon_state = "0-2"},/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/tcomms/storage) "ciy" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable,/obj/structure/closet/malf/suits,/turf/simulated/floor,/area/tcomms/storage) "ciz" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/insulated/visible{dir = 5},/turf/simulated/floor,/area/tcomms/storage) "ciA" = (/obj/machinery/atmospherics/unary/tank/carbon_dioxide{dir = 8},/turf/simulated/floor,/area/tcomms/storage) @@ -6132,7 +6132,7 @@ "cnV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/science/hallway) "cnW" = (/obj/machinery/power/apc{dir = 8; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/astarboardsolar) "cnX" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/maintenance/astarboardsolar) -"cnY" = (/obj/machinery/power/smes{charge = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/astarboardsolar) +"cnY" = (/obj/machinery/power/battery/smes{charge = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/astarboardsolar) "cnZ" = (/obj/machinery/door/airlock/external{req_access_txt = "13"; req_one_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/aft) "coa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/mob/living/simple_animal/mouse,/turf/simulated/floor/plating,/area/maintenance/aft) "cob" = (/obj/structure/cable/yellow{icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 9},/obj/structure/table,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/turf/simulated/floor,/area/tcomms/storage) @@ -6684,7 +6684,7 @@ "cyB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/maintenance/aportsolar) "cyC" = (/turf/simulated/floor/plating,/area/maintenance/aportsolar) "cyD" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/aportsolar) -"cyE" = (/obj/machinery/power/smes{charge = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/maintenance/aportsolar) +"cyE" = (/obj/machinery/power/battery/smes{charge = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/maintenance/aportsolar) "cyF" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/maintenance/aportsolar) "cyG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/aft) "cyH" = (/turf/simulated/wall/r_wall,/area/engineering/engine) @@ -7042,9 +7042,9 @@ "cFv" = (/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engineering/engine) "cFw" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/engineering/engine) "cFx" = (/turf/simulated/wall,/area/engineering/engine) -"cFy" = (/obj/structure/cable,/obj/machinery/power/smes,/obj/effect/decal/warning_stripes{tag = "icon-warning (SOUTHWEST)"; icon_state = "warning"; dir = 10},/turf/simulated/floor,/area/engineering/engine) -"cFz" = (/obj/structure/cable,/obj/machinery/power/smes,/obj/effect/decal/warning_stripes{tag = "icon-warning"; icon_state = "warning"; dir = 2},/turf/simulated/floor,/area/engineering/engine) -"cFA" = (/obj/structure/cable,/obj/machinery/power/smes,/obj/effect/decal/warning_stripes{tag = "icon-warning (SOUTHEAST)"; icon_state = "warning"; dir = 6},/turf/simulated/floor,/area/engineering/engine) +"cFy" = (/obj/structure/cable,/obj/machinery/power/battery/smes,/obj/effect/decal/warning_stripes{tag = "icon-warning (SOUTHWEST)"; icon_state = "warning"; dir = 10},/turf/simulated/floor,/area/engineering/engine) +"cFz" = (/obj/structure/cable,/obj/machinery/power/battery/smes,/obj/effect/decal/warning_stripes{tag = "icon-warning"; icon_state = "warning"; dir = 2},/turf/simulated/floor,/area/engineering/engine) +"cFA" = (/obj/structure/cable,/obj/machinery/power/battery/smes,/obj/effect/decal/warning_stripes{tag = "icon-warning (SOUTHEAST)"; icon_state = "warning"; dir = 6},/turf/simulated/floor,/area/engineering/engine) "cFB" = (/obj/machinery/light{dir = 1},/obj/structure/closet/wardrobe/engineering_yellow,/turf/simulated/floor,/area/engineering/engine) "cFC" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/grille,/obj/machinery/meter,/turf/simulated/wall/r_wall,/area/engineering/atmos) "cFD" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/grille,/obj/machinery/meter{frequency = 1443; id_tag = "mair_in_meter"; name = "Mixed Air Tank In"},/turf/simulated/wall/r_wall,/area/engineering/atmos) @@ -7176,7 +7176,7 @@ "cHZ" = (/obj/machinery/door_control{desc = "Lets all the hot gas out very quickly."; id_tag = "Burn Chamber Vent"; name = "Burn Chamber Vent"; pixel_x = -7; pixel_y = 32; req_access_txt = "0"},/obj/machinery/ignition_switch{id_tag = "Burn Chamber Igniter"; pixel_x = 6; pixel_y = 32},/turf/simulated/floor,/area/engineering/burn_chamber) "cIa" = (/obj/machinery/atmospherics/binary/pump{name = "Hot Fill Pump"},/turf/simulated/floor/plating,/area/engineering/burn_chamber) "cIb" = (/obj/machinery/atmospherics/binary/pump{name = "Cold Fill Pump"},/turf/simulated/floor/plating,/area/engineering/burn_chamber) -"cIc" = (/obj/machinery/power/smes,/obj/machinery/light{dir = 8},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/engineering/engine) +"cIc" = (/obj/machinery/power/battery/smes,/obj/machinery/light{dir = 8},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/engineering/engine) "cId" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/simulated/floor,/area/engineering/engine) "cIe" = (/obj/machinery/atmospherics/pipe/simple/insulated/hidden{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/decal/warning_stripes/pathmarkers/red,/obj/effect/decal/warning_stripes/pathmarkers/red{tag = "icon-pathmarker (NORTH)"; icon_state = "pathmarker"; dir = 1},/turf/simulated/floor,/area/engineering/engine) "cIf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/engineering/engine) @@ -9326,7 +9326,7 @@ "dxr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/simulated/wall/r_wall,/area/turret_protected/tcomfoyer) "dxs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/hatch{name = "Telecoms Satellite"; req_access_txt = "61"},/turf/simulated/floor,/area/turret_protected/tcomfoyer) "dxt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/tcommsat/entrance) -"dxu" = (/obj/machinery/power/smes/magical,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/tcommsat/entrance) +"dxu" = (/obj/machinery/power/battery/smes/infinite,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/tcommsat/entrance) "dxv" = (/obj/machinery/power/terminal{dir = 8},/obj/effect/decal/warning_stripes{tag = "icon-warning (WEST)"; icon_state = "warning"; dir = 8},/turf/simulated/floor,/area/tcommsat/entrance) "dxw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/electricshock,/turf/simulated/wall/r_wall,/area/tcommsat/entrance) "dxx" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor,/area/tcommsat/entrance) @@ -9433,7 +9433,7 @@ "dzu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/djstation) "dzv" = (/obj/item/weapon/extinguisher,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTH)"; icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/djstation) "dzw" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTH)"; icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/djstation) -"dzx" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/smes{charge = 5e+006},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTH)"; icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/djstation) +"dzx" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/battery/smes{charge = 5e+006},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTH)"; icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/djstation) "dzy" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTH)"; icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/djstation) "dzz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/warning_stripes{tag = "icon-warning (NORTH)"; icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/djstation) "dzA" = (/obj/machinery/power/solar/panel{id_tag = "djstationsolar"; name = "DJ Station Solar Array"},/obj/structure/cable,/turf/simulated/floor{icon_state = "solarpanel"},/area/djstation/solars) @@ -9592,7 +9592,7 @@ "dCx" = (/obj/machinery/atmospherics/unary/vent_pump{canSpawnMice = 0; dir = 4; external_pressure_bound = 120; frequency = 1438; icon_state = "in"; id_tag = "n2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/obj/effect/decal/warning_stripes{icon_state = "bot"},/turf/simulated/floor/engine/vacuum,/area/derelict/atmos) "dCy" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/full/reinforced,/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/derelict/atmos) "dCz" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; environ = 0; equipment = 1; lighting = 0; locked = 0; name = "apc"; pixel_y = 24},/turf/simulated/floor,/area/derelict/solar_control) -"dCA" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/derelict/solar_control) +"dCA" = (/obj/machinery/power/battery/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/derelict/solar_control) "dCB" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar/control{id_tag = "derelictsolar"; name = "Primary Solar Control"},/turf/simulated/floor,/area/derelict/solar_control) "dCC" = (/obj/machinery/light/small{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/derelict/solar_control) "dCD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/derelict/solar_control) @@ -10096,7 +10096,7 @@ "dMh" = (/obj/machinery/door/airlock/command{name = "AI Upload"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) "dMi" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/bridge/ai_upload) "dMj" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary) -"dMk" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) +"dMk" = (/obj/machinery/power/battery/smes,/obj/structure/cable,/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) "dMl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) "dMm" = (/turf/simulated/floor/airless{broken = 1; icon_state = "damaged4"},/area/derelict/bridge/ai_upload) "dMn" = (/turf/simulated/floor/airless,/area/derelict/bridge/ai_upload) @@ -10479,7 +10479,7 @@ "dTA" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/turf/simulated/floor/plating,/area/research_outpost/power) "dTB" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/sign/nosmoking_1{pixel_y = 32},/turf/simulated/floor/plating,/area/research_outpost/power) "dTC" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/research_outpost/power) -"dTD" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/sign/electricshock{pixel_x = 32},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/research_outpost/power) +"dTD" = (/obj/machinery/power/battery/smes{charge = 5e+006},/obj/structure/sign/electricshock{pixel_x = 32},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/research_outpost/power) "dTE" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/unsimulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) "dTF" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/simulated/floor/vox,/area/vox_trading_post/hallway) "dTG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1},/turf/simulated/floor/vox,/area/vox_trading_post/hallway) @@ -10506,7 +10506,7 @@ "dUb" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/engineering{name = "Outpost Power Substation"; req_access_txt = "0"; req_one_access_txt = "47;10;24"},/turf/simulated/floor/plating,/area/research_outpost/power) "dUc" = (/turf/simulated/floor/plating,/area/research_outpost/power) "dUd" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/research_outpost/power) -"dUe" = (/obj/machinery/power/smes{charge = 5e+006},/obj/machinery/light{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/research_outpost/power) +"dUe" = (/obj/machinery/power/battery/smes{charge = 5e+006},/obj/machinery/light{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/research_outpost/power) "dUf" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/wall/r_wall,/area/research_outpost/power) "dUg" = (/obj/structure/transit_tube{icon_state = "N-S"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 8},/turf/unsimulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) "dUh" = (/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 8},/turf/unsimulated/floor/airless{icon_state = "asteroidplating"},/area/mine/explored) @@ -10982,7 +10982,7 @@ "edj" = (/obj/structure/dispenser,/obj/machinery/light_switch{pixel_x = 27; pixel_y = 0},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) "edk" = (/obj/machinery/light,/turf/simulated/floor{icon_state = "dark-markings"; dir = 8},/area/research_outpost/longtermstorage) "edl" = (/turf/simulated/floor/vox/wood,/area/vox_trading_post/storage_1) -"edm" = (/obj/structure/cable,/obj/machinery/power/smes/magical{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; name = "power storage unit"},/turf/simulated/floor/vox/wood,/area/vox_trading_post/storage_1) +"edm" = (/obj/structure/cable,/obj/machinery/power/battery/smes/infinite{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; name = "power storage unit"},/turf/simulated/floor/vox/wood,/area/vox_trading_post/storage_1) "edn" = (/turf/simulated/wall,/area/vox_trading_post/atmos) "edo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_atmos{name = "Trade Outpost Atmospherics"},/turf/simulated/floor/airless{icon_state = "floorgrime"},/area/vox_trading_post/atmos) "edp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/vox_trading_post/atmos) @@ -11510,7 +11510,7 @@ "enr" = (/obj/machinery/atmospherics/unary/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/west_outpost) "ens" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/west_outpost) "ent" = (/obj/machinery/power/terminal{dir = 4},/obj/machinery/light/small,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/west_outpost) -"enu" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/plating,/area/mine/west_outpost) +"enu" = (/obj/machinery/power/battery/smes,/obj/structure/cable,/turf/simulated/floor/plating,/area/mine/west_outpost) "env" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/living_quarters) "enw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Infirmary"; req_access_txt = "0"},/turf/simulated/floor{icon_state = "white"},/area/mine/living_quarters) "enx" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/living_quarters) @@ -11535,7 +11535,7 @@ "enQ" = (/turf/simulated/floor{icon_state = "white"},/area/mine/living_quarters) "enR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/mine/living_quarters) "enS" = (/obj/structure/closet/walllocker/defiblocker{pixel_x = 30},/turf/simulated/floor{icon_state = "white"},/area/mine/living_quarters) -"enT" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/living_quarters) +"enT" = (/obj/machinery/power/battery/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/living_quarters) "enU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/mine/living_quarters) "enV" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/mine/living_quarters) "enW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/mine/living_quarters) From 2b013419797ddd041ffe1b4698c3e850248cde93 Mon Sep 17 00:00:00 2001 From: ComicIronic Date: Wed, 20 May 2015 23:20:52 +0100 Subject: [PATCH 2/2] Fixes the load showing, makes overlays ref global lists, added Destroy ref nulling and fixed uses of initial() --- code/modules/power/battery.dm | 57 ++++++++++++++++++++++++++++--- code/modules/power/battery_ion.dm | 45 +++++++++++++++++------- code/modules/power/powernet.dm | 3 ++ code/modules/power/smes.dm | 23 ------------- 4 files changed, 89 insertions(+), 39 deletions(-) diff --git a/code/modules/power/battery.dm b/code/modules/power/battery.dm index f59ab9d4973..9716a3e3ce8 100644 --- a/code/modules/power/battery.dm +++ b/code/modules/power/battery.dm @@ -1,6 +1,43 @@ // Generic battery machine // stores power +#define SMESLEVELCHARGE 1 +#define SMESLEVELCHARGING 2 +#define SMESLEVELONLINE 3 + +var/global/list/battery_charge = list( + image('icons/obj/power.dmi', "smes-og1"), + image('icons/obj/power.dmi', "smes-og2"), + image('icons/obj/power.dmi', "smes-og3"), + image('icons/obj/power.dmi', "smes-og4"), + image('icons/obj/power.dmi', "smes-og5") + ) + +var/global/list/battery_charging = list( + image('icons/obj/power.dmi', "smes-oc0"), + image('icons/obj/power.dmi', "smes-oc1") + ) +var/global/list/battery_online = list( + image('icons/obj/power.dmi', "smes-op0"), + image('icons/obj/power.dmi', "smes-op1") + ) + +/obj/machinery/power/battery/update_icon() + overlays.len = 0 + if(stat & BROKEN) return + + overlays += battery_online[online + 1] + + if(charging) + overlays += battery_charging[2] + else if(chargemode) + overlays += battery_charging[1] + + var/clevel = chargedisplay() + if(clevel>0) + overlays += battery_charge[clevel] + return + #define SMESMAXCHARGELEVEL 200000 #define SMESMAXOUTPUT 200000 #define SMESRATE 0.05 // rate of internal charge to external power @@ -101,6 +138,8 @@ if (stat & BROKEN) return + var/_chargedisplay = chargedisplay() + var/excess = powernet.netexcess // This was how much wasn't used on the network last ptick, minus any removed by other SMESes excess = min(lastout, excess) // Clamp it to how much was actually output by this SMES last ptick @@ -115,6 +154,9 @@ loaddemand = lastout - excess + if(_chargedisplay != chargedisplay()) // If needed updates the icons overlay + update_icon() + /obj/machinery/power/battery/attack_ai(mob/user) src.add_hiddenprint(user) add_fingerprint(user) @@ -240,15 +282,23 @@ /obj/machinery/power/battery/emp_act(severity) + + var/old_online = online + var/old_charging = charging + var/old_output = output + online = 0 charging = 0 output = 0 charge = max(0, charge - 1e6/severity) spawn(100) - output = initial(output) - charging = initial(charging) - online = initial(online) + if(output == 0) + output = old_output + if(online == 0) + online = old_online + if(charging == 0) + charging = old_charging ..() /proc/rate_control(var/S, var/V, var/C, var/Min=1, var/Max=5, var/Limit=null) @@ -257,4 +307,3 @@ if(Limit) return "[href]=-[Limit]'>-"+rate+"[href]=[Limit]'>+" return rate -#undef SMESRATE diff --git a/code/modules/power/battery_ion.dm b/code/modules/power/battery_ion.dm index e2ad66ee742..fc3577850ab 100644 --- a/code/modules/power/battery_ion.dm +++ b/code/modules/power/battery_ion.dm @@ -13,6 +13,11 @@ var/obj/machinery/power/battery_port/connected_to +/obj/machinery/power/battery/portable/Destroy() + if(connected_to) + connected_to.disconnect_battery() + ..() + /obj/machinery/power/battery/portable/initialize() ..() if(anchored) @@ -50,21 +55,37 @@ return -1 /obj/machinery/power/battery/portable/update_icon() - overlays.len = 0 if(stat & BROKEN) return - overlays += image('icons/obj/power.dmi', "smes-op[online]") - - if(charging) - overlays += image('icons/obj/power.dmi', "smes-oc1") - else - if(chargemode) - overlays += image('icons/obj/power.dmi', "smes-oc0") - - var/clevel = chargedisplay() - if(clevel>0) - overlays += image('icons/obj/power.dmi', "smes-og[clevel]") + ..() if(connected_to) connected_to.update_icon() return + +/obj/machinery/power/battery/portable/restore() + if (stat & BROKEN) + return + + if(!connected_to) + return + + var/_chargedisplay = chargedisplay() + + var/excess = connected_to.powernet.netexcess // This was how much wasn't used on the network last ptick, minus any removed by other SMESes + + excess = min(lastout, excess) // Clamp it to how much was actually output by this SMES last ptick + + excess = min((capacity - charge) / SMESRATE, excess) // For safety, also limit recharge by space capacity of SMES (shouldn't happen) + + // Now recharge this amount + + charge += excess * SMESRATE // Restore unused power + + connected_to.powernet.netexcess -= excess // Remove the excess from the powernet, so later SMESes don't try to use it + + loaddemand = lastout - excess + + if(_chargedisplay != chargedisplay()) // If needed updates the icons overlay + update_icon() + diff --git a/code/modules/power/powernet.dm b/code/modules/power/powernet.dm index 0b62a9d6ab9..75e3848359b 100644 --- a/code/modules/power/powernet.dm +++ b/code/modules/power/powernet.dm @@ -101,6 +101,9 @@ Powernet procs : if(netexcess > 100 && nodes && nodes.len) // if there was excess power last cycle for(var/obj/machinery/power/battery/B in nodes) // find the SMESes in the network B.restore() // and restore some of the power that was used + for(var/obj/machinery/power/battery_port/BP in nodes) //Since portable batteries aren't in our nodes, we pass ourselves to restore them via their connectors + if(BP.connected) + BP.connected.restore() // updates the viewed load (as seen on power computers) viewload = 0.8 * viewload + 0.2 * load diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 1d60e28e97e..2fe4d403033 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -92,29 +92,6 @@ return 1 return -/obj/machinery/power/battery/smes/update_icon() - overlays.len = 0 - if(stat & BROKEN) return - - overlays += image('icons/obj/power.dmi', "smes-op[online]") - - if(charging) - overlays += image('icons/obj/power.dmi', "smes-oc1") - else - if(chargemode) - overlays += image('icons/obj/power.dmi', "smes-oc0") - - var/clevel = chargedisplay() - if(clevel>0) - overlays += image('icons/obj/power.dmi', "smes-og[clevel]") - return - -/obj/machinery/power/battery/smes/restore() - var/_chargedisplay = chargedisplay() - ..() - if(_chargedisplay != chargedisplay()) // If needed updates the icons overlay - update_icon() - /obj/machinery/power/battery/smes/can_attach_terminal(mob/user) return ..(user) && panel_open