Files
CHOMPStation2/code/modules/power/fusion/gyrotron/gyrotron.dm
Leshana 93fb3f7865 Call update procs instead of directly setting idle_power_usage or active_power_usage.
- Adds the update_idle_power_usage() and update_active_power_usage() procs for the respective vars.
- Switches all places modifying those vars directly to call the procs instead.
- This will let us react to the change appropriately, paving the way towards static area power.
- Adds update_power_channel proc for the sake of completeness, but no machines actually modify it so far.
2020-04-22 20:47:15 -04:00

68 lines
1.7 KiB
Plaintext

var/list/gyrotrons = list()
/obj/machinery/power/emitter/gyrotron
name = "gyrotron"
icon = 'icons/obj/machines/power/fusion.dmi'
desc = "It is a heavy duty industrial gyrotron suited for powering fusion reactors."
icon_state = "emitter-off"
req_access = list(access_engine)
use_power = USE_POWER_IDLE
active_power_usage = 50000
circuit = /obj/item/weapon/circuitboard/gyrotron
var/id_tag
var/rate = 3
var/mega_energy = 1
/obj/machinery/power/emitter/gyrotron/anchored
anchored = 1
state = 2
/obj/machinery/power/emitter/gyrotron/Initialize()
gyrotrons += src
update_active_power_usage(mega_energy * 50000)
default_apply_parts()
. = ..()
/obj/machinery/power/emitter/gyrotron/Destroy()
gyrotrons -= src
return ..()
/obj/machinery/power/emitter/gyrotron/process()
update_active_power_usage(mega_energy * 50000)
. = ..()
/obj/machinery/power/emitter/gyrotron/get_rand_burst_delay()
return rate * 10
/obj/machinery/power/emitter/gyrotron/get_burst_delay()
return rate * 10
/obj/machinery/power/emitter/gyrotron/get_emitter_beam()
var/obj/item/projectile/beam/emitter/E = ..()
E.damage = mega_energy * 50
return E
/obj/machinery/power/emitter/gyrotron/update_icon()
if (active && powernet && avail(active_power_usage))
icon_state = "emitter-on"
else
icon_state = "emitter-off"
/obj/machinery/power/emitter/gyrotron/attackby(var/obj/item/W, var/mob/user)
if(istype(W, /obj/item/device/multitool))
var/new_ident = input("Enter a new ident tag.", "Gyrotron", id_tag) as null|text
if(new_ident && user.Adjacent(src))
id_tag = new_ident
return
if(default_deconstruction_screwdriver(user, W))
return
if(default_deconstruction_crowbar(user, W))
return
if(default_part_replacement(user, W))
return
return ..()