Readds medium screens (#39632)

Circuits may have deserved many of the nerfs in #39376, but the removal of medium screens was absolutely not one of them. It is one of the only meaningful ways to send feedback to the user, and fills the niche of essentially being a to_chat() that the TTS circuit doesn't do (TTS announces to EVERYBODY within a screen's range, medium screens only announce to the user and anybody adjacent).

The main reason for removal was "anti-deaf" circuits. The usefulness of those is only questionably useful at best to begin with, as it is very situational (requires you to have printed and to be carrying the circuit with you and then go deaf and then get into a conversation where the other person is unaware that you are deaf). I don't believe this was even close to enough of a reason to remove one of the only meaningful ways of giving user feedback with circuits.
This commit is contained in:
PKPenguin321
2018-08-26 14:50:35 +12:00
committed by oranges
parent 1195b2be12
commit 0bf60e79dc
@@ -34,6 +34,33 @@
else
stuff_to_display = replacetext("[I.data]", eol , "<br>")
/obj/item/integrated_circuit/output/screen/large
name = "large screen"
desc = "Takes any data type as an input and displays it to anybody near the device when pulsed. \
It can also be examined to see the last thing it displayed."
icon_state = "screen_medium"
power_draw_per_use = 20
/obj/item/integrated_circuit/output/screen/large/do_work()
..()
if(isliving(assembly.loc))//this whole block just returns if the assembly is neither in a mobs hands or on the ground
var/mob/living/H = assembly.loc
if(H.get_active_held_item() != assembly && H.get_inactive_held_item() != assembly)
return
else
if(!isturf(assembly.loc))
return
var/list/nearby_things = range(0, get_turf(src))
for(var/mob/M in nearby_things)
var/obj/O = assembly ? assembly : src
to_chat(M, "<span class='notice'>[icon2html(O.icon, world, O.icon_state)] [stuff_to_display]</span>")
if(assembly)
assembly.investigate_log("displayed \"[html_encode(stuff_to_display)]\" with [type].", INVESTIGATE_CIRCUIT)
else
investigate_log("displayed \"[html_encode(stuff_to_display)]\" as [type].", INVESTIGATE_CIRCUIT)
/obj/item/integrated_circuit/output/light
name = "light"
desc = "A basic light which can be toggled on/off when pulsed."