fix entertainment monitors

This commit is contained in:
Linzolle
2020-12-08 17:21:14 -06:00
parent a2834b8ebc
commit 3e951d334c
6 changed files with 2423 additions and 84642 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -75,3 +75,38 @@
if (!area_motion)
if(isliving(AM))
newTarget(AM)
/obj/machinery/camera/motion/thunderdome
name = "entertainment camera"
network = list("thunder")
c_tag = "Arena"
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF | FREEZE_PROOF
/obj/machinery/camera/motion/thunderdome/Initialize()
. = ..()
proximity_monitor.SetRange(7)
/obj/machinery/camera/motion/thunderdome/HasProximity(atom/movable/AM as mob|obj)
if (!isliving(AM) || get_area(AM) != get_area(src))
return
localMotionTargets |= WEAKREF(AM)
if (!detectTime)
for(var/obj/machinery/computer/security/telescreen/entertainment/TV in GLOB.machines)
TV.notify(TRUE)
detectTime = world.time + 30 SECONDS
/obj/machinery/camera/motion/thunderdome/process()
if (!detectTime)
return
for (var/datum/weakref/targetref in localMotionTargets)
var/mob/target = targetref.resolve()
if(QDELETED(target) || target.stat == DEAD || get_dist(src, target) > 7 || get_area(src) != get_area(target))
localMotionTargets -= targetref
if (localMotionTargets.len)
detectTime = world.time + 30 SECONDS
else if (world.time > detectTime)
detectTime = 0
for(var/obj/machinery/computer/security/telescreen/entertainment/TV in GLOB.machines)
TV.notify(FALSE)

View File

@@ -246,17 +246,21 @@
network = list("thunder")
density = FALSE
circuit = null
interaction_flags_atom = NONE // interact() is called by BigClick()
//interaction_flags_atom = NONE // interact() is called by BigClick()
var/icon_state_off = "entertainment_blank"
var/icon_state_on = "entertainment"
/* If someone would like to try to get this long-distance viewing thing working, be my guest. I tried everything I could possibly think of and it just refused to operate correctly.
/obj/machinery/computer/security/telescreen/entertainment/Initialize()
. = ..()
RegisterSignal(src, COMSIG_CLICK, .proc/BigClick)
// Bypass clickchain to allow humans to use the telescreen from a distance
/obj/machinery/computer/security/telescreen/entertainment/proc/BigClick()
SHOULD_NOT_SLEEP(TRUE)
interact(usr)
*/
/obj/machinery/computer/security/telescreen/entertainment/proc/notify(on)
if(on && icon_state == icon_state_off)
@@ -278,7 +282,7 @@
name = "circuitry telescreen"
desc = "Used for watching the other eggheads from the safety of the circuitry lab."
network = list("rd")
/obj/machinery/computer/security/telescreen/ce
name = "\improper Chief Engineer's telescreen"
desc = "Used for watching the engine, telecommunications and the minisat."

View File

@@ -131,7 +131,7 @@
for(var/mob/living/mob in thunderdome)
qdel(mob) //Clear mobs
for(var/obj/obj in thunderdome)
if(!istype(obj, /obj/machinery/camera))
if(!istype(obj, /obj/machinery/camera) && !istype(obj, /obj/effect/abstract/proximity_checker))
qdel(obj) //Clear objects
var/area/template = locate(/area/tdome/arena_source)

View File

@@ -567,7 +567,7 @@ Since Ramadan is an entire month that lasts 29.5 days on average, the start and
/datum/holiday/xmas/proc/roundstart_celebrate()
for(var/obj/machinery/computer/security/telescreen/entertainment/Monitor in GLOB.machines)
Monitor.icon_state = "entertainment_xmas"
Monitor.icon_state_on = "entertainment_xmas"
for(var/mob/living/simple_animal/pet/dog/corgi/Ian/Ian in GLOB.mob_living_list)
Ian.place_on_head(new /obj/item/clothing/head/helmet/space/santahat(Ian))

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB