mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-28 15:39:57 +01:00
Wires Panel and Signaler Expansion (#22846)
Fleshes out wire panel skill behavior and signaler management. Electrical Engineering 4 was very OP for revealing all wire labels of all machines, and it was super fun while it lasted. Wire panels now have associated skills with their use, and increased skill ranks will increase the proportion of wires (chosen at random) that are easily recognizable on sight for certain types of wiring panels. **Professional:** 75% revealed **Trained:** 50% revealed **Familiar:** 30% revealed _(note: having both Electrical and Mechanical engineering at least Trained gives you that baseline 30%, reflecting how your knowledge can probably translate to decent guesswork.)_ The following wire panels are affected: **Electrical Engineering:** - APCs - Cameras - IFF Beacons - Radios - Smartfridges - SMES Units **Mechanical Engineering** - Airlocks - Disposal Units - Fabricators - Vending Machines **Atmospherics Systems** - Air Alarms **Reactor Systems** - Particle Accelerator Control Boxes (lol) **Robotics** - Hardsuits - Suit Storage Units (sharing the love is all) - Robots - Tag Scanners **Xenobiology** - Stasis Cages Also, I made it possible to blow out all the lights in an APC's area by snipping the power regulator cable and then pulsing the lights wire. Great for signalers. Speaking of signalers, new app deployed to all Engineering, Research, and Robotics personal modular computers: <img width="816" height="722" alt="Screenshot 2026-07-14 144049" src="https://github.com/user-attachments/assets/3d588712-ebfd-47ac-b699-7cdac2c04907" /> Self-explanatory. Please only use corporate-provided software for behavior within your contract regulations.
This commit is contained in:
@@ -567,7 +567,23 @@ update_flag
|
||||
/obj/structure/machinery/portable_atmospherics/canister/do_signaler()
|
||||
valve_open = !valve_open
|
||||
if(valve_open)
|
||||
if(holding)
|
||||
release_log += "Valve was <b>opened</b> by a signaler, starting the transfer into [holding]<br>"
|
||||
else
|
||||
release_log += "Valve was <b>opened</b> by a signaler, starting the transfer into the <span class='warning'><b>air</b></span><br>"
|
||||
log_open_userless("a signaler")
|
||||
if(!(processing_flags & MACHINERY_PROCESS_SELF))
|
||||
START_PROCESSING_MACHINE(src, MACHINERY_PROCESS_SELF)
|
||||
process()
|
||||
else
|
||||
if(holding)
|
||||
release_log += "Valve was <b>closed</b> by a signaler, stopping the transfer into [holding]<br>"
|
||||
else
|
||||
release_log += "Valve was <b>closed</b> by a signaler, stopping the transfer into the <span class='warning'><b>air</b></span><br>"
|
||||
|
||||
update_connected_network()
|
||||
update_icon()
|
||||
SStgui.update_uis(src)
|
||||
|
||||
/**
|
||||
* Dirty way to fill room with gas. However it is a bit easier to do than creating some floor/engine/n2o -rastaf0
|
||||
|
||||
@@ -252,65 +252,3 @@
|
||||
if(target.buckled_to)
|
||||
target.buckled_to.unbuckle()
|
||||
contain(user, target)
|
||||
|
||||
|
||||
/datum/wires/stasis_cage
|
||||
proper_name = "Stasis Cage"
|
||||
holder_type = /obj/structure/machinery/stasis_cage
|
||||
|
||||
|
||||
/datum/wires/stasis_cage/New(atom/holder)
|
||||
wires = list(
|
||||
WIRE_SAFETY,
|
||||
WIRE_RELEASE,
|
||||
WIRE_LOCK
|
||||
)
|
||||
add_duds(3)
|
||||
..()
|
||||
|
||||
/datum/wires/stasis_cage/interactable(mob/user)
|
||||
SHOULD_CALL_PARENT(FALSE)
|
||||
var/obj/structure/machinery/stasis_cage/stasis_cage = holder
|
||||
if (stasis_cage.panel_open)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
|
||||
/datum/wires/stasis_cage/get_status()
|
||||
var/obj/structure/machinery/stasis_cage/stasis_cage = holder
|
||||
. = ..()
|
||||
if(!stasis_cage.use_power)
|
||||
. += "The panel is unpowered."
|
||||
else
|
||||
. += "The panel is powered."
|
||||
. += "The biometric safety sensors are [(WIRE_SAFETY in cut_wires) ? "connected" : "disconnected"]."
|
||||
. += "The cage's emergency auto-release mechanism is [(WIRE_RELEASE in cut_wires) ? "disabled" : "enabled"]."
|
||||
. += "The cage lid motors are [(WIRE_LOCK in cut_wires) ? "overriden" : "nominal"]."
|
||||
|
||||
|
||||
/datum/wires/stasis_cage/on_cut(wire, mend, source)
|
||||
var/obj/structure/machinery/stasis_cage/stasis_cage = holder
|
||||
switch (wire)
|
||||
if (WIRE_SAFETY)
|
||||
stasis_cage.safety = !stasis_cage.safety
|
||||
if (WIRE_RELEASE)
|
||||
if (stasis_cage.contained && !mend)
|
||||
stasis_cage.release()
|
||||
holder.update_icon()
|
||||
if (WIRE_LOCK)
|
||||
if (!mend)
|
||||
playsound(stasis_cage.loc, 'sound/machines/BoltsDown.ogg', 60)
|
||||
holder.visible_message(SPAN_WARNING("The cage's lid bolts down destructively, denting itself!"), SPAN_NOTICE("You notice the cage lid override flag blink hastily."))
|
||||
stasis_cage.broken = TRUE
|
||||
holder.update_icon()
|
||||
|
||||
|
||||
/datum/wires/stasis_cage/on_pulse(wire)
|
||||
var/obj/structure/machinery/stasis_cage/stasis_cage = holder
|
||||
switch (wire)
|
||||
if (WIRE_SAFETY)
|
||||
if (stasis_cage.contained)
|
||||
if (prob(20))
|
||||
holder.visible_message(SPAN_WARNING("The cage hastily flicks open its lid!"), SPAN_NOTICE("You notice the biometric sensor flag blink fervently."))
|
||||
stasis_cage.release()
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
/obj/item/flash/synthetic = 4,
|
||||
/obj/item/cell/high = 12,
|
||||
/obj/item/assembly/prox_sensor = 8,
|
||||
/obj/item/assembly/signaler = 8,
|
||||
/obj/item/assembly/signaler = 20,
|
||||
/obj/item/healthanalyzer = 3,
|
||||
/obj/item/surgery/scalpel = 2,
|
||||
/obj/item/surgery/circular_saw = 2,
|
||||
@@ -62,6 +62,7 @@
|
||||
/obj/item/multitool = 4,
|
||||
/obj/item/taperoll/engineering = 4,
|
||||
/obj/item/clothing/glasses/safety/goggles = 4,
|
||||
/obj/item/assembly/signaler = 20,
|
||||
/obj/item/airlock_electronics = 20,
|
||||
/obj/item/module/power_control = 10,
|
||||
/obj/item/airalarm_electronics = 10,
|
||||
|
||||
Reference in New Issue
Block a user