Files
CHOMPStation2/code/datums/wires/seedstorage.dm
Neerti 22954a5a04 QoL: Hacking (#6810)
* Makes hacking window consider all hands instead of just the active one.

* Makes bottom indicators in hacking window go bold if they changed since the last refresh.

* Changelog
2020-03-11 20:36:42 -04:00

74 lines
2.0 KiB
Plaintext

#define SEED_WIRE_SMART 1
#define SEED_WIRE_CONTRABAND 2
#define SEED_WIRE_ELECTRIFY 4
#define SEED_WIRE_LOCKDOWN 8
/datum/wires/seedstorage
holder_type = /obj/machinery/seed_storage
wire_count = 4
random = 1
var/datum/wire_hint/zap_hint
var/datum/wire_hint/smart_hint
var/datum/wire_hint/hacked_hint
var/datum/wire_hint/lockdown_hint
/datum/wires/seedstorage/make_wire_hints()
zap_hint = new("The orange light is off.", "The orange light is on.")
smart_hint = new("The red light is off.", "The red light is blinking.")
hacked_hint = new("The green light is on.", "The green light is off.")
lockdown_hint = new("The keypad lock is deployed.", "The keypad lock is retracted.")
/datum/wires/seedstorage/Destroy()
zap_hint = null
smart_hint = null
hacked_hint = null
lockdown_hint = null
return ..()
/datum/wires/seedstorage/CanUse(var/mob/living/L)
var/obj/machinery/seed_storage/V = holder
if(V.panel_open)
return 1
return 0
/datum/wires/seedstorage/GetInteractWindow()
var/obj/machinery/seed_storage/V = holder
. += ..()
. += zap_hint.show(V.seconds_electrified)
. += smart_hint.show(V.smart)
. += hacked_hint.show(V.hacked || V.emagged)
. += lockdown_hint.show(V.lockdown)
/datum/wires/seedstorage/UpdatePulsed(var/index)
var/obj/machinery/seed_storage/V = holder
switch(index)
if(SEED_WIRE_SMART)
V.smart = !V.smart
if(SEED_WIRE_CONTRABAND)
V.hacked = !V.hacked
if(SEED_WIRE_ELECTRIFY)
V.seconds_electrified = 30
if(SEED_WIRE_LOCKDOWN)
V.lockdown = !V.lockdown
/datum/wires/seedstorage/UpdateCut(var/index, var/mended)
var/obj/machinery/seed_storage/V = holder
switch(index)
if(SEED_WIRE_SMART)
V.smart = 0
if(SEED_WIRE_CONTRABAND)
V.hacked = !mended
if(SEED_WIRE_ELECTRIFY)
if(mended)
V.seconds_electrified = 0
else
V.seconds_electrified = -1
if(SEED_WIRE_LOCKDOWN)
if(mended)
V.lockdown = 1
V.req_access = list()
V.req_one_access = list()
else
V.req_access = initial(V.req_access)
V.req_one_access = initial(V.req_one_access)