From 15fc474520d30af5efe0997916a17e1c24ccf214 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Sun, 19 Apr 2020 21:36:22 -0400 Subject: [PATCH] Portable generators, RTGs, void cores --- code/modules/power/cells/device_cells_vr.dm | 50 ++++ code/modules/power/port_gen.dm | 8 +- code/modules/power/port_gen_vr.dm | 223 ++++++++++++++++++ .../research/designs/circuits/circuits_vr.dm | 16 +- icons/obj/power_vr.dmi | Bin 3862 -> 31547 bytes maps/tether/submaps/om_ships/aro2.dmm | 7 +- vorestation.dme | 1 + 7 files changed, 296 insertions(+), 9 deletions(-) create mode 100644 code/modules/power/cells/device_cells_vr.dm diff --git a/code/modules/power/cells/device_cells_vr.dm b/code/modules/power/cells/device_cells_vr.dm new file mode 100644 index 00000000000..7718778844f --- /dev/null +++ b/code/modules/power/cells/device_cells_vr.dm @@ -0,0 +1,50 @@ + +//The device cell +/obj/item/weapon/cell/device/weapon/recharge/alien + name = "void cell (device)" + var/swaps_to = /obj/item/weapon/cell/void + +/obj/item/weapon/cell/device/weapon/recharge/alien/attack_self(var/mob/user) + user.remove_from_mob(src) + to_chat(user, "You swap [src] to 'machinery cell' mode.") + var/obj/item/weapon/cell/newcell = new swaps_to(null) + user.put_in_active_hand(newcell) + var/percentage = charge/maxcharge + newcell.charge = newcell.maxcharge * percentage + qdel(src) + + +//The machine cell +/obj/item/weapon/cell/void + name = "void cell (machinery)" + desc = "An alien technology that produces energy seemingly out of nowhere. Its small, cylinderal shape means it might be able to be used with human technology, perhaps?" + origin_tech = list(TECH_POWER = 8, TECH_ENGINEERING = 6) + icon = 'icons/obj/abductor.dmi' + icon_state = "cell" + maxcharge = 4800 //10x the device version + charge_amount = 1200 //10x the device version + self_recharge = TRUE + charge_delay = 50 + matter = null + var/swaps_to = /obj/item/weapon/cell/device/weapon/recharge/alien + +/obj/item/weapon/cell/void/attack_self(var/mob/user) + user.remove_from_mob(src) + to_chat(user, "You swap [src] to 'device cell' mode.") + var/obj/item/weapon/cell/newcell = new swaps_to(null) + user.put_in_active_hand(newcell) + var/percentage = charge/maxcharge + newcell.charge = newcell.maxcharge * percentage + qdel(src) + + +// Bloo friendlier hybrid tech +/obj/item/weapon/cell/device/weapon/recharge/alien/hybrid + icon = 'icons/obj/power_vr.dmi' + icon_state = "cellb" + swaps_to = /obj/item/weapon/cell/void/hybrid + +/obj/item/weapon/cell/void/hybrid + icon = 'icons/obj/power_vr.dmi' + icon_state = "cellb" + swaps_to = /obj/item/weapon/cell/device/weapon/recharge/alien/hybrid diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index 4515b6125cd..1cc83536edd 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -2,8 +2,8 @@ /obj/machinery/power/port_gen name = "Placeholder Generator" //seriously, don't use this. It can't be anchored without VV magic. desc = "A portable generator for emergency backup power" - icon = 'icons/obj/power.dmi' - icon_state = "portgen0" + icon = 'icons/obj/power_vr.dmi' //VOREStation Edit + icon_state = "portgen0" //VOREStation Edit density = 1 anchored = 0 use_power = USE_POWER_OFF @@ -372,11 +372,11 @@ if(href_list["action"] == "enable") if(!active && HasFuel() && !IsBroken()) active = 1 - icon_state = "portgen1" + icon_state = "[initial(icon_state)]_1" //VOREStation Edit if(href_list["action"] == "disable") if (active) active = 0 - icon_state = "portgen0" + icon_state = initial(icon_state) //VOREStation Edit if(href_list["action"] == "eject") if(!active) DropFuel() diff --git a/code/modules/power/port_gen_vr.dm b/code/modules/power/port_gen_vr.dm index e6e805e1d77..643f0df9670 100644 --- a/code/modules/power/port_gen_vr.dm +++ b/code/modules/power/port_gen_vr.dm @@ -9,3 +9,226 @@ temperature_gain = 80 //how much the temperature increases per power output level, in degrees per level max_temperature = 450 anchored = 1 + +// Circuits for the RTGs below +/obj/item/weapon/circuitboard/machine/rtg + name = T_BOARD("radioisotope TEG") + build_path = /obj/machinery/power/rtg + board_type = new /datum/frame/frame_types/machine + origin_tech = list(TECH_DATA = 3, TECH_POWER = 3, TECH_PHORON = 3, TECH_ENGINEERING = 3) + req_components = list( + /obj/item/stack/cable_coil = 5, + /obj/item/weapon/stock_parts/capacitor = 1, + /obj/item/stack/material/uranium = 10) // We have no Pu-238, and this is the closest thing to it. + +/obj/item/weapon/circuitboard/machine/rtg/advanced + name = T_BOARD("advanced radioisotope TEG") + build_path = /obj/machinery/power/rtg/advanced + origin_tech = list(TECH_DATA = 5, TECH_POWER = 5, TECH_PHORON = 5, TECH_ENGINEERING = 5) + req_components = list( + /obj/item/stack/cable_coil = 5, + /obj/item/weapon/stock_parts/capacitor = 1, + /obj/item/stack/material/uranium = 10, + /obj/item/stack/material/phoron = 5) + +/obj/item/weapon/circuitboard/machine/abductor/core + name = T_BOARD("void generator") + build_path = /obj/machinery/power/rtg/abductor + board_type = new /datum/frame/frame_types/machine + origin_tech = list(TECH_DATA = 8, TECH_POWER = 8, TECH_PHORON = 8, TECH_ENGINEERING = 8) + req_components = list( + /obj/item/stack/cable_coil = 5, + /obj/item/weapon/stock_parts/capacitor/omni = 1) + +/obj/item/weapon/circuitboard/machine/abductor/core/hybrid + name = T_BOARD("void generator (hybrid)") + build_path = /obj/machinery/power/rtg/abductor/hybrid + board_type = new /datum/frame/frame_types/machine + origin_tech = list(TECH_DATA = 8, TECH_POWER = 8, TECH_PHORON = 8, TECH_ENGINEERING = 8) + req_components = list( + /obj/item/stack/cable_coil = 5, + /obj/item/weapon/stock_parts/capacitor/omni = 1) + +// Radioisotope Thermoelectric Generator (RTG) +// Simple power generator that would replace "magic SMES" on various derelicts. +/obj/machinery/power/rtg + name = "radioisotope thermoelectric generator" + desc = "A simple nuclear power generator, used in small outposts to reliably provide power for decades." + icon = 'icons/obj/power_vr.dmi' + icon_state = "rtg" + density = TRUE + use_power = USE_POWER_OFF + circuit = /obj/item/weapon/circuitboard/machine/rtg + + // You can buckle someone to RTG, then open its panel. Fun stuff. + can_buckle = TRUE + buckle_lying = FALSE + + var/power_gen = 1000 // Enough to power a single APC. 4000 output with T4 capacitor. + var/irradiate = TRUE // RTGs irradiate surroundings, but only when panel is open. + +/obj/machinery/power/rtg/Initialize() + . = ..() + if(ispath(circuit)) + circuit = new circuit(src) + default_apply_parts() + connect_to_network() + +/obj/machinery/power/rtg/process() + ..() + add_avail(power_gen) + if(panel_open && irradiate) + SSradiation.radiate(src, 60) + +/obj/machinery/power/rtg/RefreshParts() + var/part_level = 0 + for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts) + part_level += C.rating + + power_gen = initial(power_gen) * part_level + +/obj/machinery/power/rtg/examine(mob/user) + . = ..() + if(Adjacent(user, src) || isobserver(user)) + to_chat(user, "The status display reads: Power generation now at [power_gen*0.001]kW.") + +/obj/machinery/power/rtg/attackby(obj/item/I, mob/user, params) + if(default_deconstruction_screwdriver(user, I)) + return + else if(default_deconstruction_crowbar(user, I)) + return + return ..() + +/obj/machinery/power/rtg/update_icon() + if(panel_open) + + icon_state = "[initial(icon_state)]-open" + else + icon_state = initial(icon_state) + +/obj/machinery/power/rtg/advanced + desc = "An advanced RTG capable of moderating isotope decay, increasing power output but reducing lifetime. It uses plasma-fueled radiation collectors to increase output even further." + power_gen = 2000 // 2000 on T1, 8000 on T4. + circuit = /obj/item/weapon/circuitboard/machine/rtg/advanced + +/obj/machinery/power/rtg/fake_gen + name = "area power generator" + desc = "Some power generation equipment that might be powering the current area." + icon_state = "rtg_gen" + power_gen = 6000 + circuit = /obj/item/weapon/circuitboard/machine/rtg + can_buckle = FALSE + +/obj/machinery/power/rtg/fake_gen/RefreshParts() + return +/obj/machinery/power/rtg/fake_gen/attackby(obj/item/I, mob/user, params) + return +/obj/machinery/power/rtg/fake_gen/update_icon() + return + +// Void Core, power source for Abductor ships and bases. +// Provides a lot of power, but tends to explode when mistreated. + +/obj/machinery/power/rtg/abductor + name = "Void Core" + icon_state = "core-nocell" + desc = "An alien power source that produces energy seemingly out of nowhere." + circuit = /obj/item/weapon/circuitboard/machine/abductor/core + power_gen = 10000 + irradiate = FALSE // Green energy! + can_buckle = FALSE + pixel_y = 7 + var/going_kaboom = FALSE // Is it about to explode? + var/obj/item/weapon/cell/void/cell + + var/icon_base = "core" + +/obj/machinery/power/rtg/abductor/RefreshParts() + ..() + if(!cell) + power_gen = 0 + +/obj/machinery/power/rtg/abductor/proc/asplod() + if(going_kaboom) + return + going_kaboom = TRUE + visible_message("\The [src] lets out an shower of sparks as it starts to lose stability!",\ + "You hear a loud electrical crack!") + playsound(src.loc, 'sound/effects/lightningshock.ogg', 100, 1, extrarange = 5) + tesla_zap(src, 5, power_gen * 0.05) + addtimer(CALLBACK(GLOBAL_PROC, .proc/explosion, get_turf(src), 2, 3, 4, 8), 100) // Not a normal explosion. + +/obj/machinery/power/rtg/abductor/bullet_act(obj/item/projectile/Proj) + . = ..() + if(!going_kaboom && istype(Proj) && !Proj.nodamage && ((Proj.damage_type == BURN) || (Proj.damage_type == BRUTE))) + log_and_message_admins("[ADMIN_LOOKUPFLW(Proj.firer)] triggered an Abductor Core explosion at [x],[y],[z] via projectile.") + asplod() + +/obj/machinery/power/rtg/abductor/attack_hand(var/mob/living/user) + if(!istype(user) || (. = ..())) + return + + if(cell) + cell.forceMove(get_turf(src)) + user.put_in_active_hand(cell) + cell = null + RefreshParts() + update_icon() + playsound(src, 'sound/effects/metal_close.ogg', 50, 1) + return TRUE + +/obj/machinery/power/rtg/abductor/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/weapon/cell/void) && !cell) + user.remove_from_mob(I) + I.forceMove(src) + cell = I + RefreshParts() + update_icon() + playsound(src, 'sound/effects/metal_close.ogg', 50, 1) + return + return ..() + +/obj/machinery/power/rtg/abductor/update_icon() + if(cell) + ..() + else + icon_state = "[icon_base]-nocell" + +/obj/machinery/power/rtg/abductor/blob_act(obj/structure/blob/B) + asplod() + +/obj/machinery/power/rtg/abductor/ex_act() + if(going_kaboom) + qdel(src) + else + asplod() + +/obj/machinery/power/rtg/abductor/fire_act(exposed_temperature, exposed_volume) + asplod() + +/obj/machinery/power/rtg/abductor/tesla_act() + ..() //extend the zap + asplod() + +// Comes with an installed cell +/obj/machinery/power/rtg/abductor/built + icon_state = "core" + +/obj/machinery/power/rtg/abductor/built/Initialize() + . = ..() + cell = new(src) + RefreshParts() + +// Bloo version +/obj/machinery/power/rtg/abductor/hybrid + icon_state = "coreb-nocell" + icon_base = "coreb" + circuit = /obj/item/weapon/circuitboard/machine/abductor/core/hybrid + +/obj/machinery/power/rtg/abductor/hybrid/built + icon_state = "coreb" + +/obj/machinery/power/rtg/abductor/hybrid/built/Initialize() + . = ..() + cell = new /obj/item/weapon/cell/void/hybrid(src) + RefreshParts() diff --git a/code/modules/research/designs/circuits/circuits_vr.dm b/code/modules/research/designs/circuits/circuits_vr.dm index fefb2b2db38..0dac20efafe 100644 --- a/code/modules/research/designs/circuits/circuits_vr.dm +++ b/code/modules/research/designs/circuits/circuits_vr.dm @@ -146,4 +146,18 @@ id = "quantum_pad" req_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4, TECH_PHORON = 4, TECH_BLUESPACE = 5) build_path = /obj/item/weapon/circuitboard/quantumpad - sort_string = "HAAC" \ No newline at end of file + sort_string = "HAAC" + +/datum/design/circuit/rtg + name = "radioisotope TEG" + id = "rtg" + req_tech = list(TECH_DATA = 3, TECH_POWER = 3, TECH_PHORON = 3, TECH_ENGINEERING = 3) + build_path = /obj/item/weapon/circuitboard/machine/rtg + sort_string = "HAAD" + +/datum/design/circuit/rtg_advanced + name = "advanced radioisotope TEG" + id = "adv_rtg" + req_tech = list(TECH_DATA = 5, TECH_POWER = 5, TECH_PHORON = 5, TECH_ENGINEERING = 5) + build_path = /obj/item/weapon/circuitboard/machine/rtg/advanced + sort_string = "HAAE" \ No newline at end of file diff --git a/icons/obj/power_vr.dmi b/icons/obj/power_vr.dmi index 05a1cfa484faadd87e2a252c4055caf26fc7e0bd..6ebb949321d92f78ed55380b4e85f85f0c5c14ca 100644 GIT binary patch literal 31547 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 T%>b|{Hsrdt!Ic6n>!AMu4A{KV literal 3862 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 nB};!6@Cxi>0Qru-eGD=