Integrated Electronics QOL (#21374)

changes:
- qol: "Integrated Electronics camera can now be configured for
different camera networks"
- qol: "Reduced Integrated Electronics speaker functions cooldown from
4s -> 1s, for translating busier conversations. Behave."
- qol: "Add Integrated Electronics component 'size' value to displayed
properties."
- balance: "Increase maximum components and complexity of integrated
circuit 'electronic implant' assembly by 25%."
This commit is contained in:
Batrachophreno
2025-10-05 17:23:50 +00:00
committed by GitHub
parent f6037f893a
commit 814ccc2bc8
4 changed files with 79 additions and 9 deletions
@@ -18,8 +18,8 @@
icon_state = "setup_implant"
desc = "It's a case, for building very tiny electronics with."
w_class = WEIGHT_CLASS_TINY
max_components = IC_COMPONENTS_BASE / 2
max_complexity = IC_COMPLEXITY_BASE / 2
max_components = IC_COMPONENTS_BASE * 3/4
max_complexity = IC_COMPLEXITY_BASE * 3/4
var/obj/item/implant/integrated_circuit/implant = null
/obj/item/device/electronic_assembly/Initialize(mapload, printed = FALSE)
@@ -169,6 +169,7 @@ a creative player the means to solve many problems. Circuits are held inside an
// HTML += "<br><font color='33CC33'>Meta Variables;</font>" // If more meta vars get introduced, uncomment this.
// HTML += "<br>"
HTML += "<br><span class='highlight'>Size: [size]</span>"
HTML += "<br><span class='highlight'>Complexity: [complexity]</span>"
if(power_draw_idle)
HTML += "<br><span class='highlight'>Power Draw: [power_draw_idle] W (Idle)</span>"
@@ -12,7 +12,6 @@
power_draw_per_use = 10
var/stuff_to_display = null
/obj/item/integrated_circuit/output/screen/disconnect_all()
..()
stuff_to_display = null
@@ -126,7 +125,7 @@
desc = "A miniature speaker is attached to this component."
icon_state = "speaker"
complexity = 8
cooldown_per_use = 4 SECONDS
cooldown_per_use = 1 SECOND
inputs = list(
"sound ID" = IC_PINTYPE_STRING,
"volume" = IC_PINTYPE_NUMBER,
@@ -143,7 +142,7 @@
extended_desc = "This unit is more advanced than the plain speaker circuit, able to transpose any valid text to speech."
icon_state = "speaker"
complexity = 12
cooldown_per_use = 4 SECONDS
cooldown_per_use = 1 SECOND
inputs = list("text" = IC_PINTYPE_STRING)
outputs = list()
activators = list("to speech" = IC_PINTYPE_PULSE_IN)
@@ -235,15 +234,17 @@
/obj/item/integrated_circuit/output/video_camera
name = "video camera circuit"
desc = "This small camera allows a remote viewer to see what it sees."
extended_desc = "The camera is linked to the Research camera network."
extended_desc = "The camera is linked to the Research camera network by default, but can be changed."
icon_state = "video_camera"
w_class = WEIGHT_CLASS_SMALL
complexity = 10
inputs = list(
"camera name" = IC_PINTYPE_STRING,
"camera network" = IC_PINTYPE_STRING,
"camera active" = IC_PINTYPE_BOOLEAN
)
inputs_default = list("1" = "video camera circuit")
inputs_default = list("1" = "video camera circuit",
"2" = "Research")
outputs = list()
activators = list()
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
@@ -267,18 +268,25 @@
if(!draw_idle_power())
power_fail()
/obj/item/integrated_circuit/output/video_camera/proc/set_camera_network(var/network)
if(camera)
camera.network = list(network)
camera.update_coverage()
/obj/item/integrated_circuit/output/video_camera/on_data_written()
if(camera)
var/cam_name = get_pin_data(IC_INPUT, 1)
var/cam_active = get_pin_data(IC_INPUT, 2)
var/cam_network = get_pin_data(IC_INPUT, 2)
var/cam_active = get_pin_data(IC_INPUT, 3)
if(!isnull(cam_name))
camera.c_tag = cam_name
set_camera_network(cam_network)
set_camera_status(cam_active)
/obj/item/integrated_circuit/output/video_camera/power_fail()
if(camera)
set_camera_status(0)
set_pin_data(IC_INPUT, 2, FALSE)
set_pin_data(IC_INPUT, 3, FALSE)
push_data()
/obj/item/integrated_circuit/output/led